如何用C語言產生0到1之間的隨機數

時間 2022-01-24 08:44:14

1樓:戴元武甕平

方法一:

1、功能:

產生0到1之間均勻分布的乙個隨機數

2、方法說明:

設m=216,產生產生0到1之間均勻分布的乙個隨機數的計算公式如下:

ri=mod(2053ri-1

+13849,m),i=1,2,3……

pi=ri/m

例:連續產生10個0到1之間均勻分布的乙個隨機數 。r的初值取5.0#include "stdio.h"

double rnd1(double *r)main()

方法二:

float

b=rand()/(rand_max+1.0);

printf("%f\n",b);

注釋:stdlib.h標頭檔案中有巨集#definerand_max

0x7fff

rand()產生乙個0到0x7ffff即0到32767之間的隨機數rand()/(rand_max+1.0)就等於乙個0到1之間的小數了,因為rand()最大是32767最小是0,再除以32768就是乙個0到1之間的小數(不能等於1),再乘以10就是乙個0到10之間的數了(不等於10).最後再加1,就成了乙個求1到10之間隨機數的式子了.

2樓:憑胤莫繡

用stdlib.h中的隨機數產生器。當然還要#include

首先srand(time(null));種隨機數種子。然後用算式float

result=rand()%256;rand()是產生乙個介於0到256的隨機數的函式。

3樓:喜飛英聶靜

可以寫乙個函式,利用math.h中的rand來產生隨機浮點數。

#include

#include

#include

//精度0.001的隨機浮點數

float

randf()

main()

有些書上說用rand得到的可能是負數。如果有出現負數的話,對rand得到的數取絕對值就可以了。

如何用C語言重複的產生不重複的0到9之間的隨機數

這種是演算法問題,有很多中辦法啊,比如你定義乙個a 10 裡面放10個數,然後你設計乙個函式,函式裡隨機生成乙個0 9的隨機數i,然後a 0 和a i 交換,然後在你20次迴圈的一次迴圈裡,跑100次這個函式,生成一組新陣列。你20次就是生成20組不同的陣列 include 提供printf函式宣告...

如何用c語言程式設計出視覺化介面,如何用C語言程式設計出視覺化介面?

純c語言c 很難。那得是大神中的大神。你可以借助qt工具。或者window 的vs 或者vc編輯。利用win32api 或者mfc等 c語言程式設計如何實現圖形化? 這要看你所使用的系統平台,圖形化程式設計與系統平台息息相關 對於c語言來說,有許多成熟的框架。比如windows上可使用windows...

ROM資料到RAM中如何用C語言定義對應的位址

rom是唯讀記憶體 read only memory 的簡稱,是一種只能讀出事先所存資料的固態半導體儲存器.其特性是一旦儲存資料就無法再將之改變或刪除.通常用在不需經常變更資料的電子或電腦系統中,資料並且不會因為電源關閉而消失.ram 隨機訪問儲存器 ram random access memory...

如何在c語言中產生100到200間的隨機整數翱謝

rand 產生隨機數 表頭檔案 include 定義函式 int rand void 函式說明 因為rand的內部實現是用線性同餘法做的,他不是真的隨機數,只不過是因為其週期特別長,所以有一定的範圍裡可看成是隨機的,rand 會返回一隨機數值,範圍在0至rand max 間。在呼叫此函式產生隨機數前...

C語言如何用變數控制小數字數,c語言如何控制小數字數?

先把要控制的數字先乘,再取整,再除。比如 把123.4567保留兩位 1 先把123.4567剩100等於12345.672 在數字前面加個 int 12345.67 取整3 取整後數字變成12345 4 最後再把這個數除以100等於123.45 樓上解法怎麼處理123.456 123.456000...