當前位置:首頁 » 編程語言 » c語言隨機產生小數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言隨機產生小數

發布時間: 2022-11-25 20:50:16

c語言用rand()取隨機數能不能取的是小數

rand()是生成一個從0到RAND_MAX的隨機數,所以要生成小數,除以RAND_MAX就一定是一個小數:
(double)rand()/RAND_MAX
什麼叫隨機數?就是不確定的數,不過這個表達式,可以肯定的是從0到1的小數。

⑵ c語言產生一個隨機無限不循環小數

"無限不循環小數"的標準是啥?計算機和手工書寫都是有確定長度的,不可能是無限的;「無限」在數學上只是一種對趨勢的推理,而用一個稱號來表示這種推理和趨勢。用C產生的偽隨機數可以做到「無限不循環」,但顯示出來肯定就有限制而被截斷了。一個被截斷了的數字,誰又能肯定它一定是「無限不循環」的呢?

⑶ 如何c語言中隨機產生1-50的隨機數,包括小數

VC環境下要比TC麻煩一些
格式如下:
#include "time.h"
#include "stdlib.h"
#include "stdio.h"
void main()
{
double x;

srand((unsigned)time(0)); //根據時間來產生隨機數種子
x=(double)rand()/RAND_MAX*49+1.0;//(double)rand()/RAND_MAX產生0到1之間的隨機數,乘以49,加上1.0就是1到50的隨機數。
printf("%lf",x);

}

⑷ c語言中如何產生1或0隨機數

float b=rand()/(RAND_MAX+1.0);
printf("%f\n",b);

注釋:
stdlib.h頭文件中有宏#define RAND_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之間隨機數的式子了.

⑸ C語言產生1~10隨機小數

//---------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

double rnd(void)
{
static int fg=1;
int rd;
if (fg) {
srand(time(NULL));
fg=0;
}

return (double)(rand()%900+100)/100;
}

int main(void)
{
int i;
for (i = 0; i < 10; i++) //輸出10個[1.00,10.00]區間內的小數
printf("%.2f\n",rnd());
return 0;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------

⑹ C語言中用#include<time.h>的頭文件,srand((unsigned)time(NULL)),如何產生隨機小數

得到整數後再轉化成浮點數,最後除以10、100或1000即可。
編程要學會變通,模板函數不可能考慮所有可能的,不然還用你來寫代碼編程干什麼。

⑺ 在C語言中,怎樣產生一個0到1的隨機數

float
b=rand()/(RAND_MAX+1.0);
printf("%f\n",b);
注釋:
stdlib.h
頭文件
中有宏#define
RAND_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之間隨機數的
式子
了.

⑻ 如何用c語言取0-1間的隨機小數

可以寫一個函數,利用math.h中的rand來產生隨機浮點數。
#include
#include
#include
//
精度0.001的隨機浮點數
float
randf()
{
return
(float)(rand()
%
1001)
*
0.001f;
}
main()
{
int
i;
for
(i=0;
i<100;
++i)
printf("%.3f\n",
randf());
system("pause");
}
VC里rand()的范圍是從0到某個內部指定的極大數,但是以前似乎有些書上說用rand得到的可能是負數。如果有出現負數的話,對rand得到的數取絕對值就可以了。

⑼ C語言中用#include<time.h>的頭文件,srand((unsigned)time(NULL)),如何產生隨機小數

這個應該符合你的要求了:
#include
#include
#include
double
rnd(void)
{
static
int
fg=1;
int
rd;
if
(fg)
{
srand(time(NULL));
fg=0;
}
return
(double)(rand()%900+100)/100;
}
int
main(void)
{
int
i;
for
(i
=
0;
i
<
10;
i++)
//輸出10個[1.00,10.00]區間內的小數
printf("%.2f\n",rnd());
return
0;
}
運行結果:
6.71
8.54
7.80
3.07
4.24
2.13
3.34
7.84
2.06
4.70
Press
any
key
to
continue

⑽ c語言中如何生成1個0到1的隨機數

C語言中生成1個0到1的隨機數可以執行語句:float b=rand()/(RAND_MAX+1.0);

解析:

標准C庫中函數rand()可以生成0~RAND_MAX之間的一個隨機數,其中RAND_MAX 是stdlib.h 中定義的一個整數,它與系統有關。rand()函數沒有輸入參數,直接通過表達式rand()來引用;

用函數rand取得的隨機數除以(RAND_MAX+1.0),即可確保得到的結果在0到1之間。ISO IEC 9899 2011 (C11)標准中未規定 RAND_MAX 的具體數值。但該標准規定了RAND_MAX 的值應至少為32767。編程的時候,不應該對 RAND_MAX 的具體數值做任何假設。

(10)c語言隨機產生小數擴展閱讀:

相關說明:

1、因為rand()函數是按指定的順序來產生整數,因此每次執行上面的語句都列印相同的兩個值,所以說C語言的隨機並不是真正意義上的隨機。

2、為了使程序在每次執行時都能生成一個新序列的隨機值,我們通常通過為隨機數生成器提供一粒新的隨機種子。函數 srand()(來自stdlib.h)可以為隨機數生成器播散種子。只要種子不同rand()函數就會產生不同的隨機數序列。srand()稱為隨機數生成器的初始化器。

3、隨機種子(Random Seed)是計算機專業術語,一種以隨機數作為對象的以真隨機數(種子)為初始條件的隨機數。一般計算機的隨機數都是偽隨機數,以一個真隨機數(種子)作為初始條件,然後用一定的演算法不停迭代產生隨機數。