我試圖寫模擬高爾夫球的變形例的SAS程序,2個半部的每9個孔:Do循環與可變迭代(SAS)
對於1個半9洞:
以九個十二面骰子開始,值爲-1,0,1,2,3,4且具有常數概率。
挑選最低值的骰子,並將它們存儲到數組中。
除去許多骰子的最低值(即,如果0是最低值,並且其中有3個,則第二次迭代只剩下6個骰子)。重複,直到數組有9個元素。
將這些分數彙總在一起得到上半場得分。
我能寫出下面的代碼,每輪取最低分,然後每輪取消一個骰子(總共9輪1半)。但是我不知道我該如何改變它,或者改變它,以便每輪可以移除不同數量的骰子(因此總輪數< = 9)。
do i = 1 to 9;
do j = 9 to 1 by -1;
if i - j <= 0 then
dice(j) = rantbl(seed, p1n, p0, p1, p2, p3, p4) - 2;
else dice(j) = 100;
end;
half1(i) = min(of dice1-dice9);
end;
我想限定的陣列而不元素指定數量的,且具有外的do while循環與暗淡(陣列)的結束條件= 9。但我不知道如何確定有多少元素每次刪除。
有人可以給我一些關於如何解決這個問題的建議嗎?我在SAS入門級的SAS編程課上,所以我還是很新的。
謝謝!