壹樓哥哥給的答案沒問題,最好的是26線(randomNum-);
問這個問題的人應該都是新手,我來解釋壹下這位兄弟寫的代碼的意思;
首先,創建壹個30長度的數組並遍歷賦值。數字為1-30的數組是取值範圍。
我們將從這個數組中得到我們需要的隨機數。
然後創建壹個7長度的答案數組,用於保存答案。
生成隨機數的Random要放在for循環中,每次可以得到不同的隨機數。
註意這裏26行的randomNum。每循環壹次,我們取值範圍的下標提前壹位,也就是說第壹次賦值,取值範圍全是30個數字,第二個-變成前29個數字,每循環減壹,每循環取值範圍去掉最後壹位數字;
從範圍數組中隨機取壹個數放在答案數組的第壹位,然後我們會把這個數和最後壹位交換。
然後randomNum -,我們取的數,和最後壹位數字交換,就超出範圍了。
比如答案數組現在為空{},範圍數組現在有{1,2,3 };
第壹次循環後,如果答案數組變成:{1},取值範圍變成{3,2}1,取了1的值,因為randomNum -已經和最後壹位交換,消除了。