Re: [algogeeks] Re: Run for a google years

2011-05-13 Thread Aamir Khan
double n will overflow...

On 5/13/11, bittu shashank7andr...@gmail.com wrote:
 @Dave... I think 1 Googol Year is =10^100 not 10^116.5 ?? why u have
 used

 so then we have to write the single line program that googol years of
 time ??   we have processor that can execute the instruction in 10^9
 per second  so the time required by googol year in second
  which is equals to time t=pow(10,109)*365*86400 sec.

 so program is like

 #include stdio.h
 #include math.h

 int main() {

 double n = pow(10, 109) * 365 * 86400;

 while(n--);
 }

 Correct me if anything wrong???

 Thanks  Regards
 Shashank ManiThe Best Way To Escape From The problem is Solve It
 Computer Science  Engg.
 BIT Mesra

 --
 You received this message because you are subscribed to the Google Groups
 Algorithm Geeks group.
 To post to this group, send email to algogeeks@googlegroups.com.
 To unsubscribe from this group, send email to
 algogeeks+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/algogeeks?hl=en.




-- 
Aamir Khan
Indian Institute of Technology Roorkee,
Roorkee, Uttarakhand,
India , 247667
Phone: +91 9557647357
email:   aami...@iitr.ernet.in aamir...@iitr.ernet.in
ak4u2...@gmail.com

-- 
You received this message because you are subscribed to the Google Groups 
Algorithm Geeks group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.



Re: [algogeeks] Re: Run for a google years

2011-05-13 Thread saurabh singh
No Amir,it wont.We will not be able to store each and every digit in the
double though
Check out ieee floating point standard,that will clarify it.
But yes in the context of above problem the code wont work i think due to
precision problem...

On Fri, May 13, 2011 at 5:12 PM, Aamir Khan ak4u2...@gmail.com wrote:

 double n will overflow...

 On 5/13/11, bittu shashank7andr...@gmail.com wrote:
  @Dave... I think 1 Googol Year is =10^100 not 10^116.5 ?? why u have
  used
 
  so then we have to write the single line program that googol years of
  time ??   we have processor that can execute the instruction in 10^9
  per second  so the time required by googol year in second
   which is equals to time t=pow(10,109)*365*86400 sec.
 
  so program is like
 
  #include stdio.h
  #include math.h
 
  int main() {
 
  double n = pow(10, 109) * 365 * 86400;
 
  while(n--);
  }
 
  Correct me if anything wrong???
 
  Thanks  Regards
  Shashank ManiThe Best Way To Escape From The problem is Solve It
  Computer Science  Engg.
  BIT Mesra
 
  --
  You received this message because you are subscribed to the Google Groups
  Algorithm Geeks group.
  To post to this group, send email to algogeeks@googlegroups.com.
  To unsubscribe from this group, send email to
  algogeeks+unsubscr...@googlegroups.com.
  For more options, visit this group at
  http://groups.google.com/group/algogeeks?hl=en.
 
 


 --
 Aamir Khan
 Indian Institute of Technology Roorkee,
 Roorkee, Uttarakhand,
 India , 247667
 Phone: +91 9557647357
 email:   aami...@iitr.ernet.in aamir...@iitr.ernet.in
ak4u2...@gmail.com

 --
 You received this message because you are subscribed to the Google Groups
 Algorithm Geeks group.
 To post to this group, send email to algogeeks@googlegroups.com.
 To unsubscribe from this group, send email to
 algogeeks+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/algogeeks?hl=en.




-- 
Saurabh Singh
B.Tech (Computer Science)
MNNIT ALLAHABAD

-- 
You received this message because you are subscribed to the Google Groups 
Algorithm Geeks group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.



Re: [algogeeks] Re: Run for a google years

2011-05-13 Thread saurabh singh
And yes corrct me if i am wrong in the assertion that the code wont work

On Fri, May 13, 2011 at 7:24 PM, saurabh singh saurab...@gmail.com wrote:

 No Amir,it wont.We will not be able to store each and every digit in the
 double though
 Check out ieee floating point standard,that will clarify it.
 But yes in the context of above problem the code wont work i think due to
 precision problem...


 On Fri, May 13, 2011 at 5:12 PM, Aamir Khan ak4u2...@gmail.com wrote:

 double n will overflow...

 On 5/13/11, bittu shashank7andr...@gmail.com wrote:
  @Dave... I think 1 Googol Year is =10^100 not 10^116.5 ?? why u have
  used
 
  so then we have to write the single line program that googol years of
  time ??   we have processor that can execute the instruction in 10^9
  per second  so the time required by googol year in second
   which is equals to time t=pow(10,109)*365*86400 sec.
 
  so program is like
 
  #include stdio.h
  #include math.h
 
  int main() {
 
  double n = pow(10, 109) * 365 * 86400;
 
  while(n--);
  }
 
  Correct me if anything wrong???
 
  Thanks  Regards
  Shashank ManiThe Best Way To Escape From The problem is Solve It
  Computer Science  Engg.
  BIT Mesra
 
  --
  You received this message because you are subscribed to the Google
 Groups
  Algorithm Geeks group.
  To post to this group, send email to algogeeks@googlegroups.com.
  To unsubscribe from this group, send email to
  algogeeks+unsubscr...@googlegroups.com.
  For more options, visit this group at
  http://groups.google.com/group/algogeeks?hl=en.
 
 


 --
 Aamir Khan
 Indian Institute of Technology Roorkee,
 Roorkee, Uttarakhand,
 India , 247667
 Phone: +91 9557647357
 email:   aami...@iitr.ernet.in aamir...@iitr.ernet.in
ak4u2...@gmail.com

 --
 You received this message because you are subscribed to the Google Groups
 Algorithm Geeks group.
 To post to this group, send email to algogeeks@googlegroups.com.
 To unsubscribe from this group, send email to
 algogeeks+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/algogeeks?hl=en.




 --
 Saurabh Singh
 B.Tech (Computer Science)
 MNNIT ALLAHABAD





-- 
Saurabh Singh
B.Tech (Computer Science)
MNNIT ALLAHABAD

-- 
You received this message because you are subscribed to the Google Groups 
Algorithm Geeks group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.



Re: [algogeeks] Re: Run for a google years

2011-05-11 Thread Aamir Khan
On Mon, May 9, 2011 at 8:31 PM, Don dondod...@gmail.com wrote:

 That would do it if you have a 64-bit type, which most implementations
 have, but the standard does not require.
 I think that I can make it shorter and cleaner.

 int main(int argc, char* argv[])
 {
const int n=49;
char a[n]={0};
int p=0;

// This line will run for 10^100 years
for(; p  n; p = ++a[p] ? 0 : p + 1);

return 0;
 }

 The array of 49 bytes provides 392 bits of state, which will take more
 than the 2^387 cycles available in a google years.

 If the processor takes 9 operations to execute the loop, a value of
 n=48 would be sufficient.


