[問題] C++中的亂數
小弟在作一個作業的時候
必須取得一個亂數
其範圍在-16.536~16.536之間
我原本使用的code(單單只有取亂數的部份)是
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
double random_number();
int main()
{
double a;
a = random_number();
cout << a << endl;
system("pause");
return 0;
}
double random_number()
{
srand((unsigned int)time(NULL));
double a = 16383.5;
double b = rand();
b -= a;
b /= a;
b *= 16.536;
return b;
}
結果發生的情況是
因為time(NULL)都靠時間取亂數
結果每次跑這個程式都得到沒有很大差別的亂數
因為必須在很短的時間內取到四個亂數
而且亂數的值必須要比較多變
所以也沒辦法先取%再轉換範圍
那樣值的選擇性會變的很少
有大大可以給點建議
怎麼樣可以確實的取到亂數嗎?
--
用妳給的承諾描繪愛情的輪廓
用妳美麗的笑容填入愛情的顏色
完成的那副情景,叫做幸福
而我是個畫家
我的工作就是完成這幅圖畫
並一輩子守護著它
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.124.71.6
※ 編輯: darkather 來自: 140.124.71.6 (11/10 15:04)
推
11/10 15:06, , 1F
11/10 15:06, 1F
→
11/10 15:07, , 2F
11/10 15:07, 2F
→
11/10 15:08, , 3F
11/10 15:08, 3F
→
11/10 15:12, , 4F
11/10 15:12, 4F
推
11/10 15:14, , 5F
11/10 15:14, 5F
→
11/10 15:14, , 6F
11/10 15:14, 6F
→
11/10 15:20, , 7F
11/10 15:20, 7F
→
11/10 15:20, , 8F
11/10 15:20, 8F
→
11/10 15:21, , 9F
11/10 15:21, 9F
→
11/10 15:22, , 10F
11/10 15:22, 10F
→
11/10 15:22, , 11F
11/10 15:22, 11F
→
11/10 15:27, , 12F
11/10 15:27, 12F
→
11/10 15:40, , 13F
11/10 15:40, 13F
→
11/10 15:41, , 14F
11/10 15:41, 14F
→
11/10 15:41, , 15F
11/10 15:41, 15F
→
11/10 15:41, , 16F
11/10 15:41, 16F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章