首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言隨機數應用:模擬擲六面骰子

     編輯:關於C語言

核心代碼

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

int main(void) {
    for (int i = 0; i <= 20; i++) {
        if (i % 5 == 0) printf("\n");  // 每 5 個換行
        printf("%10d", 1 + (rand() % 6));  // 1~6
    }
    return 0;
}

關鍵知識點

語法說明
rand()產生 0 ~ RAND_MAX 偽隨機整數(需 stdlib.h)。
rand() % 6取模縮放至 0~5。
1 + ...平移至 1~6,符合骰子點數。
%10d寬度 10 右對齊輸出,排版整齊。

進階:隨機種子與品質

  • rand() 預設種子固定(通常為 1),每次執行序列相同。
  • 加入 srand((unsigned)time(NULL))(需 time.h)以當前時間作種子,獲得不同序列。
  • 嚴密應用(加密、科學模擬)請使用 random、arc4random、C++11 <random> 等高品質生成器。

改良版:帶種子、可指定次數

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

int main() {
    srand((unsigned)time(NULL));
    int n = 20;  // 或從命令列讀取
    for (int i = 0; i < n; i++) {
        if (i % 5 == 0) putchar('\n');
        printf("%4d", 1 + rand() % 6);
    }
    putchar('\n');
    return 0;
}

結語

「縮放與平移」是將均勻分佈隨機數映射到任意整數區間 [a, b] 的通用公式:a + rand() % (b - a + 1)。骰子模擬是最直觀的入門範例,理解此原理後可輕鬆擴展至撲克牌洗牌、隨機測試資料生成、蒙地卡羅模擬等場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved