配列のデータをソートして割る Udarath Wanigasekara 2006/03/24 16:19:14 ├6こずつに分けてとなっていますが,このプロ... 白石 和夫 2006/03/24 17:34:59 │└そうですね。実はそのように出てほしいです... ウダー 2006/03/24 18:28:10 │ └最大値の検索範囲が1つ余分です。 白石 和夫 2006/03/24 20:14:28 │ └ifi<lands(i)<s(i+1)thenここでi<... ウダー 2006/03/24 20:53:05 │ └それでよさそうな気がします。 白石 和夫 2006/03/25 07:27:15 └もし,最初はs(0),s(1),...,s(5)のグループ... 白石 和夫 2006/03/24 17:44:06
配列のデータをソートして割る Udarath Wanigasekara 2006/03/24 16:19:14 ツリーへ
配列のデータをソートして割る |
返事を書く |
Udarath Wanigasekara 2006/03/24 16:19:14 | |
こんにちは。留学生のウダーです。私作ったプログラムはうまくいかないです。教えてください。 S()という配列に128個のデータが入っています。その配列を6個ずつ分けてその6データの中の一番大きい値で割ってファイルに出したいです。 例えば:1 2 3 4 5 6 と出てこれば一番大きい値6を選択してそれで割って 1/6 2/6 0.5 4/6 5/6 1のようにファイルに書き込みたいです。 作成したプログラムはこれです。 option base 0 let M=5 for l=5 to 2^n !128個まで print #2: " " !改行 let big_value=s(l-M) !順番に最大値を与える !print big_value, for i=l-M to l if i<l and s(i)<s(i+1) then LET big_value=s(i+1) !最大値をソート end if next i !print big_value for k=l-M to l print #2: s(k)/big_value; !最大値で割ってファイルに書 き込む next k next l どこが間違っているのかわかりません。よろしくお願いします。 |
├6こずつに分けてとなっていますが,このプロ... 白石 和夫 2006/03/24 17:34:59 ツリーへ
Re: 配列のデータをソートして割る |
返事を書く |
白石 和夫 2006/03/24 17:34:59 | |
6こずつに分けてとなっていますが,このプログラムは, 最初は,S(0),s(1),..,s(5)をbig_valueで割ったものが出力されますが, 次は, S(1),s(2),..,s(6)をbig_valueで割ったものを その次は S(2),s(3),..,s(7)をbig_valueで割ったものを となるのではないでしょうか。 |
│└そうですね。実はそのように出てほしいです... ウダー 2006/03/24 18:28:10 ツリーへ
Re: 6こずつに分けてとなっていますが,このプロ... |
返事を書く |
ウダー 2006/03/24 18:28:10 | |
そうですね。実はそのように出てほしいです。つまり 最初は S(0),s(1),..,s(5)をbig_valueで割ったもの 次 S(1),s(2),..,s(6)をbig_valueで割ったもの 次 S(2),s(3),..,s(7)をbig_valueで割ったもの しかし問題はその6のグループで最大値1までの値が出る予定ですが1より大きい値もでてしまいます。big_valueの求め方間違っていますか。 |
│ └最大値の検索範囲が1つ余分です。 白石 和夫 2006/03/24 20:14:28 ツリーへ
Re: そうですね。実はそのように出てほしいです... |
返事を書く |
白石 和夫 2006/03/24 20:14:28 | |
最大値の検索範囲が1つ余分です。 let big_value=s(l-M) !順番に最大値を与える !print big_value, for i=l-M to l if i<l and s(i)<s(i+1) then LET big_value=s(i+1) !最大値をソート end if next i だと,l-Mからl+1番までのなかの最大値をbig_valueとしていることになります。 たとえば,l=5のときは,s(0)からs(6)のなかの最大値です。 |
│ └ifi<lands(i)<s(i+1)thenここでi<... ウダー 2006/03/24 20:53:05 ツリーへ
Re: 最大値の検索範囲が1つ余分です。 |
返事を書く |
ウダー 2006/03/24 20:53:05 | |
if i<l and s(i)<s(i+1) thenここで i<l ととっているからその問題を解決できないでしょうか。(i=l とき動かない) if i<l and big_value<s(i+1) then ととればちゃんとした数字が出ました。しかしまだ自身がないです。一応ありがとうございます。 |
│ └それでよさそうな気がします。 白石 和夫 2006/03/25 07:27:15 ツリーへ
Re: ifi<lands(i)<s(i+1)thenここでi<... |
返事を書く |
白石 和夫 2006/03/25 07:27:15 | |
それでよさそうな気がします。 |
└もし,最初はs(0),s(1),...,s(5)のグループ... 白石 和夫 2006/03/24 17:44:06 ツリーへ
Re: 配列のデータをソートして割る |
返事を書く |
白石 和夫 2006/03/24 17:44:06 | |
もし,最初はs(0),s(1),...,s(5)のグループで, 次が,s(6),...,s(11)のグループで というのであれば, for l=5 to 2^n のところは, for l=5 to 2^n step 6 のようにしなければなりません。 ただし,128は6の倍数ではないので,最後だけ別の処理が必要になると思います。 |