新しく発言する EXIT インデックスへ
教えてくださいvv

  教えてくださいvv サクラ 2004/11/28 14:57:16 
  min(a,b)の組み込み関数が用意されているよ... 小塚貞典 2004/11/28 18:32:40 
   └ありがとうございます!申し訳ないのですが... サクラ 2004/11/28 19:40:31 
    └並べ替えでなくて最小値を見つけるだけなら2004/11/28 20:04:49 
     └並べ替えの場合はGoogleでクイックソート、...2004/11/28 20:09:30 
      └ありがとうございます。やってみたのですが... サクラ 2004/11/28 20:43:49 
       └正確に要望が理解できてないかもしれません...2004/11/28 21:12:32 
        └ありがとうございます。やってみたら、INPU... サクラ 2004/11/28 21:29:20 
         └最初はデータの個数?"で解ると思います。2004/11/28 21:37:02 
          └X(i)=INT(RND*100)+1となっているのですが... サクラ 2004/11/28 23:00:51 
           ├詳しく書きます。 サクラ 2004/11/28 23:03:55 
           │└最小値を求めるだけなら並べ替えなんてわざ... 青木太一 2004/11/29 09:28:29 
           └質問が若干あいまいで、何を言いたいのよく... 青木太一 2004/11/29 09:24:05 
            └すみませんでした。調べてもわからなかった... サクラ 2004/11/29 23:42:55 
             └謝らないでください。恐縮させる意図はあり... 青木太一 2004/11/30 00:20:45 
              └何か誤解をしてしまい、また迷惑をかけてし... サクラ 2004/12/02 00:26:15 

  教えてくださいvv サクラ 2004/11/28 14:57:16  ツリーへ

教えてくださいvv 返事を書く
サクラ 2004/11/28 14:57:16
アルゴリズムなんですけど、並べ替えで最小値を見つけるプログラムがわかりません。詳しく教えてくださいませんか。

  min(a,b)の組み込み関数が用意されているよ... 小塚貞典 2004/11/28 18:32:40  ツリーへ

Re: 教えてくださいvv 返事を書く
小塚貞典 2004/11/28 18:32:40
min(a,b)の組み込み関数が用意されているようですよ。
比較して残ったものということになりませんか。
並べ替える数が多ければ、二分検索法のような方法をとるとプログラムが速くなると言うことになると思うのですが。
具体的にはinputで配列と呼ばれる、変数の塊のようなものを使う方法と、read data の方法が思いつきますが。
参考にならないかな。よろしくお願いします。

   └ありがとうございます!申し訳ないのですが... サクラ 2004/11/28 19:40:31  ツリーへ

Re: min(a,b)の組み込み関数が用意されているよ... 返事を書く
サクラ 2004/11/28 19:40:31
ありがとうございます!申し訳ないのですが、詳しくプログラムを作る方法を教えてくださいませんか?お願いします。

    └並べ替えでなくて最小値を見つけるだけなら2004/11/28 20:04:49  ツリーへ

Re: ありがとうございます!申し訳ないのですが... 返事を書く
2004/11/28 20:04:49
並べ替えでなくて最小値を見つけるだけなら

最初のデータを変数 minに入れる。
次のデータをminと比較して小さければこのデータをminに入れる。
これを全てのデータについて繰り返すとminに最小値が入ることになります。

     └並べ替えの場合はGoogleでクイックソート、...2004/11/28 20:09:30  ツリーへ

Re: 並べ替えでなくて最小値を見つけるだけなら 返事を書く
2004/11/28 20:09:30
並べ替えの場合はGoogleでクイックソート、またはシェルソートで検索するといっぱい出てきます。
クイックソートの例
http://www5d.biglobe.ne.jp/~tomoya03/shtml/algorithm/QSort.htm

      └ありがとうございます。やってみたのですが... サクラ 2004/11/28 20:43:49  ツリーへ

Re: 並べ替えの場合はGoogleでクイックソート、... 返事を書く
サクラ 2004/11/28 20:43:49
ありがとうございます。やってみたのですが、上手くいきません。データの個数をN、データをK、Lを使っているのですが、その場合はどうすればいいのですか。プログラムの作り方を教えてください。

       └正確に要望が理解できてないかもしれません...2004/11/28 21:12:32  ツリーへ

Re: ありがとうございます。やってみたのですが... 返事を書く
2004/11/28 21:12:32
正確に要望が理解できてないかもしれませんが

INPUT PROMPT "データの個数?":N
DIM D(N)

FOR i=1 TO N
INPUT D(i)
NEXT i

mini=D(1)

FOR i=2 TO N
IF D(i)<mini THEN mini=D(i)
NEXT i

PRINT "最小値は";mini;"です。"
END

        └ありがとうございます。やってみたら、INPU... サクラ 2004/11/28 21:29:20  ツリーへ

Re: 正確に要望が理解できてないかもしれません... 返事を書く
サクラ 2004/11/28 21:29:20
ありがとうございます。やってみたら、INPUT ?と出てきたのですが、何を書けばいいのですか?

         └最初はデータの個数?"で解ると思います。2004/11/28 21:37:02  ツリーへ

