[問題] 完全想不透 c和c++的亂數
多謝之前大大的幫忙,小弟完成了龐大的c++程式
但因為要寫成CUDA程式 所以我得要把C++翻譯成C
但翻譯完執行C的時候發現有很大的問題
首先最大的我發現的BUG在於亂數
我不知道是不是include的問題
但如果是c++的話
int i;
double c;
for(i=0;i<10;i++)
{c=rand()/32767; cout<<c<<endl;
}
就可以列印出十個不同的從0~1的random number
但如果是C
這是我全部的程式測試碼
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main() {
srand(12345);
int a, b;
double c[10];
//開始亂數 並且列印
for(a=0;a<10;a++){
c[a]=rand()/(double)RAND_MAX; // 這行在添一個 printf("%d\n,c[a])
//會結果很不同於下面那個printf的結果
}
for(b=0;b<10;b++){
printf("%d\n",c[b]);
}
}
我完全搞不懂c的亂數到底是怎麼運作的 完全連動也不能動
有三個問題
1.亂數只會一直連續出現同一個 並不會像C++一樣迴圈出現不同亂數
2.把c[a]不要用array的方式 用普通的變數x 也是一樣的結果
3.用了RAND_MAX結果出來的亂數超大 跟本不會介於0~1
拜託大大解惑
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.167.75.124
推
06/18 21:44, , 1F
06/18 21:44, 1F
→
06/18 22:16, , 2F
06/18 22:16, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章