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]; } }