목록에서 무작위로 요소를 선택하고 다음 라운드를 위해 선택한 요소를 제거합니다.모두 안녕
요소를 임의로 선택한 다음 다음 임의 선택을 위해 목록에서 해당 요소를 제거하려는 목록[1,2,3,4,5,6,7,8,9,10]이 있습니다. 선택을 4번 반복해야 합니다.
목록에서 선택한 요소를 쉽게 제거할 수 있는 방법이 있습니까? Remove와 Remove From 모두 요소의 i번째 인덱스가 필요합니다.
도와주셔서 감사합니다.
자동화 및 스크립팅Re: 목록에서 무작위로 요소를 선택하고 다음 라운드에서 선택한 요소를 제거합니다.의 한 편집 버전 @제프_퍼킨슨 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: 목록에서 무작위로 요소를 선택하고 다음 라운드에서 선택한 요소를 제거합니다.또한 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);
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] || ".");