一道面試題 等概率隨機數

2021-07-09 18:19:44 字數 1353 閱讀 5194

假設有兩個函式 rand3()可以產生隨機的0、1、2,rand5()可以產生隨機的0、1、2、3、4,現在請你利用它編寫乙個函式rand7(),產生0~6的隨機數。

int rand7()

; int row,col;

do while(a[row][col]>6);

return a[row][col];

}

int rand7()

} while(re>6);

return re;

}

int rand7()

while(re>6);

return re;

}

#include 

#include

#include

int rand5()

int rand3()

int rand7()

; int row,col;

do while(a[row][col]>6);

return a[row][col];

}//從均勻的0~20裡面取mod

int rand7a()

return sum%7;

}//從均勻的0~34裡面取mod

int rand7b()

return sum%7;

}void main()

; srand( (unsigned)time( null ) );

for(int i=0;i<1000000;i++)

for(int i=0;i<7;i++)

printf("re[%d]=%d,%2d

%%\n",i,re[i],int(re[i]*100/1000000.0+0.5));

}

執行結果:

re[0]=143047,

14%re[1]=143042,

14%re[2]=143561,

14%re[3]=143315,

14%re[4]=142750,

14%re[5]=142144,

14%re[6]=142141,

14%請按任意鍵繼續...

//從均勻的0~20裡面取mod

int rand7a()

return

sum%7;

}//從均勻的0~34裡面取mod

int rand7b()

return

sum%7;

}

錯誤方法分析:

一道面試題

一道面試題 射擊運動員10發打中90環有多少種可能,請編寫程式計算出來,並列印出結果,0環和10環均有效。打中90環就是沒打中10環,所以打中90環跟打中10環的可能性是一樣的。然後開始遞迴狂打槍,一到10就記錄 if params i 10 在迴圈的控制中已經排除了大於10的可能性 i 10 pa...

一道面試題

前些時候在找工作,就在準備結束此次找工作歷程的時候,去了一家公司面試,去了之後技術經理直接帶到一台電腦旁,給了一張紙條,上面是這樣的題目 用c或c 來實現 1 建立一棵樹,該樹的深度是隨機的,每個節點的位元組點數是隨機的。2 給每個節點分配一段隨機大小的記憶體空間,給每個節點賦乙個隨機數。3 遍歷這...

一道面試題

如果n為偶數,則將它除以2,如果n為奇數,則將它加1或者減1。問對於乙個給定的n,怎樣才能用最少的步驟將它變到1。例如 n 61 n 60 n 2 30 n 2 15 n 16 n 2 8 n 2 4 n 2 2 n 2 1 public class myclass public static vo...