1. Speed trial [mini-contest] ;-)
- Posted by petelomax at blueyonder.co.uk Nov 10, 2002
- 381 views
{{{ Just a bit of fun (or maybe a bit dull, this isn't AI):
I was a bit undecided on the very fastest way this could be done, so I scribbled down four ways to do it and was a little surprised that case 4 was the fastest (only a little, not a lot, surprised that is).
I just wondered if anyone could think of a 5th or 6th way to do it, though I doubt there will be much faster.
Code follows: Speed trial:
integer bracelevel atom a
1:
constant bway={{2,3,4,5,6,7,8,1},{8,1,2,3,4,5,6,7} constant bn={1,1,1,2,2,2
verify: for i1 to 6 do for j1 to 8 do bracelevelj bracelevel=bway[bn[i]][bracelevel] printf(1,"%d ",bracelevel) end for end for puts(1,"\n")
2:
verify: for i1 to 6 do for j1 to 8 do bracelevelj if i <3 then bracelevel=remainder(bracelevel,8)+1 else bracelevel=8-remainder(9-bracelevel,8) end if printf(1,"%d ",bracelevel) end for end for puts(1,"\n")
3:
verify: for i1 to 6 do for j1 to 8 do bracelevelj if i<=3 then bracelevel+=1 if bracelevel9 then bracelevel=1 end if else bracelevel-1 if bracelevel=0 then bracelevel=8 end if end if printf(1,"%d ",bracelevel) end for end for puts(1,"\n")
4:
constant bplus={2,3,4,5,6,7,8,1} constant bminus={8,1,2,3,4,5,6,7
verify: for i1 to 6 do for j1 to 8 do bracelevelj if i<=3 then bracelevelbplus[bracelevel] else bracelevel=bminus[bracelevel] end if printf(1,"%d ",bracelevel) end for end for puts(1,"\n")
if getc(0) then end if