1- 隨機(jī)挑選一個(gè)數(shù)組中的某種元素中的一個(gè)
1)- 計(jì)算元素的數(shù)量
foreach( E e in array ) { if( e isTypeOf TargetType ) ++foundCount;}
2)- 在數(shù)量中取隨機(jī)值
randomIndex = random() * foundCount;
3)- 取元素
foreach( E e in array ) { if( e isTypeOf TargetType ) { if( randomIndex == 0 )return e; --randomIndex; } }
2- 隨機(jī)挑選一組數(shù)據(jù)中的數(shù)個(gè)數(shù)據(jù)
1)- 建立隨機(jī)表
randomTable[n] = random() * ( dataCount - n );
2)- 對(duì)隨機(jī)表升序排序
sort( randomTable );
3)- 取數(shù)據(jù)
foreach( E e in array ) { for( i = 0;i < n; ++i ) { if( randomTable[i] == 0 ) { container.add( e ); randomTable[i] = -1; break; } else if( randomTable[i] > 0 ) --randomTable[i]; } }