直接コードに:
Javaの:
パブリッククラスRandomGroup {
公共の静的な無効メイン(文字列[]引数){
文字列[]チーム= { "A" 、"B" 、"C" 、"D" 、"E" 、"F" 、"G" 、" H」、 "I" 、 "J"} 。
文字列[] []結果= randomGroup(チーム、3) 。
{(結果文字列[]の文字列)のため
のシステム。(アレイout.printlnをのtoString(文字列));
長さ/ NUM 。
int型YS =チーム。長%のNUM 。
IF(YS> 0)COL = COL + 1 。
int型= 0 、B = 0 。
文字列[] []結果= 新しいString [NUM] [COL] 。
一方、(チーム長さ> 0){
int型のインデックス=(INT)(数学。ランダム()*チームの長さ)。
結果[A] [B] =チーム[インデックス] 。
チーム[インデックス] =チーム[チーム。長さ- 1] 。
チーム=配列。copyOf(チーム、チーム。長さ- 1);
IF(<num- 1){
++ 。
}他の場合(B <col- 1){
A = 0 。
B ++ ;
}
}
戻り値の結果;
}
}
Pythonの版:
インポートランダム
K = 3
ARR = [ "A" 、"B" 、"C" 、"D" 、"E" 、"F" 、"G" 、"H" 、"I" 、"J"]
every_len = INT(LEN(ARR)/ K)
プリント(every_len)
arr_flag = []
random_num = []
のインデックス= 0
のI における範囲(LEN(ARR)):
arr_flag.append(TRUE)
random_num.append(インデックス)
指数+ = 1
ランダム。シャッフル(random_num)
result_arr = []
every_arr = []
インデックス= 0
私のために範囲(0 、LEN(ARR) - 1 、every_len):
指数+ = 1 jのために範囲(every_len):every_arr.append(ARR [random_num [I])、I + = 1 result_arr。追加(every_arr)every_arr = [] もしインデックス> = K:休憩Iために範囲(LEN(random_num) - LEN(result_arr)* every_len):result_arr [I] .append(ARR [random_num [ LEN(ARR) - 1 - I]]) プリント(result_arr)
还有待优化的地方、欢迎指正!