XavSnap wrote: ↑Wed May 17, 2023 6:01 am Hi,
The better way to shuffling an array is to reduce its length if the value is selected...
Only 5 loops to get a string.
Have a look to : https://www.sinclairzxworld.com/viewtop ... 938#p47938
The int(RND*5)+1, and put a space on the value, was a very bad purpose and loop many time on the same value !
RND=1,2,2,5,1,1,5,3,2,1,3,1,3,3,4 ( 15 times )
This purpose only chose unselected values: 4,2,3,1,5 ( 5 times )
Code: Select all
100 LET P=6 110 LET CN=0 112 LET T=13*P 115 DIM C(T) 120 FOR N=1 TO T 150 LET C(N)=N 170 NEXT N 7000 LET V=INT ((RND*T)+1) 7010 LET CN=CN+1 7050 LET R=C(V) 7100 IF V<>T THEN LET C(V)=C(T) 7110 LET T=T-1 7120 PRINT R;";"; 7130 IF T<>0 THEN GOTO 7000 7200 PRINT "END OF ";CN;" VALUES"
The thing I’m working on now is a method to find a SPECIFIC permutation of a set. The Nth permutation. It involves initially converting the decimal number represented by N into a number using the Factorial Number System (using factorials as a base: 1,2,3,6,24,120,720 etc). I posted an attempt at the code a few posts back. Wondering if anyone can simplify or improve it.
We would then simply assign a random number to N. Just a bit of fun.
