回覆列表
  • 1 # 手機使用者86764325834

    生產隨機的矩陣的關鍵在於使用隨機函式rand()。

    rand()

    表頭檔案: #include<stdlib.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每個數字被選中的機率是相同的.

    基於隨機函式,使用雙重迴圈語句便可以生成一個隨機矩陣,下面是一個10x10隨機矩陣的程式碼,數值範圍在0~1000:

    #include <stdio.h>

    #include <stdlib.h>

    #define M 10

    #define N 10

    int main(void)

    {

    int i = 0, j = 0;

    int Arr[M][N] = {{0}};

    srand(time(NULL));

    for (i = 0; i < M; ++i)

    {

    for (j = 0; j < N; ++j)

    {

    Arr[i][j] = rand() % 1000;

    }

    }

    printf("Array[%d][%d] is: \n", M, N);

    for (i = 0; i < M; ++i)

    {

    for (j = 0; j < N; ++j)

    {

    printf("%d\t", Arr[i][j]);

    }

    printf("\n");

    }

    return 0;

    }

  • 中秋節和大豐收的關聯?
  • 《三體》裡“黑,真他媽的黑啊”,這樣的黑,大家體驗過嗎?是什麼經歷?