![]() |
擲骰子的問題
請問各位大大幾個程式的問題
使用亂數產生一長度為n,範圍介於1~6的亂數陣列,並將該陣列以函數参數的方式回傳,來模擬擲了n次骰子的結果。 #include "stdio.h" #include "stdlib.h" // dist[6] : given distribution of each number's appearances // result[n] : simulation result // n : rolling a dice n times // void rolling(int dist[6], int result[][2], int n) { //在這加入程式碼 } void print(int vals[][2], int len) { int i; int cnt[6]; for(i=0; i<6; i++) cnt[i]=0; printf("Rolling result : "); for(i=0; i<len; i++) { printf("(%d,%d) ",vals[i][0],vals[i][1]); int index=vals[i][0]-1; cnt[index]++; index=vals[i][1]-1; cnt[index]++; } printf("\n"); for(i=0; i<6; i++) { printf("\tdice(%d) = %4.1f \n",i+1,(double)cnt[i]/len*100); } printf("\n"); } int main(){ const int n=100; int dices[n][2]; int dist1[] = {3,3,3,6,6,12}; int dist2[] = {6,3,6,1,1,12}; int dist3[] = {1,1,2,1,1,4}; srand(time(NULL)); rolling(dist1,dices,n); print(dices,n); rolling(dist2,dices,n); print(dices,n); rolling(dist3,dices,n); print(dices,n); return 0; } |
#include <stdio.h>
#define random(num) (rand() % (num)) /* random 取亂數 */ #define randomize() srand((unsigned)time(NULL)) /* randomize 清除取亂數種子表 */ #define clrscr() system("CLS") /* 畫面清除 */ #define pause() system("PAUSE") /* 暫停畫面 */ #define S 100 /* 設定巨集數值 S 為 100,擲骰子次數 */ #define U 6 /* 設定巨集數值 U 為 6,當骰子的數字 */ int pr_s(int au[]); /* 顯示擲骰子結果 */ int run_c(int au[]);/* 執行擲骰子+統計 */ main() { int au[u]={0}; run_c(au); pr_s(au); pause(); } run_c(int au[]) { int i,c; randomize(); for(i=0;i<S;i++) { c=random(U); au[c]++; } } pr_s(int au[]) /* 顯示擲骰子結果 */ { int i; clrscr(); printf("擲骰子 %d 次:\n",S); for(i=0;i<U;i++) { printf("\n%d 出現 %5d 次,機率為 % 3.1f %%",i+1,au[i],(float)au[i]/S*100); } printf("\n\n"); } |
#include "stdio.h"
#include "stdlib.h" #define random(num) (rand() % (num)) /* random 取亂數 */ #define randomize() srand((unsigned)time(NULL)) /* randomize 清除取亂數種子表 */ #define clrscr() system("CLS") /* 畫面清除 */ #define pause() system("PAUSE") /* 暫停畫面 */ /* dist[6] : given distribution of each number's appearances result[n] : simulation result n : rolling a dice n times */ void rolling(int dist[6], int result[][2], int n) { int i,c; randomize(); for(i=0;i<n;i++) { c=random(6); result[i][0]=i+1; result[i][1]=dist[c]; } } void print(int dist[6],int vals[][2], int len) { int i; int cnt[6]={0}; int index; /* for(i=0; i<6; i++) */ /* cnt[i]=0; */ clrscr(); printf("Rolling result : "); for(i=0;i<6;i++) printf("(%d) ",dist[i]); printf("\n"); for(i=0; i<len; i++) { printf("(%3d,%2d) ",vals[i][0],vals[i][1]); /* int index=vals[i][0]-1; */ index=vals[i][1]-1; cnt[index]++; } printf("\n"); for(i=0; i<6; i++) { printf("\tdice(%d) = %4.1f \n",i+1,(double)cnt[i]/len*100); } printf("\n"); pause(); } int main(){ const int n=100; int dices[n][2]; int dist1[] = {3,3,3,6,6,12}; int dist2[] = {6,3,6,1,1,12}; int dist3[] = {1,1,2,1,1,4}; srand(time(NULL)); rolling(dist1,dices,n); print(dist1,dices,n); rolling(dist2,dices,n); print(dist2,dices,n); rolling(dist3,dices,n); print(dist3,dices,n); } |
#include "stdio.h"
#include "stdlib.h" #define random(num) (rand() % (num)) /* random 取亂數 */ #define randomize() srand((unsigned)time(NULL)) /* randomize 清除取亂數種子表 */ #define clrscr() system("CLS") /* 畫面清除 */ #define pause() system("PAUSE") /* 暫停畫面 */ /* dist[6] : given distribution of each number's appearances result[n] : simulation result n : rolling a dice n times */ void rolling(int result[][2], int n) { int i,c; randomize(); for(i=0;i<n;i++) { result[i][0]=i+1; result[i][1]=random(6)+1; } } void print(int vals[][2], int len) { int i; int cnt[6]={0}; int index; /* for(i=0; i<6; i++) */ /* cnt[i]=0; */ clrscr(); printf("Rolling result : \n"); for(i=0; i<len; i++) { printf("(%3d,%2d) ",vals[i][0],vals[i][1]); /* int index=vals[i][0]-1; */ index=vals[i][1]-1; cnt[index]++; } printf("\n"); for(i=0; i<6; i++) { printf("\tdice(%d) = %4.1f %%\n",i+1,(double)cnt[i]/len*100); } printf("\n"); pause(); } int main(){ const int n=100; int dices[n][2]; rolling(dices,n); print(dices,n); } |
所有時間均為台北時間。現在的時間是 06:28 PM。 |
Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.
『服務條款』
* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *