Fwd: [QUIZ] Happy Numbers (#93)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Fwd: [QUIZ] Happy Numbers (#93)

Markus Gälli-3
>
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> =-=-=-=-=-=-=
>
> by Shane Emmons
>
> Write a program that tells whether a given integer is happy. A  
> happy number is
> found using the following process: Take the sum of the squares of  
> its digits,
> and continue iterating this process until it yields 1, or produces  
> an infinite
> loop.
>
> For example the number 7:
>
> 7^2 = 49
> 4^2 + 9^2 = 97
> 9^2 + 7^2 = 130
> 1^2 + 3^2 + 0^2 = 10
> 1^2 + 0^2 = 1
>
> If a number is not happy than it is obviously unhappy. Now that you  
> have this
> program, what is the largest happy number you can find? What is the  
> happiest
> number between 1 and 1,000,000. I define the happiest number as the  
> smallest
> number that finds the most other happy numbers with it, i.e. 7  
> found four other
> numbers (49, 97, 130, and 10) making it a rank 4 in happiness.
>
> If you find all these examples trivial, write you program so that  
> it will find
> happy numbers in other bases such as base 2 or 16. From there you  
> can extend the
> program so that it finds happy bases (other than 2 and 4). A happy  
> bases is a
> base where all numbers are happy. Good luck.
>

from http://www.rubyquiz.com/

Nice.
Any takers for this one?

I really like the idea of quizzes. I think we should have sth.  
similar for Squeak and Squeakland also.
Or just collect our answers ...

Cheers,

Markus

Reply | Threaded
Open this post in threaded view
|

RE: [QUIZ] Happy Numbers (#93)

Ron Teitelbaum
Hey Markus,

I can't resist a good puzzle.  Please not too many, I won't get any work
done!  

So here is my entry.  What is most interesting about this problem was not
the programming.  I did that pretty fast it was the optimization that is
really interesting.

What I noticed was that digit order and zeros have no effect.  I figured I
could hold onto the sortedDigits results and significantly reduce the amount
of data that I needed to hold.  It worked fine but it turned out to be much
slower!  It's amazing to me that holding onto hundreds of thousands of
associations turned out to be faster then 296.  I didn't spend much time to
figure out why, but I guess it's adding the sorting that took so long, and
the speed of the dictionary lookup was just fine with hundreds of thousands
of objects!

Who knew!

The class can process 1 million numbers for happiness in 5 mins.

Ron Teitelbaum

> From: Markus Gaelli
> Sent: Friday, September 01, 2006 9:35 AM
>
> >
> > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> > =-=-=-=-=-=-=
> >
> > by Shane Emmons
> >
> > Write a program that tells whether a given integer is happy. A
> > happy number is
> > found using the following process: Take the sum of the squares of
> > its digits,
> > and continue iterating this process until it yields 1, or produces
> > an infinite
> > loop.
> >
> > For example the number 7:
> >
> > 7^2 = 49
> > 4^2 + 9^2 = 97
> > 9^2 + 7^2 = 130
> > 1^2 + 3^2 + 0^2 = 10
> > 1^2 + 0^2 = 1
> >
> > If a number is not happy than it is obviously unhappy. Now that you
> > have this
> > program, what is the largest happy number you can find? What is the
> > happiest
> > number between 1 and 1,000,000. I define the happiest number as the
> > smallest
> > number that finds the most other happy numbers with it, i.e. 7
> > found four other
> > numbers (49, 97, 130, and 10) making it a rank 4 in happiness.
> >
> > If you find all these examples trivial, write you program so that
> > it will find
> > happy numbers in other bases such as base 2 or 16. From there you
> > can extend the
> > program so that it finds happy bases (other than 2 and 4). A happy
> > bases is a
> > base where all numbers are happy. Good luck.
> >
>
> from http://www.rubyquiz.com/
>
> Nice.
> Any takers for this one?
>
> I really like the idea of quizzes. I think we should have sth.
> similar for Squeak and Squeakland also.
> Or just collect our answers ...
>
> Cheers,
>
> Markus
>



HappyNumber.st (8K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [QUIZ] Happy Numbers (#93)

stéphane ducasse-2
In reply to this post by Markus Gälli-3
Yes this would be really great to have a puzzle collection and  
solution in Squeak.
Do it!

Stef

On 1 sept. 06, at 15:34, Markus Gaelli wrote:

>>
>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>> =-=-=-=-=-=-=
>>
>> by Shane Emmons
>>
>> Write a program that tells whether a given integer is happy. A  
>> happy number is
>> found using the following process: Take the sum of the squares of  
>> its digits,
>> and continue iterating this process until it yields 1, or produces  
>> an infinite
>> loop.
>>
>> For example the number 7:
>>
>> 7^2 = 49
>> 4^2 + 9^2 = 97
>> 9^2 + 7^2 = 130
>> 1^2 + 3^2 + 0^2 = 10
>> 1^2 + 0^2 = 1
>>
>> If a number is not happy than it is obviously unhappy. Now that  
>> you have this
>> program, what is the largest happy number you can find? What is  
>> the happiest
>> number between 1 and 1,000,000. I define the happiest number as  
>> the smallest
>> number that finds the most other happy numbers with it, i.e. 7  
>> found four other
>> numbers (49, 97, 130, and 10) making it a rank 4 in happiness.
>>
>> If you find all these examples trivial, write you program so that  
>> it will find
>> happy numbers in other bases such as base 2 or 16. From there you  
>> can extend the
>> program so that it finds happy bases (other than 2 and 4). A happy  
>> bases is a
>> base where all numbers are happy. Good luck.
>>
>
> from http://www.rubyquiz.com/
>
> Nice.
> Any takers for this one?
>
> I really like the idea of quizzes. I think we should have sth.  
> similar for Squeak and Squeakland also.
> Or just collect our answers ...
>
> Cheers,
>
> Markus
>