DIM chromosome%(164), pair%(164), birds%(1000) RANDOMIZE TIMER units = 164 birdunits = 1000 childmax = 0 FOR trial = 1 TO birdunits FOR a = 1 TO units chromosome%(a) = 1 NEXT a unitcnt = units childcnt = 0 'unitcnt tells us when all genes are passed WHILE unitcnt > 0 childcnt = childcnt + 1 'first, build uniqueness list FOR cunit = 1 TO units pair%(cunit) = 1 NEXT cunit 'this loop similates one offspring (half the genes) FOR a = 1 TO (units / 2) 'look for unique selections unique = 0 WHILE unique = 0 b = INT(RND * units) + 1 unique = pair%(b) WEND 'IF chromosome%(b) = 1 THEN PRINT b chromosome%(b) = 0 pair%(b) = 0 NEXT a 'count number of units still not selected unitcnt = 0 FOR a = 1 TO units unitcnt = unitcnt + chromosome%(a) NEXT a WEND PRINT PRINT childcnt IF childmax < childcnt THEN childmax = childcnt birds%(trial) = childcnt NEXT trial PRINT "Percents" FOR childcnt = 5 TO childmax percent = 0 FOR birdtrial = 1 TO 1000 IF birds%(birdtrial) > childcnt THEN percent = percent + 1 NEXT birdtrial PRINT childcnt; " = "; 100 - (percent / 10); CHR$(13); NEXT childcnt PRINT "max = "; childmax