NPR puzzle
Eric Chatonet
eric.chatonet at sosmartsoftware.com
Wed Jul 20 14:42:08 EDT 2005
Hi mark,
As I told it, I took this problem quick and dirty in five minutes.
For me, the challenge was only to know how many words among 3620
would match the formula :-)
So I used a very simple handler (running on a Mac G5 1.8 Mhz):
I blush with shame but here it is:
on mouseUp
put the milliseconds into tStart
put fld "Words" into tWords
put fld "Elements" into tElements
repeat for each line tLine in tWords
if char 1 to 2 of tLine is not among the lines of tElements then
next repeat
if char 3 to 4 of tLine is not among the lines of tElements then
next repeat
if char 5 to 6 of tLine is not among the lines of tElements then
next repeat
if char 7 to 8 of tLine is not among the lines of tElements then
next repeat
if char 9 to 10 of tLine is not among the lines of tElements
then next repeat
put tLine & cr after tRightList
end repeat
put the milliseconds - tStart
put tRightList into fld "Result"
end mouseUp
I think your code more optimised than mine :-)
Best Regards from Paris,
Eric Chatonet.
Le 20 juil. 05 à 19:46, Mark Wieder a écrit :
> Eric-
>
> Wednesday, July 20, 2005, 7:52:08 AM, you wrote:
>
> How'd you manage to get 30 milliseconds run time? The best I can do is
> about 130. Is your machine just that much faster than mine? Here's the
> fastest code I could come up with - any suggestions on speeding it up?
>
> on mouseUp
> local tLine, tTestString
> local x
> local tBlnPossible
> local tDictionary, tElements, tPossibles
> local tTime
>
> put "working..." into field "status"
> put empty into field "possibles"
>
> put the milliseconds into tTime
> put field "dictionary" into tDictionary
> put field "elements" into tElements
>
> repeat for each line tLine in tDictionary
> put true into tBlnPossible
> repeat with x=1 to 9 step 2
> put char x to x+1 of tLine into tTestString
> if tTestString is not among the lines of tElements then
> put false into tBlnPossible
> exit repeat
> end if
> end repeat
> if tBlnPossible then
> put tLine & cr after tPossibles
> end if
> end repeat
> put the milliseconds - tTime && "milliseconds" into field "elapsed"
>
> put tPossibles into field "possibles"
> put "found" && the number of lines in field "possibles" \
> && "possible answers" into field "status"
> end mouseUp
----------------------------------------------------------------
So Smart Software
For institutions, companies and associations
Built-to-order applications: management, multimedia, internet, etc.
Windows, Mac OS and Linux... With the French touch
Free plugins and tutorials on my website
----------------------------------------------------------------
Web site http://www.sosmartsoftware.com/
Email eric.chatonet at sosmartsoftware.com/
Phone 33 (0)1 43 31 77 62
Mobile 33 (0)6 20 74 50 86
----------------------------------------------------------------
More information about the use-livecode
mailing list