問題タブ [pari-gp]
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.
pari-gp - PARI/GP の matsolve メソッドの潜在的なバグ
メソッドに不十分なサイズの行列を指定matsolve(M, B)
すると、警告の代わりにセグメンテーション違反が発生しました。
行列のサイズが正しいと、間違った結果が得られました。ここに私のテストコードがあります:
出力は次のとおりです。
結果の最初の 2 行のみが同じで、残りは異なります。特定の info(nxk) および result(kx 1) 行列について、GP は info 行列の最後の (n - k) 行を無視すると思います。
c - インデックスのベクトルに対するループを識別します。メークリスト、マイナスローテーション
長さNの自然数ベクトル と エントリの合計Sを扱います。ベクトル内で> 0と見なされます。
同じ構成(N,S)=(4,7)のすべてのベクトルをリストしたいのですが、回転は除外する必要があります。
質問:最適なアルゴリズムは何ですか?
(私の実際の実装は、下限と上限のインデックス値の境界のベクトルを使用してネストされた for ループを提供する Pari/GP にあります)
ネストされたforループを使用してリストを生成するという点で、最初に「ブルートフォース」ソリューションを試しましたが、連結された2重のconcat(E,E)をリストEE[]に保存し、次に、それぞれに対して新しいベクトルE=[e_1,e_2,e_3,e_4]このベクトルが既にチェックされたリストEE[]の連結されたベクトルにあるかどうかをチェックし、そうでない場合は新しい有効なエントリ
EE[k]=E||Eとして追加します= [e_1,e_2,e_3,e_4,e_1,e_2,e_3,e_4] . ここでの比較は、文字列の比較に似ています。一致は、位置1または最大Nから始まる場合に常に見つかります。
この方法は機能しますが、私にはブルートフォースのように見え、その組み合わせ構造により、NとSが増加すると爆発します。
より良い方法はありますか?
注: ターゲット言語はPari/GP
注: 疑似アルゴリズムで十分ですが、おそらく Pari/GP のツールを使用すると、よりコンパクトなソリューション/表記が可能になります。
例、(N,S)=(4,7)
以下は非常に単純な例です。
ネストされたループによって、次の方法でベクトルEを取得すると仮定します。
これにより、ベクトルEEのリストが連続して作成されます。
このリストは最初のN列のみで、後で使用するベクトルのリストです。
追加の健全性チェック: for (N,S)=(4,16) フィルター処理されていないリストlength_unfiltered = 455と、回転が削除された後のlength_filtered=116を取得します。
pari-gp - Pari/GP で反復関数を作成する方法
私はpari / gpにまったく慣れていません。YouTube でいくつかのビデオを見て、いくつかのオンライン pdf チュートリアル ファイルを調べた後、5 時間経っても、以下の反復関数を記述する方法にまだ途方に暮れています。私は Excel を使用していましたが、非常に大きな数を処理できるものが必要で、pari を紹介されました。Excel の数式は非常に単純で、b = 7 および c = 9/7 の場合は次のようになり
ます。
(2) 式 =IF(MOD(A1,7)=0,A1/7,CEILING(A1*9/7,1)) を B1 に入力します。(3) B1を
A100000 までドラッグし、列全体を必要なだけ水平にドラッグします。
反復関数
どんな助けでも大歓迎です。
pari - Pari GP における積分基底 nf.zk と nfbasis
私はlmfdb.orgのデータベースを使用して、数体の積分基底を知っています。ここで、代数整数の乗算に Pari GP を利用したいと考えています。しかし、問題が発生しました。Pari GP はその計算で積分基底 "nf.zk" を使用しますが、これは明らかに lmfdb.org が提供する積分基底である "nfbasis(f)" と必ずしも同じではありません。
たとえば、パリ GP の次のコードがあります。
さて、私の質問は次のとおりです。
- nf.zk と nfbasis(f) が異なるのはなぜですか?
- Pari GP が nfbasis(f) の代わりに nf.zk を使用するのはなぜですか?
- 最後に、nf.zk の代わりに nfbasis(f) を使用するよう Pari GP に指示できますか?