Pebble Coding

ソフトウェアエンジニアによるIT技術、数学の備忘録

2019-08-01から1ヶ月間の記事一覧

j不変量

体K上の楕円曲線 体Kの標数は2,3以外とする。 j不変量を と定義する。 この時、の変換によってjの値は同じになる。 なので不変量という名前がついている。 を格子とする。 ペー関数を と定義する。 が成り立つ。 である。 と定義すると、A, Bはの関数となる…

位数nの2つの巡回群の直積の群は位数nの部分群をn+1個持つ

位数nの2つの巡回群の直積の群は位数nの部分群をn+1個持つ。 これ正しいのか一見分かりませんが、低次を計算してみると確かに正しいことが分かります。 部分群をで表します。 また巡回群なのでnは素数です。 n=2の場合。 確かに成り立っています。 n=3の場…

dual isogeny

楕円曲線のlattice(格子)を考える。 lattice上では無限遠点z=0である。格子上の点は全て無限遠点である。 C/L=Eは無限個の点を持つが、そのうち3倍点を考える。 3倍点とは点zを3つ加算したものが0になる点つまり、z+z+z=3z=0となる点のことである。 この点…

ガロア群

体Lの自己同型のうち同型群 を考える。 体Lを体Fの有限次拡大とする。 体Fの全ての要素を変更しない拡大体LからLへの自己同型群の全てを要素とし、 演算をこの群の合成としてガロア群 Gal(L/F)と定義する。 は自己同型群 命題1. Gal(L/F)は合成に関して群を…

群、環、体、正規拡大、分離拡大

群の定義 集合Gから任意の要素a, bを取り出してそれに対してGの要素cを割り当てる操作(写像ともいう)を c = f(a, b) と表す。 A) 結合律、B) 単位元 C) 逆元 が成り立つとき、これを群と呼ぶ。 A) 結合律 a, b, cを集合から取り出したとき、 f(a, f(b, c)) =…

拡張ユークリッドの互除法

pythonの再帰で実装したもの import sys def egcd(a, b): """return (g, x, y) such that a*x + b*y = g = gcd(a, b)""" if a == 0: return (b, 0, 1) else: g, x, y = egcd(b % a, a) return (g, y - (b // a) * x, x) rustではタプルが使えるので、同じア…

オイラーの五角数定理(Euler's Pentagonal Number Theory)とj関数の係数の計算

オイラーの五角数定理というのがあるようです。 j関数の計算に使われるようです。 証明はこちら。 https://faculty.math.illinois.edu/~reznick/2690367.pdf j関数の係数は以下のように計算できます。 ここでは低次の係数のみを求めてみます。 と置いてを求…

rust トレイトとジェネリクスと所有権

rustのトレイトは、Javaのインターフェースやswiftのプロトコルに相当します。 ジェネリクスは多くの言語にあるので、馴染みがあるでしょう。 rustのジェネリクスやはその他の言語のジェネリクスに絶対にない特徴を持ちます。 swiftのジェネリクスは、複数の…

楕円曲線の有理点の数の求め方 schoof アルゴリズムその5

schoofアルゴリズムをpythonで実装したらめちゃくちゃ遅かったのですが、楕円曲線の有理点の数の求め方 schoof アルゴリズムその4 - Pebble Codingrustで実装したところ、 a = -1 mod 3 a = -2 mod 5 の計算が、Debugビルドで90秒、Releaseビルドで7秒で計…

rust + vim でビルドエラーを修正する

rust-lang/rust.vim をBundleでインストールする。これだけでした。 Bundle 'rust-lang/rust.vim' srcフォルダの下のソースファイルのうちのどれかをvimで開く。 :make buildを実行する。 :copenでエラーリストを表示する。参考: https://shinglyu.com/web/2…