1

2 つの異なるシャッフル関数の作成に取り組んでいます。

最初のシャッフル関数は、リストを受け取り、要素をランダムな順序にシャッフルした新しいリストを返す必要があります。

これは私がこれまでに最初のシャッフル機能のために持っているものです-

def shuf(List):
    import random
    newList=[]
    for i in List:
        i=random.randrange(len(List))
        newList+=i
    return newList

2 番目のシャッフル関数は、リストをパラメーターとして取り、リストをその場でシャッフルします。

組み込み関数でそれを行う方法は知っていますが、使用することは許可されていません。

4

3 に答える 3

-2

計画: 要素 0 から始めて、リストを最初から見ていきます。そのための新しいランダムな位置、たとえば 6 を見つけ、0 の値を 6 に、6 の値を 0 に置きます。要素 1 に移動して、このプロセスを繰り返します。リストの残りの部分についても同様です。

import random
iteration = random.randint(2, 100)
temp_var = 0
while iteration > 0:
    # We will be swapping the value of i for j.
    # And then setting j to what i was using the temp_var place holder.
    for i in range(1, len(my_list)): # have to use range with len()
        for j in range(1, len(my_list) - i):
            # Using temp_var as my place holder so I don't lose values
            temp_var = my_list[i]
            my_list[i] = my_list[j]
            my_list[j] = temp_var

        iteration -= 1
于 2016-11-12T20:25:07.250 に答える