隨機選擇列表中的一個元素,並在下一輪中刪除所選的元素大家好,
我有一個列表[1,2,3,4,5,6,7,8,9,10],我想隨機選擇一個元素,然後從列表中刪除該元素以進行下一個隨機選擇。 我需要重複選擇四次。
有沒有一種簡單的方法可以刪除列表中選定的元素? “Remove”和“Remove From”都需要元素的第 i 個索引。
感謝您的幫助。
自動化和腳本編寫回复:隨機選擇列表中的一個元素,並在下一輪中刪除所選的元素一個編輯過的版本@傑夫·珀金森版本,它使用“Remove From”返回值(它以列表形式返回已刪除元素的值)。 此代碼可能不太容易閱讀,但有時使用 Remove From 的返回值很有用:
Names Default To Here(1);
theList = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"};
While(N Items(theList) > 1,
// returns list of removed elements, we remove one value, so get first index
r_val = Remove From(theList, Random Integer(N Items(theList)))[1];
Print(Eval Insert("The chosen item was ^r_val^."));
);
Print("The chosen item is " || theList[1] || ".");回复:隨機選擇列表中的一個元素,並在下一輪中刪除所選的元素您還可以使用 Random Shuffle 來隨機化列表(矩陣),然後循環隨機列表(矩陣)四次或選擇前四個元素
Names Default To Here(1);
m = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
m_rand = Random Shuffle(m);
Show(m, m_rand);
回复:隨機選擇列表中的一個元素,並在下一輪中刪除所選的元素像這樣的東西會起作用嗎?
theList = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"};
while(nitems(theList) > 1,
r=random integer(nitems(theList));
print("The chosen item was " || theList[r] || ". Element number " || char(r) || ".");
remove from(theList, r);
);
print("The chosen item is " || theList[1] || ".");