C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: C++ 配列と乱数の組み合わせ?


(過去ログ 102 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■60845 / inTopicNo.1)  C++ 配列と乱数の組み合わせ?
  
□投稿者/ りんご (14回)-(2011/07/20(Wed) 23:42:18)

分類:[.NET 全般] 

C++初心者です。
下記の条件のプログラムを作るのに苦戦しています。

1から5までの乱数を5000回発生させて、1,2,3,4,5がそれぞれ何回発生したかを表示するプログラム。
かりに、カウンタ(発生した度にインクリメントする変数)をa〔5〕={0,0,0,0,0};というようにゼロクリアにする。
ここでは配列を使用。
a〔5〕を宣言すると、a〔0〕からa〔4〕までなので注意。
a〔i - 1〕++もありです。


↑乱数の中に、どう配列を組み合わせればいいのか全くわかりません。汗

配列を使わなくても出来る気がするのですが・・・
なんで配列が必要なんでしょうか?

ご意見お待ちしております。
引用返信 編集キー/
■60846 / inTopicNo.2)  Re[1]: C++ 配列と乱数の組み合わせ?
□投稿者/ Azulean (791回)-(2011/07/21(Thu) 00:54:59)
No60845 (りんご さん) に返信
> 配列を使わなくても出来る気がするのですが・・・
> なんで配列が必要なんでしょうか?

できるでしょうね。
なぜ必要なのかは、出題者に聞いてください。
どうして必要なのか説明してもらえるかもしれません。


このように、ある課題を達成するための方法は複数あることがあります。
それの内、どれを選択するかは、その時々によって異なります。
たとえば、実現の手間が少ないとか、それを使わなければならない/使ってはならない制約があるとか。

今回の場合も「なぜ必要か」を説明できるのはその狙いを知っている出題者でしょう。
おそらくは、配列という概念を知ってもらうために条件をつけたとか、そういったところだと思います。

# 配列でなくてもできるかもしれませんが、たとえば、1 〜 32768 の出現回数を求めよと範囲が広がった場合に挫折すると思います。
引用返信 編集キー/
■60847 / inTopicNo.3)  Re[1]: C++ 配列と乱数の組み合わせ?
□投稿者/ 堀江伸一 (41回)-(2011/07/21(Thu) 01:22:15)
物の個数を数える時、物の名前を書いて、隣に数を正の字で記録したりしますよね。
コンピュータでも同じで、個数を数えるために記録しておく領域が必要で、それが配列になります。

コードはこんな感じです。
真面目に勉強したら3か月もたたないうちにこんな簡単なコードで悩んでいたんだなと思うようになりますよ。


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

inline void InitRand()
{
srand((unsigned int)time(NULL));//今の時刻を基準に乱数の種を作る
}

int main(){
int x;
int a[5];//記録用の表を用意
InitRand();//乱数を初期化
for(int i=0;i<6;i++)a[i]=0;//表を0にする
for(int i=0;i<5000;i++){
a[rand()%5]++;//rand()%5で0〜4までの数を取得、表のその部分を++で+1する、表の0番目が1を記録 1番目が2を記録という風になっている
}
for(int i=0;i<5;i++)printf("%dが%d回出ました\n",i+1,a[i]);//表の結果を表示

}
引用返信 編集キー/
■60849 / inTopicNo.4)  Re[1]: C++ 配列と乱数の組み合わせ?
□投稿者/ shu (873回)-(2011/07/21(Thu) 08:28:07)
No60845 (りんご さん) に返信

> 配列を使わなくても出来る気がするのですが・・・
> なんで配列が必要なんでしょうか?

配列を使った場合と使わない場合で実際にプログラムを作って
みれば分かるのではないでしょうか?
引用返信 編集キー/
■60860 / inTopicNo.5)  Re[2]: C++ 配列と乱数の組み合わせ?
□投稿者/ りんご (15回)-(2011/07/21(Thu) 12:49:43)
Azuleanさん
shuさん

配列を使わないプログラムを作成してみたのですが範囲が広すぎて途中で挫折してしまいました。

配列を使った方が明らかに時間短縮できますね。汗
引用返信 編集キー/
■60861 / inTopicNo.6)  Re[3]: C++ 配列と乱数の組み合わせ?
□投稿者/ りんご (17回)-(2011/07/21(Thu) 12:51:12)
堀江伸一さん

わざわざこんなに詳しく返答頂いてあいがとうございます。

自分でもやってみます。
引用返信 編集キー/
■60862 / inTopicNo.7)  Re[4]: C++ 配列と乱数の組み合わせ?
□投稿者/ りんご (18回)-(2011/07/21(Thu) 13:11:20)
No60861 (りんご さん) に返信
> 堀江伸一さん
>
> わざわざこんなに詳しく返答頂いてあいがとうございます。
>
> 自分でもやってみます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -