1
random.shuffle
に問題があります。基本的には、リスト内のアイテムを疑似ランダム化するためにはうまく動作しますが、私の場合は同じアイテムが同じ位置に残らないようにしたいと考えています。元の位置に残っているアイテムを避けながら、リスト内のアイテムをシャッフルする方法は?
すべての商品アイテムが新しいポジションになるように、このコードを作成しました。
match = True
while match is True:
for i in range(len(initial_list)):
if initial_list[i]==result_list[i]:
random.shuffle(result_list)
match = True
else:
match = False
このコードは(シャッフルを行うことができる場合)のテストに合格したが、それを行うには、より簡単&より高速な方法はありますか?
なお:
同じ考えのわずかな変更では、我々はあなたの新しい要件に追加することができます'は、各要素が別の場所で終わることを確実にするアルゴリズムであるPRNGを使用しています。 – TigerhawkT3
@ TigerhawkT3:確かに、見た目やサウンドがよりランダムなものは、ランダムではありません(http://muller.lbl.gov/teaching/Physics10/old%20physics%2010/chapters%20(old)/ 4-Randomness .htm) –
http://dilbert.com/strip/2001-10-25 –