TI-84 randInt函數如何生成隨機數?我想在我的電腦上覆制這個PRNG,這樣我可以得到一些更大的樣本量,但我不知道如何。從計算器一次複製數字5不是一種選擇。運行OS X 10.7.3在計算機上生成TI-84隨機數
1
A
回答
1
我不知道如何在計算機上完全複製它的功能,但是您不必一次只生成五個數字。您可以將非常大的隨機數樣本存儲在列表中,然後通過ti connect軟件將它們傳輸到您的計算機。
2
根據我的更廣泛的答案here,下面是一個C++實現鈦PRNG的:
#include <iostream>
#include <iomanip>
using namespace std;
long mod1 = 2147483563;
long mod2 = 2147483399;
long mult1 = 40014;
long mult2 = 40692;
long seed1,seed2;
void Seed(int n){
if(n<0) //Perform an abs
n = -n;
if(n==0){
seed1 = 12345;
seed2 = 67890;
} else {
seed1 = (mult1*n)%mod1;
seed2 = n%mod2;
}
}
double Uniform(){
double result;
seed1 = (seed1*mult1)%mod1;
seed2 = (seed2*mult2)%mod2;
result = (double)(seed1-seed2)/(double)mod1;
if(result<0)
result = result+1;
return result;
}
double RandInt(int min, int max){
if(min<max)
return min+int((max-min+1)*Uniform());
else
return max+int((min-max+1)*Uniform());
}
int main(){
Seed(0);
for(int i=0;i<10;i++)
cout<<setprecision(10)<<RandInt(5,97)<<endl;
}
我用了一個TI-83模擬器生成值RandInt(5,97)
:
這與我上面的程序的輸出相匹配:
$ ./a.out
92
89
18
52
42
73
9
36
97
23
相關問題
- 1. 生成隨機數onclick並計算生成的數字?
- 2. 在Xorshift隨機數生成算法
- 3. 計算隨機數
- 4. 隨機數生成機制
- 5. 生成隨機數
- 6. 隨機數生成
- 7. 生成隨機數
- 8. 隨機數生成在PySpark
- 9. TI-84 +隨機數生成算法
- 10. MATLAB:在parfor或並行計算中生成隨機數
- 11. 如何計算生成的隨機數的平均數量?
- 12. 生成計算機移動
- 13. 隨機數生成的計算時間最少
- 14. 隨機數生成 - ARM7上的C
- 15. Spartan-3E上的隨機數生成
- 16. 帶計算機端隨機數發生器的2D TicTacToe
- 17. 生成隨機數據
- 18. Visual Basic生成隨機數
- 19. 生成一組隨機數
- 20. 正確生成隨機數
- 21. 隨機數的生成
- 22. 有關生成隨機數
- 23. 隨機數生成問題
- 24. MATLAB生成隨機數
- 25. 生成很多隨機數
- 26. 隨機生成數字?
- 27. 大隨機數生成
- 28. qrand不生成隨機數
- 29. 生成隨機小數
- 30. C++生成隨機數-1
這就是我最終做的。仍然花了我和一個朋友五個小時左右才能得到我們需要的所有數字,但它工作。 – 2012-05-16 14:09:40