[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

In This Thread

Prev Next