Can you elaborate the 9 operations that execution of for loop will take.

 Don

 On May 7, 12:24 pm, Dave dave_and_da...@juno.com wrote:
  @Don: Here is my solution:
 
  unsigned long long int a=1;
  unsigned long long int b=0;
  unsigned long long int c=0;
  unsigned long long int d=0;
  unsigned long long int e=0;
  unsigned long long int f=0;
  unsigned long long int g=0;
  unsigned long long int h=0;
  /* here is the line /
  while(a)if(!++h)if(!++g)if(!++f)if(!++e)if(!++d)if(!++c)if(!++b)++a;
 
  My reasoning is as follows: 1 google years ~= 10^116.5 nanoseconds ~=
  2^387. Thus, incrementing an integer of length 387 bits once every
  nanosecond should take a google years to overflow. Seven 64-bit
  integers provides 448 bits of state.
 
  Dave
 
  On May 6, 11:25 am, Don dondod...@gmail.com wrote:
 
   What is the shortest single line in a C program which will take more
   than a google years to execute, but will eventually complete? You are
   permitted to have code before or after the line, but execution of the
   code must remain on that line, meaning no function calls, etc. Assume
   a processor which executes 1 billion operations a second.
 
 

 --
 You received this message because you are subscribed to the Google Groups
 Algorithm Geeks group.
 To post to this group, send email to algogeeks@googlegroups.com.
 To unsubscribe from this group, send email to
 algogeeks+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/algogeeks?hl=en.




-- 
Aamir Khan
Indian Institute of Technology Roorkee,
Roorkee, Uttarakhand,
India , 247667
Phone: +91 9557647357
email:   aami...@iitr.ernet.in aamir...@iitr.ernet.in
ak4u2...@gmail.com

-- 
You received this message because you are subscribed to the Google Groups 
Algorithm Geeks group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.



Re: [algogeeks] Re: Run for a google years

2011-05-10 Thread Aamir Khan
On Mon, May 9, 2011 at 8:31 PM, Don dondod...@gmail.com wrote:

 That would do it if you have a 64-bit type, which most implementations
 have, but the standard does not require.
 I think that I can make it shorter and cleaner.

 int main(int argc, char* argv[])
 {
const int n=49;
char a[n]={0};


I think we can use a single character like char a=0; instead of array of
characters as ultimately the value is incremented for a[0] only in your
code.

And i was testing with smaller values of n=1 and found something strange
like the value of a[p] increases from 0 to 127 (thats normal) but after
adding 1 to 127 it shows -128..I know that char is of 1byte or 8 bits only
and after +127 its value will overflow.

I have question regarding the same:

1) How to calculate the next value in case of overflow. As i tried
calculating by binary addition and 0111  + 1 = 1000  thats means
answer should have been -0 or 0.

   int p=0;

// This line will run for 10^100 years
for(; p  n; p = ++a[p] ? 0 : p + 1);

return 0;
 }

 The array of 49 bytes provides 392 bits of state, which will take more
 than the 2^387 cycles available in a google years.

 If the processor takes 9 operations to execute the loop, a value of
 n=48 would be sufficient.


 Don

 On May 7, 12:24 pm, Dave dave_and_da...@juno.com wrote:
  @Don: Here is my solution:
 
  unsigned long long int a=1;
  unsigned long long int b=0;
  unsigned long long int c=0;
  unsigned long long int d=0;
  unsigned long long int e=0;
  unsigned long long int f=0;
  unsigned long long int g=0;
  unsigned long long int h=0;
  /* here is the line /
  while(a)if(!++h)if(!++g)if(!++f)if(!++e)if(!++d)if(!++c)if(!++b)++a;
 
  My reasoning is as follows: 1 google years ~= 10^116.5 nanoseconds ~=
  2^387. Thus, incrementing an integer of length 387 bits once every
  nanosecond should take a google years to overflow. Seven 64-bit
  integers provides 448 bits of state.
 
  Dave
 
  On May 6, 11:25 am, Don dondod...@gmail.com wrote:
 
   What is the shortest single line in a C program which will take more
   than a google years to execute, but will eventually complete? You are
   permitted to have code before or after the line, but execution of the
   code must remain on that line, meaning no function calls, etc. Assume
   a processor which executes 1 billion operations a second.
 
 

 --
 You received this message because you are subscribed to the Google Groups
 Algorithm Geeks group.
 To post to this group, send email to algogeeks@googlegroups.com.
 To unsubscribe from this group, send email to
 algogeeks+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/algogeeks?hl=en.




-- 
Aamir Khan
Indian Institute of Technology Roorkee,
Roorkee, Uttarakhand,
India , 247667
Phone: +91 9557647357
email:   aami...@iitr.ernet.in aamir...@iitr.ernet.in
ak4u2...@gmail.com

-- 
You received this message because you are subscribed to the Google Groups 
Algorithm Geeks group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.