リスト内の要素をランダムに選択し、選択した要素を次のラウンドで削除しますこんにちは、みんな、
list[1,2,3,4,5,6,7,8,9,10] があるので、要素をランダムに選択し、次のランダム選択のためにその要素をリストから削除します。 選択を 4 回繰り返す必要があります。
リスト内で選択した要素を削除する簡単な方法はありますか? Remove と Remove From の両方に要素の i 番目のインデックスが必要です。
ご協力ありがとうございました。
自動化とスクリプト作成Re: リスト内の要素をランダムに選択し、選択した要素を次のラウンドで削除する1 つの編集バージョン@ジェフ・パーキンソンバージョン。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] || ".");Re: リスト内の要素をランダムに選択し、選択した要素を次のラウンドで削除するランダム シャッフルを使用してリスト (行列) をランダム化し、ランダム化されたリスト (行列) を 4 回ループするか、最初の 4 つの要素を選択することもできます。
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);
Re: リスト内の要素をランダムに選択し、選択した要素を次のラウンドで削除するこのようなものはうまくいきますか?
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] || ".");