jbskaggs ha scritto: > >>> FOR i = 0 TO ListView1.count - 1 STEP 1 >>> myArray[i] = i >>> NEXT >>> >>> FOR i = ListView1.count - 1 TO 0 STEP -1 >>> a = Int(Rnd(i + 1)) >>> SWAP myArray[i], myArray[a] >>> PRINT i, a >>> NEXT >>> Apart from the problem of missing records, there could be also a "randomness" problem in the algorithm... I am really not sure, but it seems that certain slots have more chances to be swapped than other - myarray[0] can be swapped COUNT times, while myarray[count-1] gets only a chance. I am not sure of what this signifies: it is true that the swap affects the values contained in slots, and not the slots themselves, but anyway there could be another method. One could also do this:
for i = 0 to 1000 ' arbitrary value, large enough (>100?) c1 = int(rnd(listview1.count)) c2 = int(rnd(listview1.count)) swap myarray[c1], myarray[c2] next This way, every slot gets the same chances to be swapped; for sufficient loops, it should make a good job... perhaps more random than before. And perhaps, as the algorthm is different, it could solve the problem of missing records (which I didn't understand...). Cheers, -- Doriano Blengino "Listen twice before you speak. This is why we have two ears, but only one mouth." ------------------------------------------------------------------------------ This SF.net email is sponsored by: High Quality Requirements in a Collaborative Environment. Download a free trial of Rational Requirements Composer Now! http://p.sf.net/sfu/www-ibm-com _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user