c語言生成1002000隨機數,c語言生成1到10000的隨機數代碼

本文目錄一覽:

在c語言中怎樣使用rand產生100-1000

建議你先研究下rand的用法。如下:

rand和srand的用法

首先我們要對rand&srand有個總體的看法:srand初始化隨機種子,rand產生隨機數,下面將詳細說明。

rand(產生隨機數)

表頭文件: #includestdlib.h

定義函數 :int rand(void)

函數說明 :

因為rand的內部實現是用線性同餘法做的,他不是真的隨機數,只不過是因為其周期特別長,所以有一定的範圍里可看成是隨機的,rand()會返回一隨機數值,範圍在0至RAND_MAX 間。在調用此函數產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在調用時會自動設隨機數種子為1。rand ()產生的是假隨機數字,每次執行時是相同的。若要不同,以不同的值來初始化它.初始化的函數就是srand()。

返回值:

返回0至RAND_MAX之間的隨機整數值,RAND_MAX的範圍最少是在32767之間(int),即雙位元組(16位數)。若用unsigned int 雙位元組是65535,四位元組是4294967295的整數範圍。

0~RAND_MAX每個數字被選中的機率是相同的。

範例:

/* 產生介於1 到10 間的隨機數值,此範例未設隨機數種子,完整的隨機數產生請參考

srand()*/

#includestdlib.h

main()

{

int i,j;

for(i=0;i10;i++)

{

j=1+(int)(10.0*rand()/(RAND_MAX+1.0));

printf(“%d “,j);

}

}

執行:

9 4 8 8 10 2 4 8 3 6

9 4 8 8 10 2 4 8 3 6 //再次執行仍然產生相同的隨機數

srand(設置隨機數種子)

表頭文件:#includestdlib.h

定義函數:void srand (unsigned int seed);

函數說明:

srand()用來設置rand()產生隨機數時的隨機數種子。參數seed必須是個整數,通常可以利用geypid()或time(0)的返回值來當做seed。如果每次seed都設相同值,rand()所產生的隨機數值每次就會一樣。

範例

/* 產生介於1 到10 間的隨機數值,此範例與執行結果可與rand()參照*/

#includetime.h

#includestdlib.h

main()

{

int i,j;

srand((int)time(0));

for(i=0;i10;i++)

{

j=1+(int)(10.0*rand()/(RAND_MAX+1.0));

printf(” %d “,j);

}

}

執行:與rand範例比較

5 8 8 8 10 2 10 8 9 9

2 9 7 4 10 3 2 10 8 7

又或:

用”int x = rand() % 100;”來生成 0 到 100 之間的隨機數這種方法是不或取的,比較好的做法是: j=(int)(n*rand()/(RAND_MAX+1.0))產生一個0到n之間的隨機數

int main(void)

{

int i;

time_t t;

srand((unsigned) time(t));

printf(“Ten random numbers from 0 to 99\n\n”);

for(i=0; i10; i++)

printf(“%d\n”, rand() % 100);

return 0;

}

除以上所說的之外,補充一點就是srand這個函數一定要放在循環外面或者是循環調用的外面,否則的話得到的是相同的數字。

MSDN中的例子。

// crt_rand.c

// This program seeds the random-number generator

// with the time, then displays 10 random integers.

//

#include stdlib.h

#include stdio.h

#include time.h

int main( void )

