我目前正在創建一個應用程序,它會生成隨機數。所以每次它會生成三個數字num1,num2和num3。這些數字不應該重複。例如,如果num1 = 1比num2和num3不能等於1.我試過這個代碼,它將顯示從0-2範圍內的三個不同的數字。它的工作。不過,我想要生成範圍從1-3,2-4,3-5等的隨機數。那麼我怎樣才能通過使用下面的代碼來實現這一點。請幫助我,因爲我是新手。謝謝。生成一定範圍內沒有重複的隨機數
for(int i=0; i<images.length; i++)
{
num[i] = (int)(Math.random()*3);
if (i == 0)
{
if(num[i]== 0)
images[i].setImageResource(R.drawable.zero);
else if(num[i]==1)
images[i].setImageResource(R.drawable.one);
else
images[i].setImageResource(R.drawable.two);
}
else
{
while (num[i] == num[i-1] || num[i] == num[0])
num[i] = (int)(Math.random()*3);
if(num[i]==0)
images[i].setImageResource(R.drawable.zero);
else if(num[i]==1)
images[i].setImageResource(R.drawable.one);
else
images[i].setImageResource(R.drawable.two);
}
}
你的問題不是很清楚,你必須表達得更好。 –
我幾乎可以肯定,我已經看到了這個副本。 [這個問題](http://stackoverflow.com/questions/5224877/java-generate-random-range-of-specific-numbers-without-duplication-of-those-nu?rq=1)也非常接近。在處理這個時,我實際上是繼承[Random](http://docs.oracle.com/javase/7/docs/api/java/util/Random.html),允許注入/配置更改。 –
由於@ Clockwork-Muse提到,你可以從需要的範圍[洗牌值列表](http://stackoverflow.com/a/5224922/125562)。 – Basilevs