計算の高速化 投稿者:turbo  投稿日:12月21日(日)14時15分39秒

> 計算の機構でのA×3を、A=A<<1+Aとする事で乗算を高速化
> ×3+1と×(1/2)をセットにしているんです。

まとめて×(3/2)+(1/2) として、A=A>>1+A+1
としたほうが計算が1つ少なくて済むと思います。シフト演算による桁落ちを前途とした強引な方法ですけど。

ところで、グラフ描画モードにしてもグラフが横一線でしか表示されません。
UpDownData に書き込みがされないままのようです。


あ、違うんです。 投稿者:Kanbayashi  投稿日:12月20日(土)07時24分53秒

奇数の場合、
奇数を三倍して1を足すという事は、必ず偶数になります。
そこで、奇数の場合は
×3+1と×(1/2)をセットにしているんです。
なので、奇数の場合は2回計算という事になるんですね。


確認させて下さい 投稿者:moemoe  投稿日:12月19日(金)22時32分50秒

いまいちピンとこないのですが
奇数のときの「3*n+1」の操作を
以前のバージョンで1回
現在のバージョンで2回
とカウントしているということなのでしょうか?


すいません、忘れていました。 投稿者:Kanbayashi  投稿日:12月19日(金)20時24分11秒

Ver8への変更ポイントとして、計算回数のカウントの仕方を修正しました。
以前のバージョンでは、奇数の時に2回計算をしているのに、計算回数を1回した増やしていな
かったんです。
大変申し訳ありませんでした。報告が遅れた事も合わせ謝罪させていただきます。


やーっと完成しました。ver8 投稿者:Kanbayashi  投稿日:12月17日(水)21時27分32秒

連日の作業の結果、やっと完成しました。
ver7.5ではなく、ver8という事で、私の思いつく限りの改良は行ったつもりです。
では、改良点を紹介させていただきます。
 1:今回からregistryファイルをもう一つ用意するようにしたので、今までのデータがリセッ    トされずにVerUPを可能に!!(ヤッター!)
 2:計算の機構でのA×3を、A=A<<1+Aとする事で乗算を高速化
 3:グラフの描画をしない時はcollatz.exeもUpDown.txtに書き込みをおこなわないように
 4:今まで正常終了しなかった時に計算回数が異様な数に増えたりする状況が確認されていた
   ために、正常終了しなかった場合の計算データを捨てるように。
 5:頻繁に書き込みを行うculculatedataなどのファイルを指定の場所に保存できるように
  (RAMディスクを指定すれば、静か&高速。一分間おきに本体のあるパスにバックアップ
   するので、WINDOWSを終了させたり、急に落ちても安心。)
 6:ログに正確な計算回数と総起動時間も記録するように(これは苦労しました)
 7:二重起動を不可能に
 8:その他もろもろ

        とこんな所です。
これでひとまず完成系です。ですが、まだまだ必要な機能があればVerUPするので、どんどん
ご要望を。では、検討を祈ります。

※このVerは以前のVerと置き換えるだけですぐに使えます。
           


BACK TOP