アレイとパケットの数を考えると、ランダム化されたアルゴリズムを書きます

直接コードに:

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)














还有待优化的地方、欢迎指正!
 

おすすめ

転載: www.cnblogs.com/XiaoyangBoke/p/11233634.html
おすすめ