[SOLVED] DSRN (dog slow roman numerals)
|
06-13-2014, 05:15 PM
Post: #19
|
|||
|
|||
RE: DSRN (dog slow roman numerals)
(06-13-2014 08:12 AM)Thomas Klemm Wrote: My only suggestion is to use a local variable L for the list. This makes the FOR-loop simpler... The simplification of the "stackrobatics" (I love that word, Dave) made up for the performance penalty of the local var, and it brought the overall run time down slightly. I was curious as to how these various algorithms performed, so I did some testing and came up with the following for cycle timings: HP1 (HP67's original): 0.11592 sec DB1: 0.07968 sec TK1: 0.13363 sec TK2: 5.02521 sec DM1: 0.91066 sec TK3: 0.89567 sec These were all timed on a 50g, converting the range of numbers from 1000-1499. The one exception was TK2 - I ran out of patience and reduced it to 10 iterations just to get a reasonable estimate. Dave's algorithm appears to be the fastest, with HP67's and Thomas' first attempts being not too far behind. The algorithms (mine and Thomas') that use list processing are, at best, an order of magnitude slower. At worst, well we might have to find a different animal... While doing the timings, I also found a bug in my app. If the resulting string only has one character (as in "M" for 1000), \GSLIST will error out proclaiming an invalid dimension. So I had to insert an empty string into the list ("" +) just before \GSLIST was called to make sure it always had something to add. - David P.S. My first attempt at this app was actually a SysRPL version, which is more in my comfort zone. I'd be happy to share it if anyone's interested, but it seemed to be off-topic so I didn't want to introduce it to the mix. |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 6 Guest(s)