1- 隨機挑選一個數組中的某種元素中的一個
1)- 計算元素的數量
foreach( E e in array ) { if( e isTypeOf TargetType ) ++foundCount;}
2)- 在數量中取隨機值
randomIndex = random() * foundCount;
3)- 取元素
foreach( E e in array ) { if( e isTypeOf TargetType ) { if( randomIndex == 0 )return e; --randomIndex; } }
2- 隨機挑選一組數據中的數個數據
1)- 建立隨機表
randomTable[n] = random() * ( dataCount - n );
2)- 對隨機表升序排序
sort( randomTable );
3)- 取數據
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]; } }