生成14個可重複一次的隨機數
private int[] DealStartTiles()
{
//Debug.Log(System.DateTime.Now.Millisecond);
int[] TilesPlatgame=new int[14];
int[] NumRepeat = new int[14];
int nraddress = 0;
TilesPlatgame[0]=0;//init
NumRepeat[0] = 0;
int seedr=Mathf.RoundToInt(System.DateTime.Now.Millisecond*Random.value)/10;
for(int i=0;i<14;i++)
{
while(true)
{
seedr=Mathf.RoundToInt(System.DateTime.Now.Millisecond*Random.value)/10;
int Torder = 0;
if(seedr>=0&&seedr<53)
{
if(NumRepeat[0]!=0)
{
for(int k=0; k<NumRepeat.Length;k++)
{
if(seedr==NumRepeat[k])
{
Torder = 1;
break;
}else
{
Torder = 0;
break;
}
}
}
if (Torder == 1)
continue;
else
break;
}
}
TilesPlatgame[i]=seedr;
int WhoRepeat = 0;
for(int j=0; j<i;j++)
{
if(TilesPlatgame[i]==TilesPlatgame[j])
{
WhoRepeat = TilesPlatgame[j];
NumRepeat[nraddress++] = WhoRepeat;
break;
}
}
}
for(int l=0; l<TilesPlatgame.Length;l++)
{
Debug.Log(TilesPlatgame[l]);
}
return TilesPlatgame;
}
總體思想就是,生成一個數放到一個陣列裡,然後用這個數和前面所有數進行對比,重複一次就放到另外一個陣列裡,下次迴圈其中一個分支會因為另外一個陣列非空而開始進行比對,如果該隨機數與重複陣列重複則重新生成隨機數,然後繼續執行上述操作。
相關文章
- 無重複隨機數生成隨機
- [隨機數詳解]生成一個隨機數,生成指定範圍的隨機數及隨機陣列去重隨機陣列
- C++【生成16個不重複字母】(生成不重複隨機數)C++隨機
- php生成一個可選位數的隨機碼PHP隨機
- 巧用物件,生成不重複隨機數物件隨機
- java 無重複取隨機數Java隨機
- 編寫一個程式,獲取10個1至20的隨機數,要求隨機數不能重複。隨機
- 集合框架-產生10個1-20之間的隨機數,要求隨機數不能重複框架隨機
- 如何生成隨機不重複的11位數字隨機
- matlab之生成不重複的隨機整數Matlab隨機
- Matlab 隨機生成兩個數值之間的隨機數Matlab隨機
- C#迴圈中使用Random生成隨機數有重複問題C#random隨機
- 生成某個範圍的隨機數隨機
- 生成隨機數隨機
- 生成總和固定 可變範圍的隨機數隨機
- 集合框架-獲取無重複的隨機數案例框架隨機
- python 如何一次隨機取出多條資料(能重複/不能重複)Python隨機
- javascript生成不重複隨機數程式碼例項JavaScript隨機
- JavaScript 生成隨機數JavaScript隨機
- mysql生成隨機數MySql隨機
- python生成隨機數、隨機字串Python隨機字串
- 更安全的隨機數生成隨機
- PHP 生成更好的隨機數PHP隨機
- C語言程式生成指定範圍的不重複的隨機數C語言隨機
- 隨機數生成器隨機
- java隨機數生成原理Java隨機
- 生成隨機整數方法隨機
- python 隨機數生成Python隨機
- C++生成隨機數C++隨機
- 生成固定長度不重複的隨機字串隨機字串
- python生成隨機數的方法Python隨機
- Linux Shell 生成隨機數和隨機字串Linux隨機字串
- LightDB/PostgreSQL 生成可重複執行的指令碼SQL指令碼
- 微信小程式生成隨機數微信小程式隨機
- 幾種生成隨機數方法隨機
- 使用Math類生成隨機數隨機
- matlab 生成隨機數序列Matlab隨機
- 在oracle 中生成隨機數Oracle隨機