ここから本文です

下のプログラムは、コイントスのプログラムで双方へ行く確率が50%のランダムウォー...

アバター

ID非公開さん

2018/1/2601:31:44

下のプログラムは、コイントスのプログラムで双方へ行く確率が50%のランダムウォークのシミュレーションでExcelに結果が表示されるのですが、そこからグラフを作るとひとつ
できます!
このプ

ログラムを改変して、同時に34人(回分) のシミュレーションをするにはどう書き換えればいいですか?
分からないのでコードと説明を教えてくださると助かります(><)


#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>

void main ( ){
int i;
const int max=500;
long pos =0;
FILE *fp;


fp=fopen(''koin.csv'',''wt'');

fprintf(fp,''%4d,%3ld¥ n'',0,pos);

for (i=0; i<max;i++){
pos+=2(rand()%2)-1;
fprintf(fp,''%4d,%3ld¥ n'',i+1,pos);

fclose(fp);

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
45
回答数:
2
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

uso********さん

2018/1/2615:49:36

//テケトーにぶっちゃけ//
//http://codepad.org/xzOgSMlp#//
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#define rm 500
#define nm 34
//const int rm=500,nm=34;
#define dsp(S) \
    fprintf(fp,"%4d,",i); \
    for(j=0; j<nm; ++j)   \
      S,fprintf(fp,"%3ld%c",pos[j],j<nm-1?',':'\n')
int main(void){
int i=0,j;
long pos[nm]={0};
FILE *fp=stdout; //fopen("koin.csv","wt");
  srand(time(NULL));
  dsp(0);
  for(i=1; i<=rm; ++i){
    dsp(pos[j]+=2*(rand()%2)-1);
  }
  fclose(fp);
return 0;}

アバター

質問した人からのコメント

2018/1/27 11:48:43

ありがとうございます!参考になりました!

ベストアンサー以外の回答

1〜1件/1件中

nao********さん

2018/1/2710:04:07

C++の <random> というヘッダーを使えば

std::mt199937 gen;
std::bernoulli_distribution coin(0.5);

int i;
for(i = 0; i < 100; i++){
printf("%d\n", coin(gen));
}

とすればベルヌーイ分布による 1か0のどちらかをランダムで生成してくれます。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる