[ruby-list:50949] Fwd: Re: 整数同士の乗数を求めるとComplexになるのはなぜでしょうか
From:
Masao Seki <ma-seki@...3.so-net.ne.jp>
Date:
2022-05-21 13:15:04 UTC
List:
ruby-list #50949
下田さん、 取敢えず、一段落したようで良かったです。 でも、一言老婆心ながら申し添えると、数論の初心者が計算実験するツール としてrubyを使うのは、私はあまりお奨めしません。 rubyは、間違いなく、様々な用途で威力を発揮する素晴らしい言語ですが、 動的に型が変化する、私のようなfortran/C++/Javaで育った人間には、 少し柔軟過ぎるのではとさえ、思える言語です。(最後にrubyのツールを 作ったのが、10年位まえのruby-2.2での事なので、今のrubyには当たらない 可能性、大です。) 数論の計算実験をするには、多倍長演算が必須になりますが、多倍長演算の 基本を理解した上で、明示的に多倍長演算をサポートしてくれるライブラリ (言語)を活用される事をお奨めします。 本題から外れますが、mailing-list(ML)への返信は、個人宛てではなく、 ML宛てでお願いします。(大抵のmailing toolでは、返信時、差出人宛か、 ML宛か選択できると思います。)私のみに返信して頂いても、MLを受信して いる他の方には、状況の推移が伝わりませんので、尻切れトンボ状態になっ てしまいます。個人的な内容を含んでいて、MLに出したくない場合は、その 旨明記した上で、個人宛てに返信下さるのは、構いません。 今回は、そのようなケースでないと判断しましたので、全文引用の上、MLに 返信します。 -------- Forwarded Message -------- Subject: Re: [ruby-list:50948] Re: 整数同士の乗数を求めるとComplexになる のはなぜでしょうか Date: Sat, 21 May 2022 21:01:22 +0900 From: Jun'ya Shimoda <junshimo2@gmail.com> To: Masao Seki <ma-seki@gb3.so-net.ne.jp> Seki様 すみません、ありがとうございます。 そもそも素数に興味があって調べてたんですけど 2の次の素数乗+1 辺りでおかしなことになるということが 大体分かったんでヨシとします。 Rubyの言語の問題じゃなくて 数学的な話だったんですよ。 私の数学の愛読書によると 素数を求める公式もまだ出来てなくて 私の予想では2の次の素数乗+1 つまり2**2+1 == 5 の計算をしたところで 何らかの不具合が発生してるらしいと思ってます。 整数同士の累乗の計算なのに Complexに変換されるのも 多分5の累乗か何かの理由なんじゃないかと思います。 Rubyの実用上はほとんど問題ないのですが Rubyのnextでも落ちることがあるのですが 多分そんなような理由なんだと思います。 ruby-langに投稿できるほど分かってないので 自粛します。 まつもとさんのQuoraで 「暇ならCommonLispやれ」って言ってたんで それも興味あるんですよね。 細かい式を忘れたんですが Rubyの計算結果と Lispの計算結果が違うところがあって Facebookの数学の先生やってる人に 聞いたりしてました。 多分Rubyの計算結果の方が正しいんだと思いますよ。 雑談になっちゃてすみません。 ありがとうございました。 On 2022/05/21 20:35, Masao Seki wrote: > もしかして、322828857/40353607が整数と思い込んでいて、 > 解決に近付けないでいたりしていませんか? > > 322828857/40353607 = 8.00000002478… > 322828857: 3^2 13 229 12049 > 40353607: 7^9