HHC 2017 RPN Programming contest information and results thread
09-19-2017, 09:11 PM
Post: #41
 Gene Moderator Posts: 1,035 Joined: Dec 2013
RE: HHC 2017 RPN Programming contest information and results thread
It was 10 for RPN and 5 for RPL.

I did not highlight all entries, just the top 2 or 3 in each.
09-20-2017, 03:10 PM
Post: #42
 jjohnson873 Member Posts: 159 Joined: Dec 2013
RE: HHC 2017 RPN Programming contest information and results thread
After 40 years of not programming on my HP-41CX, I was just "HAPPY" to come up with a program that worked correctly even though my solution was 82b, (didn't count the registers). I spent most of my time trying to figure out how to format the display to show characters and the loop count, as well as merging "un" with "happy". Was in the process of optimizing to eliminate registers when time ran out. Congratulations to Roger Hill for winning the RPN programming contest. And congrats to Werner who came up with a nice 66b solution. Now that I can see all of the tips and tricks, I'll be armed with all of the shortcuts and clever stack manipulation for HHC 2018's contest!
Also, thank you to Gene for coming up with a challenging contest.
(BTW....the program ran MUCH faster on my phone emulator for the HP41CX)
09-20-2017, 03:16 PM
Post: #43
 jjohnson873 Member Posts: 159 Joined: Dec 2013
RE: HHC 2017 RPN Programming contest information and results thread
I'm curious. Is there a table that shows the number of bytes that each instruction takes on the HP-41CX? I'd love to have that for future reference.
09-20-2017, 03:32 PM
Post: #44
 Thomas Okken Senior Member Posts: 1,058 Joined: Feb 2014
RE: HHC 2017 RPN Programming contest information and results thread
(09-20-2017 03:16 PM)jjohnson873 Wrote:  I'm curious. Is there a table that shows the number of bytes that each instruction takes on the HP-41CX? I'd love to have that for future reference.

Here's one: http://www.hpmuseum.org/prog/bytetab.htm

That page also has a link to a more detailed table.

The table only covers the basic HP-41C instruction set; all the additional functions in the CX are two bytes.
09-20-2017, 03:35 PM (This post was last modified: 09-20-2017 03:40 PM by Didier Lachieze.)
Post: #45
 Didier Lachieze Senior Member Posts: 1,221 Joined: Dec 2013
RE: HHC 2017 RPN Programming contest information and results thread
The byte count is included in the Function Tables at the end of the HP 41CX Owner's Manual Vol. 2
09-23-2017, 04:31 PM
Post: #46
 Gene Moderator Posts: 1,035 Joined: Dec 2013
RE: HHC 2017 RPN Programming contest information and results thread
Winning RPN Program entry HHC 2017 by Roger Hill.

70 bytes

LBL "HAPPY"
"UN"
ABS
CLST
LASTX
X<>Y
LBL 01
RDN
ISG Z
LBL 02
10
/
ENTER
FRC
X^2
STO+ Z
RDN
INT
X != 0? (X NOT EQUAL TO ZERO)
GTO 02
X<>Y
2
10^X
*
4
X=Y?
GTO 03
SIGN
X !=Y? (X NOT EQUAL TO Y)
GTO 01
CLA
LBL 03
|- "HAPPY " (APPEND HAPPY AND A SINGLE SPACE)
FIX 0
CF 29
ARCL T
FIX 4
SF 29
AVIEW
END
09-24-2017, 11:37 PM
Post: #47
 Craig Bladow Member Posts: 279 Joined: Apr 2016
RE: HHC 2017 RPN Programming contest information and results thread
Congratulations Roger! And his solution doesn't need any of the extra instructions one gets with an HP-41cx.

Thanks Gene for a great contest this year!

Check out NQ41!
10-01-2017, 09:50 PM (This post was last modified: 10-06-2017 06:32 PM by Jeff O..)
Post: #48
 Jeff O. Member Posts: 182 Joined: Dec 2013
RE: HHC 2017 RPN Programming contest information and results thread
Best I could do on my own before checking the solutions here was 70 bytes, no registers. I kept searching the manual for a command to convert a byte code to a number (to avoid 48, -), but sadly, no such command exists. Using SIGN in lieu of RDN, 1 drops mine to 69 bytes. (I'll never remember that function!) Without a major re-write that would likely just turn it into one of the ones provided by others, I don't see any opportunities for improvement. The improved (using SIGN) program is provided below for review.

Thanks Gene, another fun and interesting challenge. Maybe I am mistaken, but it seems like there are lots more "Unhappy" than "Happy" numbers. Is this true? Did anyone figure out what the highest number of cycles for a 10 digit or smaller number leading to a "Happy" result is?

Code:
01 LBL HAPPY 02 CLA 03 CF 29 04 FIX 0 05 0 06 STO Z 07 LBL 01 08 RDN 09 ARCL X 10 CLX 11 LBL 04 12 ATOX 13 X=0? 14 GTO 05 15 48 16 - 17 X^2 18 + 19 GTO 04 20 LBL 05 21 SIGN 22 ST+ Z 23 X=Y? 24 GTO 03 25 RDN 26 4 27 X=/=Y?  28 GTO 01 29 "UN" 30 LBL 03 31 |- "HAPPY " 32 ARCL Z 33 FIX 4 34 SF 29 35 AVIEW 36 END 69 bytes, no registers

Dave - My mind is going - I can feel it.
10-01-2017, 11:14 PM (This post was last modified: 10-01-2017 11:16 PM by Don Shepherd.)
Post: #49
 Don Shepherd Senior Member Posts: 722 Joined: Dec 2013
RE: HHC 2017 RPN Programming contest information and results thread
(10-01-2017 09:50 PM)Jeff O. Wrote:  Did anyone figure out what the highest number of cycles for a 10 digit or smaller number leading to a "Happy" result is?

I think Eric Smith figured it out (for an unhappy number): 16 cycles for number 15,999. I don't know if anyone figured out the largest number of cycles leading to a happy number.
10-02-2017, 07:30 PM (This post was last modified: 10-06-2017 06:31 PM by Jeff O..)
Post: #50
 Jeff O. Member Posts: 182 Joined: Dec 2013
RE: HHC 2017 RPN Programming contest information and results thread
Answering my own questions:
(10-01-2017 09:50 PM)Jeff O. Wrote:  ... Maybe I am mistaken, but it seems like there are lots more "Unhappy" than "Happy" numbers. Is this true?
Well, for the numbers 1 through 1000 (calculated using excel, not my program above), 143 are "Happy" and 857 are "Unhappy". So this implies more "Unhappy" results. But my guess is that there are infinite "Happy" and infinite "Unhappy" numbers, and I'm not sure this is a case where one infinity is bigger than another.
(10-01-2017 09:50 PM)Jeff O. Wrote:  Did anyone figure out what the highest number of cycles for a 10 digit or smaller number leading to a "Happy" result is?
I will go out on a limb and postulate that the maximum number of cycles for a 10 or fewer digit number leading to a "Happy" result is 7. I will further postulate that the largest "Happy" number of 10 digits or less requiring 7 cycles is 9,999,999,998, and the smallest such number is 78,999.

Dave - My mind is going - I can feel it.
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)