我有6個測試問題,我想隨機化,連同他們的正確答案。問題#1和#2,#3和#4,#5和#6屬於同一類型。爲了不讓測試過於簡單,我不希望連續顯示#1和#2(對於這個問題,也不是#3和#4,或#5和#6)。如何使用約束條件對列表進行洗牌(1和2,3和4,5和6不相鄰)?
爲此,我認爲我應該用這個約束來洗牌清單[1, 2, 3, 4, 5, 6]
:1和2,3和4,5和6是而不是相鄰。例如,[1,2,4,6,3,5]是不可接受的,因爲1和2彼此相鄰。然後,我要將新訂單應用於問題列表和答案列表。
正如有人新的節目,我只知道如何洗牌名單沒有約束,就像這樣:
question = [1, 3, 5, 2, 4, 6]
answer = ['G', 'Y', 'G', 'R', 'Y', 'R']
order = list(zip(question, answer))
random.shuffle(order)
question, answer = zip(*order)
任何幫助,將不勝感激!
你是什麼意思「不相鄰」?例子或例子? – nikpod
你能提供你到目前爲止所嘗試過的東西,並在問題中輸出樣本嗎? – kuro
@nikpod「不相鄰」,我的意思是像[1,2,3,5,4,6],[3,1,5,6,2,4]等是不可接受的,因爲1和前者有2個相鄰,後者有5個和6個。 – PsychGrad