Excel関数を使って、高校 情報Ⅰで乱数を使用した比較をする方法について教えてください

このQ&Aのポイント
  • 高校 情報ⅠのExcel関数を使って、乱数を使用した比較をします。具体的には、9つのエリアに分かれた遊園地で、どこかにいるAさんを9人で探す方法についてです。探し方は集中型と分散型の2つあります。Excel関数を使ってそれぞれの方法でかかった時間を比較します。
  • 集中型の探し方は、9つのエリアのうち1つのエリアに9人全員を投入してAさんを探します。分散型の探し方は、9つのエリアをさらに9つに分けて、9人が個々にAさんを探します。9:00から22:00までの13時間で探し、1時間ごとに全員が移動します。
  • 集中型と分散型をそれぞれ100回シミュレーションし、かかった時間を比較します。Excel関数を使用することで、効率的な探し方を見つけることができます。
回答を見る
  • ベストアンサー

高校 情報Ⅰ(Excel関数)について教えて下さい

Excel関数を用いて、2つの比較をするというものです。 乱数を使用するようですがやり方がわからないので教えて下さい。 【概要】 ・9つのエリアに分かれた遊園地のどこかにいるAさんを、9人で探す ・探し方は大きく2つ 集中型と分散型 ・Excel関数を使ってそれぞれかかった時間を比較すること ■集中型 9つのエリアのうち、1つのエリアに9名全員を投入して探す ■分散型 9つのエリアをさらに9つに分ける(全部で計81マス) 9人が個々に分散してAさんを探す 【条件】 ・9:00~22:00の13時間で探すこと ・1時間ごとに全員移動する(Aさん含めて) ・集中型と分散型でそれぞれ100回シミュレーションを行い、  かかった時間を比較すること 以上となります。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kon555
  • ベストアンサー率52% (1754/3367)
回答No.3

>>表計算で比較するよう  シミュレーションを表計算でさせるというのは、意味不明としか言いようがないですね・・・。  無理矢理やるとしたら、以下のような方法が一応は有ります。   とりあえず、Excelの表計算としての乱数についてはいくつかの関数で実行できますが、整数でいいのでRANDBETWEEN 関数でいいでしょう。解説はこちら。 https://www.too.com/support/faq/microsoft/24060.html  集中型なら1~9の乱数を2つのセルで発生させ、片方を「Aさんの居場所」「もう片方を探す場所」とします。2つが一致しているかはif関数で判定できます。 『9:00~22:00の13時間で探す』という条件なので、1~13の数字各行の先頭にでも入力しておいて、乱数が一致すればその数値を返すようにif関数を組んでおけば、発見時間を抽出できます。  乱数はシートの再読み込み毎に生成されるので、この発見時間の数値はメモったり値貼り付けするなどで保存するか、同じセットを100セットコピーすれば『シミュレーション』できます。  分散型も単に乱数の数を増やすだけで基本は同じです。ただ普通に乱数を作ると重複が発生します(要は複数人が同じ場所を探す、というケースが発生する)ので、これを排除するならもう一工夫必要です。  ただ回答しといてなんですが、正直なところ課題になるような内容とは思えないので、何か前提条件が違っているような気はします。

その他の回答 (2)

  • kon555
  • ベストアンサー率52% (1754/3367)
回答No.2

 これExcelはExcelでも表計算ではなくvbaではないかと思うのですが、いかがでしょうか。表計算で、またはvbaでと、問題や教科的に指定はありますか?  あと集中型の場合は隠れる場所が9マスで探せるマスも1つ。つまり発見率は1/9。  分散型の場合は隠れる場所が81マスで探せるマスも9つ。つまり9/81で1/9。  なので、どちらも発見までの時間は変化しないと思いますが・・・。

sasakama116
質問者

補足

ありがとうございます。 表計算で比較するよう言われています。

  • f272
  • ベストアンサー率46% (8019/17139)
回答No.1

Aさんを探すということの意味が分からない。探すというのは具体的に何をすることなのか?どうやったら見つけたことになるのか?遊園地の広さはどのくらいなのか?時間を比較するとは何の時間なのか?エクセル関数を使えば関数を入力したらほぼ瞬時に結果は出ているのだが...

sasakama116
質問者

補足

言葉足らずですいません。 全部で81マスあるものを遊園地に見立てているんですが、この中のどこかにAさんがいるので、集中型と分散型で探しに行った時にバッティングする確率、という意味です。

関連するQ&A

  • Excel2002 ランダムに並べ替える関数

    Excel2002で掛算九九の100マス計算を作っています。 マクロを使って、ボタンにマクロを登録し、九九の問題を作成したいのです。 1~10の数字をランダムに重複しないように、A1:J1に表示したいです。 A B C D E 1 9 7 8 1 2・・・ 2 2 3 8 4 1 5 4 でA1:J1の1~10の数字ををランダムに並び替えたいのですが、そういった関数はありますか? RANDBETWEEN関数を使ってみたんですが、重複する数字が返ってきてしまいます。 何か良い方法はありますか?

  • Excel関数

    Excel関数で『INDIRECT($A$6&L19&"!$ae$515")』等を多数使用しています。数値更新時に時間を要する時があるので時間を短縮する方法はないでしょうか。 (例えば、PCのメモリを増設するととか?)

  • EXCEL関数

    お世話になります。 現在、EXCEL関数で悩んでおります。 例えば       売上ランク   数量  単価 商品A    B       20    300 商品B    C       10    520 商品C    A       72    430 商品D    A       53    290 商品E    B       31    330 をEXCELに入力をしているとします。 このデータをABCランク毎に集計し、売上金額を自動計算したいと考えています。 SUMIFでは個々の数量や単価の集計はできますが、どのようにすればランク毎の売上金額を計算できますでしょうか? 決算時期に近付いており、膨大なデータを効率的に集計したいので、ご存じの方がいらっしゃいましたらご教授ください。 ※データからAランクだけを抽出し、その数量と金額の合計を出したいです。 よろしくお願いいたします。

  • EXCEL2007関数を実行させない方法

    EXCEL2007関数を実行させない方法 セルAにデータが入力されている場合、セルBに組み込まれている関数を実行しない。 というような制御は可能でしょうか。 シートAに入力されたキーワードをシートBのリストと照合して キーワードがシートB内に何件あるかをCOUNTで調べようと思っています。 一度何も考えずに実装してみたのですが、 この場合シートBのデータが膨大なものになると、 このブックを開くたびに照合が実行されて、莫大な時間がかかってしまっているようでした。 ですので、今回このような質問をさせていただきました。 アドバイスなどありましたら よろしくおねがいします!

  • Excel2007 一方にないものを関数のみでより

    Excel2007です。 一方に含まれないレコードを関数のみで選り出す方法をお教えください。 デーダが二塊あるとします。 共通して含まれるレコードもあれば 片方にしかないものもある状態です。 共に1レコードは1行に納められています。 当然どちらの塊にも複数のレコードが含まれます レコードのオリジナル性を示すキーは 0~9,A~Jを用い、20通りを表し これを4つ用いて、20進数4桁で表されています。 仮に一方のリストをA、他方をB と、呼びます。 関数のみでAに含まれないBのレコードを一覧にするには どうすればできますか? 因に、両リスト共に キーは降順にはなっていませんし、 縦に並んでますし 文字列としてしまわれています。 私自身、 * Bをトランスポンド文(でしたっけ?)で列方向の羅列に変えて 総当たり性の真理値表的な比較をする式 * A,B共にキーを10進数に変換し Aをsmall文で降順にし match文、及びISNA文で Bの各々のキーを 同じものがAの中から見つかるものと #NAになるものとに 判別する と、いう2方法を試したのですが 前者はメモリー不足、 後者は INDEX文での配列値引き渡しがうまくいかず シフト+コントロール+エンターをしないといけなくなり 宜しくない状態です。 いいスマートな、目から鱗な方法はないでしょうか? ご教示をお願いします。

  • cの実装している乱数でシュミレーションしているのですが、

    rand()関数を使って2次元正方格子(100*100)の最近接結合、 a.2値ランダム相互作用(-J,J) b.強磁性体相互作用(J>0) c.反強磁性体相互作用(J<0) でのisingモデルをシュミレーションしたい、たとえば平均磁化mを求めたいのですが、実装している乱数ではすぐに周期がオーバーするような気がするのですが、何かいい乱数とかはありませんか? もし外部から関数を引っ張ってくるとしたらその計算も速い、あまり計算がかからないものがあるとうれしいです。 このシュミレーションでは乱数の周期性は問題にならないなら、実装の乱数を使うのですが、どなたか教えてもらえますか?

  • EXCEL2007とEXCEL2000の違いについて

    EXCEL2000で勤務時間を集計する一覧表を作成し利用していました。 先日EXCEL2007でその一覧表を利用してみたところ、計算式の入ったセルが「#N/A」と表示されてしまいました。 詳細を以下に記述致しましたが、原因をご存知の方がいればご教示ください。 <EXCEL2000で作成した一覧表についての仕様等> (1)「データ>データの入力規則」で設定したドロップダウンリスト(同一Book内の同一Sheetから値を参照)から勤務開始時間、勤務終了時間を選択させる。 (2)(1)で選択した勤務終了時間を用いてLOOKUP関数を使い、同一Book内の別Sheetから値を参照し、勤務時間を割り出す。 <一覧表をEXCEL2007で利用した際の現象について> 上記「(2)」の段階で計算式セル(LOOKUP関数の入ったセル)に「#N/A」と表示される。 ※情報が足りない等不備がありましたらお申し付け下さい。。

  • EXCEL2000 関数式内のセル名前の接頭プラス記号の意味

    退社した人の作ったEXCELの関数式を見直す必要が生じました。下記の関数式の A99の前にあるプラス記号は何か意味があるのでしょうか? 3時間調べたけどわかりません。どなたか教えてください IF(+$A99="",IF(+A99="","",+A99),"") 追伸 ところで関数式として記入する「A99」のことを何と言うんでしょうか ・セル名前? ・セルアドレス? ・参照セル記号? 質問のタイトルも困ってしまいました(^^;

  • 標準正規分布の乱数

    RAND()関数は ((double)rand() / (1.0 + RAND_MAX))と定義します。 中心極限定理により、一様乱数を足し合わせると正規分布に近づくことから、 x = 分散 * (Σ[1~12]RAND() - 6) + 平均 で正規乱数が作れる。標準正規分布は分散1、平均0なのでその乱数は x = Σ[1~12]RAND() - 6 ですよね。この乱数を例えば100個羅列するにはどうしたらいいのでしょうか? もし間違ってたら指摘してください。 参考文献「Cによるシミュレーションプログラム 石川宏」 #include <stdio.h> #include <stdlib.h> #define RAND() ((double)rand() / (1.0 + RAND_MAX)) #define NUMBER 10000 /* 発生させる乱数の数 */ main(void) { int j; double u, x; srand(5); for (j = 0; j <= 11; j++) { u = u + RAND(); } x = u - 6.0; }

  • EXCELの関数を使い時間帯を表示させたい

    EXCEL初心者です。 EXCEL2010を使っています。 A列に時間が入力されている時に、関数を使ってB列に時間帯を表示させる方法がありますか? たとえば、A列に A1 13時 A2 10時 A3 18時 ・ ・ とあり、 時間帯を10時~12時、12時~14時、14時~16時、16時~と区切る場合、 B列に B1 12時~14時 B2 10時~12時 B3 16時~ ・ ・ と表示させたいです。 時間帯別に集計する関数は色々載っていますが、単純に時間帯を表示させる方法がうまくヒットしません。 置換でやろうかと考えましたが、膨大なデータなので、関数で一気に出来ればと思います。 関数はあまり詳しくなく、困っています。 ご教授いただければ幸いです。 どうぞよろしくお願いします。