問題タブ [finite-field]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
5057 参照

python - Python --- GF(2) フィールドでの乗算

この関数は、リスト g に異常な値を返しています。32774、65548、1048768 を返す必要がありますが、実際にシフトするのではなく、バイナリ全体を大きなスリンキーのように扱い、LSB を MSB に向かって移動するような値になっています。

関数は次のとおりです。

これは私がテストしているものです:

現在 x1,y1 のみが機能し、他の機能は機能しません。これは、最後の入力の式全体です。

ご覧のとおり、製品を取得するには、両方のバイナリのインデックスで 1 をチェックし、それに基づいて追加する必要があります。その部分をどのように収めるか、正しい値を返すようにする方法がわかりません。x1,y1 が機能し、他の機能が機能しない理由を理解しようとしています。

編集:

J0HN の回答が完全に正確であるように見え、さらに、参照されたオンライン ツールでエラーを見つけたことを明確にしておきたいと思います。現在表示されているように、この方法で有限体演算を行う場合、ビルトインが優先されます。これに遭遇した人は誰でも、請求書を支払うための鋭い観察スキルに投票することを彼に示すことを間違いなく検討する必要があります.

0 投票する
1 に答える
5011 参照

python - GF(2) 有限体の Python 乗法逆数

これらの 2 つの関数は、拡張ユークリッド アルゴリズムを実行してから、乗法逆数を見つけます。順序は正しいように見えますが、シドニー大学http://magma.maths.usyd.edu.au/calc/からのこのツールによると、これは GF(2 ) 有限体、基数 10 からこの体に変換するいくつかの重要なステップが欠落していると思います。

これは基数 10 でテストされ、動作しましたが、ここではバイナリ係数を持つ多項式を取り込むことができない場合があります。したがって、私の質問は、Python のどの部分がこのアルゴリズムに誤って適用されているのかということです。たとえば、// floor など、GF(2) でこれを行うために、関数が基数 10 で実行できたものから実行できない可能性があります。

上記のツールは、次のようにテストできます。

機能:

私はこのような多項式でテストしてきましたが、もちろんバイナリ形式です:

0 投票する
1 に答える
652 参照

python - Python -- 多項式クラスの継承メソッドで __init__ を使用する

これは、入力として受け取り、多項式を文字列形式で出力するクラスです (どちらも同じ形式)。いくつかの演算は、さまざまな方法で実行されます。このクラスを別のクラスに継承して、最初のクラスの __mod__() 特殊メソッドを使用しようとしました (または、必要に応じて独自の特殊メソッドを作成しますが、元のクラスを使用できない方法がわかりません)メソッド) インテークで mod を実行します。これは __init__() に入るようですが、親クラスを変更するまで、これの5つの異なるバージョンを試しましたが、どこにも行きません。私は独学で Python を学んでいるので、経験の浅い Python 開発者でも、どこが間違っているのかわかるはずです。

望ましい結果は、親の型を持つ新しい (子の) クラスで、親のクラスをできるだけ変更せずに (たとえあったとしても) 呼び出すことができるようにすることです。クラス "BinaryField" が対象の子クラスであることに注意してください。

取り込み時に、与えられた多項式はモジュラスを 2 番目の要素 (ここでは「p」) で除算したものでなければなりません。これは、有限体演算に必要です。

編集:-で実行する場合

これらのスタイルは両方とも、コーディング方法によって可能ですが、どちらも同じ答えを返すはずです。ただし、そのコードの結果は次のとおりです。

また、GF2Polynomial() の初期化と同じ文字列である BinaryField(poly4,d) を使用すると、次のようなエラーが発生します。 AttributeError: 'int' object has no attribute 'string'

0 投票する
1 に答える
4635 参照

python - Python -- matplotlib 楕円曲線

私は matplotlib と Python について独学していますが、楕円曲線の方程式をプロットするのに苦労しています。私は方程式を下に持っていますが、私はやっていませんy^2

これは、私がこれまでに自分自身を得ることができたのと同じくらい多くの問題です:

これaxis()は、グリッド線を使用してより見やすいグラフを取得しようとしていたため、それも処理できると思ってgrid()いましたが、明らかにそうではありませんでした. また、必要なポイントをクリックして計算するインタラクティブにしようとしましたが、ドキュメントを見ると、多くの相互作用マウスオプションのように見えますが、クリックすることでイベントを作成するマウス相互作用は見られませんチャート上のポイントで(3回目に読んだ後でも、まだ見逃しています)。

matplotlib の pyplot の概要から進んでいますが、ここで何が間違っているのかわかりません。楕円曲線のプロットはかなり外れており、近くさえありません。

これはおそらく初心者の間違いなので、これを読むのに少し時間がかかるジュニアプログラマーは、なぜ私が望む曲線を得られないのかをすぐに理解するでしょう.

0 投票する
1 に答える
1728 参照

python-2.7 - Python -- sympy solve() を使用した楕円曲線の Matplotlib

楕円曲線をプロットしています。a に沿って線を引きたいと思いますP,Q,R(どこでPQは、この質問とは関係なく決定されます)。の主な問題Pは、sympysolve()が別の方程式を返し、代わりに値を返す必要があるため、 の x 値をプロットするために使用できることですP。私が理解しているsolve()ように、値を返す必要があるため、ここで何か間違ったことをしていることは明らかです。参考までに、次のようにP+Q=Rなります。

ここに画像の説明を入力

私はドキュメントやその他の資料を調べてきましたが、これは私がトラブルに巻き込まれることができた限りです:

最終的には、 を表示する線を引きたいP+Q=Rので、 を取得するためのコーディング方法に追加するものがある場合は、Qそれを非常に高く評価します。私は Python と楕円曲線について独学しているので、初心者レベルのプログラマーなら誰でも 2 分で、私が以前から取り組んできたことを理解できると確信しています。

0 投票する
1 に答える
1588 参照

encryption - 体 F2 上の 2 つの多項式の GCD を求める (2 を法とする整数剰余の体)

フィールド モジュロ 2 とフィールド モジュロ 3 で、次の多項式 (2 つの個別の質問) の GCD を見つけようとしています。

最初のものについては、多項式を 1 と 0 のビット (例: 101101 と 1010) として表現しようとし、ユークリッドのアルゴリズムを使用して GCD を見つけようとしましたが、ある時点でゼロにつながります。計算を正しく。

多項式の 2 番目のセットは、係数が 1 より大きいため、まったくわかりません。

どんな助けでも大歓迎です。