{

int i;

// Seed the random-number generator with current time so that

// the numbers will be different every time we run.

//

srand( (unsigned)time( NULL ) );

// Display 10 numbers.

for( i = 0; i 10;i++ )

printf( ” %6d\n”, rand() );

printf(“\n”);

// Usually, you will want to generate a number in a specific range,

// such as 0 to 100, like this:

{

int RANGE_MIN = 0;

int RANGE_MAX = 100;

for (i = 0; i 10; i++ )

{

int rand100 = (((double) rand() /

(double) RAND_MAX) * RANGE_MAX + RANGE_MIN);

printf( ” %6d\n”, rand100);

}

}

總結:

我們知道rand()函數可以用來產生隨機數,但是這不是真真意義上的隨機數,是一個偽隨機數,是根據一個數,我們可以稱它為種了,為基準以某個遞推公式推算出來的一係數,當這系列數很大的時候,就符合正態公布,從而相當於產生了隨機數,但這不是真正的隨機數,當計算機正常開機後,這個種子的值是定了的,除非你破壞了系統,為了改變這個種子的值,C提供了 srand()函數,它的原形是void srand( int a) 功能是

初始化隨機產生器既rand()函數的初始值,即使把種子的值改成a; 從這你可以看到通過sand()函數,我們是可以產生可以預見的隨機序列,

那我們如何才能產生不可預見的隨機序列呢?我們可能常常需要這樣的隨機序列,是吧。利用srand((unsign)(time(NULL))是一種方法,因為每一次運行程序的時間是不同的,對了,你知道time() 函數的功能是返回從1970/01/01到現在的秒數的吧,可能這個起始時間不正確,你查一下對不對吧,C還提供了另一個更方便的函數, randomize()

原形是void randomize(),功能是用來始初rand() 的種子的初始值,而且該值是不確定的,它相當於srand((unsign)(time(NULL)) 不過應注意的是randomize()的功能要通過time來實現所以在調用它時頭文件要包含time.h罷了。

c語言怎麼生成隨機數?

你好!

完整的代碼,紅圈處就是從上面100個數字中抽取到的數字:

#include stdio.h

#includestdlib.h                  //生成隨機數用 

#includetime.h                    //利用時間生成種子 

#includemath.h                    

int main()

{

      int i;

  int a[100];

      srand( time(NULL) );         //生成種子 

      for(i=0;i100;i++)

      {

       a[i]=rand()%1000+1000;      //生成一個小於1000的隨機數

                               //然後加1000,變成 1000 – 2000之間的數 

       printf(“%d  “,a[i]);       //列印 

      }

       i=rand()%100;              //隨機抽取其中的一個數 

       printf(“\n抽取到的是:%d\n”,a[i]);//列印 

      

      return 0; 

}

C語言如何生成1~20000000隨機數

#includestdio.h

#includestdlib.h

#includetime.h

void main() { int x;

  srand((unsigned int )time(NULL));

  x=rand()%20000000+1;

  printf(“%d\n”,x);

}

rand()%20000000會生成[0~19999999]區間的整數

rand()%20000000+1為[1~20000000]區間整數

c語言如何生成0到2,000,000,000之間的隨機數

#include time.h // 頭文件包括它

long int x;

srand((unsigned)time(NULL)); // 用當前時間取得種子

x = rand() % 2000000000; // 這就是0到1999999999之間的隨機數。

———

如果要取更大的隨機數,超出 long int 最大值,你可以把 數分成左右2部分,例如:

int x1,x2;

int v1=50000, v2=100000;

char str[20];

x1 = rand() % v1;

x2 = rand() % v2;

sprintf(str,”i=%d %d%d”,i, x1,x2); // 把他們拼起來,存到字元串里。

—-

MS VC++ 6.0 有 64 位 整型 _int64 x;

x = x1*v2+x2; // 把他們拼起來,存到長長整型里

printf(“%12I64d\n”, x); // 按12位場寬輸出

c語言中如何隨機生成一個 1 到 2千萬 的數

1 C語言產生隨機數函數。rand(); 頭文件為stdlib.h

2 產生[m,n]範圍內隨機數的語句: rand()%(n-m+1)+m

3 要產生不同隨機數範圍的方法:

將已獲取的隨機數保存下來,在產生新的隨機數後,與已獲取到的進行比較,如果存在則拋棄,否則保存。

於是,獲取到最小為m,最大為n,總數為k個的不同隨機數的函數可以寫作:

void get_rand(int *a, int m, int n, int k)//結果存在a中

{

int i,j,t;

for(i = 0; i k; )

{

t = rand()%(n-m+1)+m;

for(j = 0; j i; j ++)

if(a[j] == t) break;

if(j == i)//不重複

a[i++] = t;//記錄隨機數。

}

}

你應該會看字,會模仿吧,把m,n改成你需要的具體數字就可以了

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/270766.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-16 13:38
下一篇 2024-12-16 13:38

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • Python生成隨機數的應用和實例

    本文將向您介紹如何使用Python生成50個60到100之間的隨機數,並將列舉使用隨機數的幾個實際應用場景。 一、生成隨機數的代碼示例 import random # 生成50個6…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在著手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29

發表回復

登錄後才能評論