• 締切済み

10進ベーシック

プログラムで、いくつかの番号から何個かの数字を無作為に抽出するプログラムってどうやって作りますか? たとえば1,2,3,4,5,6,7,8,9,10の中から、n個の数を選び出すようなプログラムです。 ご回答お待ちしてます。

みんなの回答

  • sppla
  • ベストアンサー率51% (185/360)
回答No.1

あまりセンスのあるプログラミングではないと思いますが、私だとこうやって作りましたね。 データの個数をMAX_DATAのような変数で表現します。今回はMAX_DATA=10ですね。 各データを配列変数A(x)(xは1からMAX_DATA)に事前に格納しておきます。 また抽出状況の管理用に配列変数B(x)(xは1からMAX_DATA)を定義しすべての値を0クリアしておきます。 プログラミング言語には擬似乱数を発生させる関数があると思いますので、それで1~MAX_DATAの範囲内の整数xを生成します。 B(x)の値を調べます。 B(x)=0の場合には未抽出ですので、B(x)=1(抽出済み)とします。(それで次の抽出に進む) B(x)=1の場合には抽出済ですので、x=x+1として再度B(x)の値を調べるところに戻ります。なお、x>MAX_DATAの場合にはx=1とします。 これをn回繰り返せば、n個の数を抽出できると思います。 抽出した数を取り出すにはB(x)をB(1)からB(MAX_DATA)まで調べてB(x)=1となる場合のA(x)を取り出せばいい。

関連するQ&A