c如何產生01之間開區間的隨機數

2021-04-19 18:38:58 字數 2451 閱讀 9409

1樓:

用rand函式產生一列1~32768的數,除以32769.0來實現。舉例**回如下:答

//#include "stdafx.h"//if the vc++6.0, with this line.

#include "stdio.h"

#include "stdlib.h"

#include "time.h"

int main(void)

2樓:匿名使用者

樓上來為何不試試,用除自法得出的數bai可du是自動判為0#include

#include

#include

int main()

3樓:手機使用者

就隨0之1的10^9次方 之後得出的東西除10^9次方

4樓:聽不清啊

c++中rand()函式是產生隨機數的一個隨機函式,範圍為0~rand_max,其中

rand_max是c中stdlib.h中巨集定義的一個版字元常量:

所以,權要得到一個(0,1)之間(開區間)的隨機數,可以這樣:

#include

#include

#include

void main( void )

5樓:請留言

取0-10000000000之間的隨機數,然後除以10000000000即可

強制轉換為double型就不會判為0 了

c++如何產生0到1之間的隨機數?

6樓:匿名使用者

c++中用來產生隨機

抄數的函襲數為rand(), 其返回值為整數。

而0到1之間的隨機數,明顯是浮點數。

這樣無法直接產生。

於是,必須經過轉換。

轉換思路為,生成一個0-n的隨機數,然後對其除以n+1,則可以得到0-1直接的浮點型隨機數。

n的確定,可以與要求的精度有關,比如需要三位小數,可以採用n=999,如需要四位,則採用n=9999,以此類推。

具體操作如下:

#include

#include

void get_rand(float *p, int n)//函式功能為產生n個0-1的隨機數,儲存於陣列p中。

7樓:匿名使用者

在用rand之前,先用當前時間設定種子,即srand(time(null));

然後要得到0到1之前的,可專以

double i = rand()*1.0/rand_max;

同樣,你要得到4.1應該是屬rand()/10.0,否則兩個整數相除,得到的是整除的結果,不是double型。

8樓:匿名使用者

測試bai通過

du#include

#include

using namespace std;

int main()

system("pause");

return 0;}

9樓:匿名使用者

#include

#include

#include

void main( void )

{int i;

srand( (unsigned)time( null ) );

for( i = 0; i < 10;i++ )cout<整數

抄除以整數嘛,所以得到bai的肯定也是du個整數啊,它會強制轉zhi換為整數。dao所以你得到的是4,而不是4.1。 你要得到4.1那麼就除以10.0就可以了 。

記住在以後的除法中,要得到小數,就最好在除數中加上小數。

10樓:匿名使用者

vc中使用baisrand()來初始化為隨機du數生成器。代zhi碼例項:

#include

#include

#include

#define n 10

main()

11樓:匿名使用者

//產生0--1之間的隨機小數(精確

內到小數點

後一位)容

#include

#include

#include

void main()}

12樓:匿名使用者

z在c++中有專門來產生隨

自機數的函式bai rand()

#include

#include

using namespace std;

void main()

{int i;

srand((int)time(0));

i=(int)rand();//%m;

cout << i<節

dum的大小

zhi來得到0~m的隨dao機數;

excel如何產生411 550之間的隨機整數,不要重複。簡單點複雜了看不懂

在a1輸入 rand 如需要140個數就下拉到a140.需要多少個可下拉多少個 在b1輸入 rank a1,a a a 140 410 此處的 140以a列下拉格數為準 加號後面的數字以你需要開頭的數字為準,如需0 xx的,可省略加號及後面的數字。b1輸入後回車,下拉到需要的數量,此數量內的數字均為...

c 產生隨機數的程式,C 產生隨機數的程式

要看r的 了吧。如果r的 是某個和時間有關的數 就可以解釋了 後三句就是 讓某個在65536和0之間的數除以65536獲得0和1之間的隨機數 r 2053.0 r 13849.0 這是兩個有個是素數吧 應該是的 2053就是 質因數分解13849 11 1259 那麼這兩個素數的公倍數大於65535...

求高手,C,如何生成115之間的不重複的隨機數

考慮到演算法效率 你其實可以用另一種方式來實現 先生成一個1 15按順序的陣列 然後生成隨機變數種子 每次取一個在陣列長度內的隨機數 然後取出對應的數值並放到另一個陣列中 而存的那十五個數值的陣列則把該數值去除 這樣十五次就能得到了 如下 定義陣列 並給出長度 listilist new list ...