Re: ありがとうございます。やってみたら、INPU... 返事を書く
2004/11/28 21:37:02
最初は データの個数?"で解ると思います。
続いてN回 INPUT ?で実際のデータを入れて行きます。
N回 入力が完了すると結果が直ちに計算されて表示されます。

          └X(i)=INT(RND*100)+1となっているのですが... サクラ 2004/11/28 23:00:51  ツリーへ

Re: 最初はデータの個数?"で解ると思います。 返事を書く
サクラ 2004/11/28 23:00:51
X(i)=INT(RND*100)+1となっているのですが・・・わかりますか?

           ├詳しく書きます。 サクラ 2004/11/28 23:03:55  ツリーへ

Re: X(i)=INT(RND*100)+1となっているのですが... 返事を書く
サクラ 2004/11/28 23:03:55
詳しく書きます。
並べ替えを行うプログラム@
LET N=10000
DIM X(N)
!RANDOMIZE
FOR i=1 TO N
LET X(i)=INT(RND*100)+1
NEXT i
LET ts=TIME
!LET C=0
!LET A=0
FOR K=1 TO N-1
FOR L=K+1 TO N
!LET A=A+1
IF X(K)<X(L) THEN
LET T=X(K)
LET X(K)=X(L)
LET X(L)=T
! LET C=C+1
END IF
NEXT L
NEXT K
LET te=TIME
FOR i=1 TO N
print X(i);
IF MOD(i,10)=0 THEN PRINT
NEXT i
PRINT
PRINT "かかった時間は";te-ts;"秒"
!PRINT "交換した回数は";C;"回"
!PRINT "比較した回数は";A;"回"
END
どこをどう変えればいいのですか?度々すみません・・・

           │└最小値を求めるだけなら並べ替えなんてわざ... 青木太一 2004/11/29 09:28:29  ツリーへ

Re: 詳しく書きます。 返事を書く
青木太一 2004/11/29 09:28:29
最小値を求めるだけなら並べ替えなんてわざわざせずに哲さんが示した方法でできると思いますが...

上のプログラムを使うなら、並べ替えによって配列の最後に最小値がくることになるので、
PRINT "最小値は";x(N)
とでもENDの直前の行に書けばいいと思います。

まあ1から100までの整数をランダムに10000個も代入した配列では、ほぼ確実に最小値は1になってしまうでしょうけど...

           └質問が若干あいまいで、何を言いたいのよく... 青木太一 2004/11/29 09:24:05  ツリーへ

Re: X(i)=INT(RND*100)+1となっているのですが... 返事を書く
青木太一 2004/11/29 09:24:05
質問が若干あいまいで、何を言いたいのよくわかりません。
質問文は(特にメールやWeb上では)なるべく明解、丁寧、正確に書いた方がいいですよ。
回答者はどういう文脈で質問してきたのか想像するしかないので...

で、質問の意味が
「X(i)=INT(RND*100)+1
という文がどういう意味なのかわからないのだが、
誰かはわかりますか?」
だとすると、
「X(i)に1から100までの間の整数からランダムに選ばれたものを代入する」
という操作です。

まず十進BASICのヘルプで「RND」や「INT」が何をする関数か調べてから質問するといいと思いますよ。
(調べてもよくわからなかったので質問したのならごめんなさい)

            └すみませんでした。調べてもわからなかった... サクラ 2004/11/29 23:42:55  ツリーへ

Re: 質問が若干あいまいで、何を言いたいのよく... 返事を書く
サクラ 2004/11/29 23:42:55
すみませんでした。調べてもわからなかったので質問させてもらいました。不適切で迷惑をかけてしまい本当にごめんなさい。

             └謝らないでください。恐縮させる意図はあり... 青木太一 2004/11/30 00:20:45  ツリーへ

Re: すみませんでした。調べてもわからなかった... 返事を書く
青木太一 2004/11/30 00:20:45
謝らないでください。恐縮させる意図はありませんでした、誤解させてしまったようです。ごめんなさい。

ここは初心者歓迎と書いてあるので、明確でない質問をしたところで不適切ではないと思います。
(それで質問のやりかたを成長していただければいいのではないでしょうか)
(今回のように、調べてわからなかった場合は、どう調べてどうわからなかったかを書くといいと思います。まあ「どうわからなかったのか」を書くのも簡単ではありませんが...。)

私が言える立場ではありませんが、今回のことでサクラさんが質問を無用に遠慮してしまうことのないよう願う次第です。

              └何か誤解をしてしまい、また迷惑をかけてし... サクラ 2004/12/02 00:26:15  ツリーへ

Re: 謝らないでください。恐縮させる意図はあり... 返事を書く
サクラ 2004/12/02 00:26:15
何か誤解をしてしまい、また迷惑をかけてしまいすみません。これからもどんどん利用するつもりなので、そのときはまた宜しくお願いします。


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。