史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   擲骰子的問題 (http://forum.slime.com.tw/thread156277.html)

kcfs983 2005-08-30 06:45 PM

擲骰子的問題
 
請問各位大大幾個程式的問題

使用亂數產生一長度為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;
}

getter 2005-08-31 03:58 AM

#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");
}

getter 2005-08-31 04:32 AM

#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);
}

getter 2005-08-31 04:48 AM

#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.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1