流れる空の中で数学を。

とある数学好きの「手作りすうがく」と「気ままな雑記」。

【高速化希望】1~6枚の擬ポリオミノの探索【Python】

ポリオミノ

1~6枚の正方形からなる擬ポリオミノの種類数を計算しました。

1枚⇒1種類

2枚⇒2種類

3枚⇒6種類

4枚⇒34種類

5枚⇒166種類

6枚⇒991種類

1枚増えるごとに、およそ5倍から6倍増えていることが分かる。

プログラム

gist60f2d692cf798e0828e5085fa4a06678

 

参考予定文献

 

 

【完成!】擬ポリオミノ探索プログラム【やったぜ!】

追記:2021/08/15/20:36完成しました!

ポリオミノ探索プログラムを作成しました

4つの正方形の場合までしか、計算してませんが、実装してある関数を使えばより多くの場合もそのまま計算できます。一応、グラフで図示してます。 

プログラム

追記:反転したものを同一視する場合にも対応しました。(2021/08/15/18:58)

追記:軽微なバグを修正しました。(2021/08/15/19:44)

github.com

 

gist74c261334120e20a9d911e41e7381acb

 

 

参考予定文献

 

 

【協力求む】擬テトリミノの探索プログラム【未完成】

擬テトリミノ

四つの平行移動で移りあう正方形を考える。この4つの正方形の内どの1つをとってきても、必ずほかの正方形と頂点または辺で接している。このような図形を擬テトリミノというらしい。特に、平行移動と回転で移りあう図形は同一視するものとする。これは噂によると34種類あるらしい。

 この擬テトリミノを全て探索するプログラムを作成しようとした。

ところが回転のプログラムがうまくかけていないのがおそらく原因で、177通りまでしか絞り込めなかった。

このプログラム完成させてくれる親切な人が現れないかと期待して、公開リポジトリに置いておきます。

 

未完成のプログラムその1

github.com

gistf1213cd2ad614103ed3ce24415978d3b

 

未完成のプログラムその2

 

github.com

 手動で解を列挙したtwitterの人

貝殻を食べるさんが列挙してくれたので、載せさせていただきます。

mobile.twitter.com

おそらく解が載ってあるだろう本

twitterでこの擬テトリミノに詳しい本があると聞いたので、リンクを貼っておく。

 

 

【ファルティングスの定理】なぜ楕円曲線は3次なのか?【フェルマーの最終定理】

楕円曲線

BSD予想で、問題になっているのは、2変数有理数係数方程式

y^2=x^3+ax+b

が「どれだけたくさんの有理数解を持つか?」ということである。

さて、ここで自然に生じる疑問がなぜ、yについて2次でxについて3次の方程式だけにそんなに注目しているかということだ。

この疑問に答えてくれるにはまず、代数曲線の種数という概念を抑える必要がある。なお、今回は話の流れだけを抑えることにしょう。

 

種数

簡単のため考えている代数曲線が「特異性」を持たないと仮定する。

このとき、代数曲線の種数gは代数曲線を表す多項式の最高次数の項の次数をdとするとき、

g=\frac{1}{2}(d-1)(d-2)

と表せる(代数曲線 - Wikipedia)。

 

楕円曲線の場合、d=3なので、「特異性」を持たない楕円曲線の種数gは、

g=\frac{1}{2}(3-1)(2-1)=1

となる。

フェルマーの最終定理の場合は、特にd\ge 4の場合、

x^d+y^d=1

有理数解と問題を置き換えられるので、種数は、

g=\frac{1}{2}(d-1)(d-2)\ge 2

となる。

 

ファルティングスの定理

1922年、Mordellは代数曲線の種数がその有理数解の個数に関連しているという予想した。この予想は1983年Gerd Faltingsにより、証明されたので、現在ファルティングスの定理と呼ばれている。

ja.wikipedia.org

まず、種数gが0の場合、(特異性を持たない)代数曲線の有理数解は全く存在しないか無限個である。

次に、種数gが1より大きい場合、(特異性を持たない)代数曲線の有理数解は有限個である。

このことの応用として、フェルマーの最終定理d\ge 4のとき、たかだか有限個の解しか持たないことがすぐに従う。d=3の場合は種数1になるので、このようなことはすぐには言えない。

 

最後に、種数gが1の場合は、楕円曲線に相当し、この場合どれだけ多くの有理数解を持つかは明らかではない。

 

このような種数が1であるという理由から、楕円曲線だけが特別に重要な対象として研究されている。そして、有理数解の個数について、解析学代数学2つの世界からの見方ができるという予想がミレニアム問題の1つであるBSD予想なのだが、話し出すと長くなるので(今は勉強不足なので)、この記事は一旦ここでお開きにします。

 

 

1変数有理数係数k次方程式の有理数解の絞り込み方

1変数有理数係数k次方程式

有理数係数のk次方程式を考える。

a_k x^k+\cdots+a_0=0

a_k,\cdots,a_0の分母の自然数の最小公倍数を両辺にかけると、係数を整数に変換できるので、以降は、整数係数のk次方程式を考えることにする。

有理数解を互いに素な自然数m\ge 1,nを用いて、x=n/mと表し、これを方程式に代入して、m^kをかけると、

a_k n^k+a_{k-1}n^{k-1}m+\cdots+a_1n m^{k-1}+a_0m^k=0

ここで、

n(a_k n^{k-1}+a_{k-1}n^{k-2}m+\cdots+a_1 m^{k-1})=-a_0m^k

より、mnが互いに素なことに注意すると、na_0を割り切る。つまり、na_0の約数である。

同様にして、

m(a_{k-1}n^{k-1}+\cdots+a_1 nm^{k-2}+a_0 m^{k-1})=-a_kn^k

より、mnが互いに素なことに注意すると、ma_kの約数である。

 

x^5-\frac{3}{2}x^4+3n^3-\frac{11}{2}x^2+\frac{1}{2}x+\frac{3}{2}=0

 両辺に2をかけて、

2x^5-3x^4+6x^3-11x^2+x+3=0

x=n/mとおくと、nは3の約数、mは2の正の約数となる。

よって、有理数解の候補は、\{\pm 1,\pm 3, \pm 1/2 , \pm 3/2  \}、これを代入すると、求める有理数解は、x=3/2

 

プログラム

整数係数に変換してからご利用ください。

giste5c5950f663870771ba0cc3393eda1f0

 

 

1変数k次方程式の整数解の絞り込み方

k次方程式

今日は、次の方程式の整数解を調べます。

a_k n^k + \cdots +a_0=0

ここで、上式は次数kの整数係数方程式とします。これの自然数解を探すことを考えてみましょう。

一般性を失わずに、全ての係数の最大公約数は1とできます。

定数項

a_1,\cdots,a_kの最大公約数をgとすると、

gn(\frac{a_k}{g} n^{k-1}+\cdots+\frac{a_1}{g})=-a_0

となるので、ga_0を割り切らなければ、整数解は存在しません。ga_0を割り切るならば、整数hを用いて、a_0=ghとかけますが、全ての係数の最大公約数は1なので、g=1となります。

結局、

n(a_k n^{k-1}+\cdots+a_1)=-a_0

より、nは定数項a_0の正負を含めた約数のいずれかになります。

これで、だいぶ解の候補が絞り込めました。

 

m=n\pm 1と変数変換してみる

m=n\pm 1とおくと、新しい係数b_0,\cdots,b_kを用いて、

b_k m^k+\cdots +b_0=0

と書き直せます。ここで、

b_0=a_0\pm a_1 + a_2 \pm \cdots (-1)^k a_k

となりますが、mは定数項b_0の約数となります。

これで、さらに元の方程式の解の候補を絞り込めます。

m=n\pm lと変数変換してみる

同様にして、m=n\pm lとおくと、新しい係数b_0,\cdots,b_kを用いて、

b_k m^k+\cdots +b_0=0

と書き直せます。ここで、

b_0=a_0\pm a_1 l + a_2 l^2 \pm \cdots (-l)^k a_k

となりますが、mは定数項b_0の約数となります。

適当なlを選ぶことで、解の候補を絞り込める可能性があります。

 

不等式

a_k n^k + \cdots +a_0=0を係数が全て正になるように移項して、

b_l n^l+\cdots=c_m n^m+\cdots

特に、最も大きな係数や次数を持つ項をd_j n^jとすると、

b_l n^l+\cdots \gt d_jn^j

または、

c_m n^m+\cdots \gt d_jn^j

 等が成り立つので、これからnの範囲を絞り込めます。

n^2-3n+2=0

整数解の候補は定数項の約数なので、\pm1,\pm2となり、これを代入して、n=-1,-2が解であることがわかります。

 ②n^2-3n+5=0

整数解の候補は定数項の約数なので、\pm1,\pm2となり、また、m=n+1の変換を使うと、1-3+5=3より、可能な候補は35の公約数となりますが、これはn=\pm1のみです。これを代入すると、いずれも成り立たないので、整数解はなしです。

 ③2n^5+2n^4-9n^3+4n^2-17n-6=0

6の約数を代入することで、n=-3,2が解だとわかります。

n^5+8n^4+n^3-56n^2+58n-60=0

の定数項は、60=2^2\times3\times5で約数は12個。

A \equiv \{\pm1 ,\pm2,\pm3,\pm4,\pm5,\pm6,\pm10,\pm12,\pm15,\pm20,\pm30,\pm60\}

 となる。

移行して、n^5+8n^4+n^3+58n=56n^2+60

 となるが、n\gt 3と仮定すると、

n^5\lt 56n^2+60\lt 56n^2+63\lt 56n^2+7\times3^2\lt 64n^2

n^3\lt 64 \Rightarrow n\lt 4

よりこれを満たす自然数は存在しないので、矛盾。

従って、正の整数解の候補は\{1,2\}。実際に代入して、n=2とわかる。

 

 これより、与式はn-2で割り切れるので、割ると、

n^4+10n^3+21n^2-14n+30=0

を得る。n=-mとおいて、負の整数解を探す。式変形して、

10m^3=m^4+21m^2+14m+30 \gt m^4

10 \gt m \Rightarrow m\le 6 

また、

10m^3 \gt 21m^2\Rightarrow m\gt 2

m \ge 3

よって、負の整数解の候補は、\{-3,-4,-5,-6\}である。このとき、lを整数として、m=2lとおくと、

m^4-10m^3+21m^2+14m+30\equiv 30 \not\equiv 0 (\mod 4)

となり、矛盾。よって、 負の整数解の候補は、\{-3,-5\}である。後は、代入して確かめると、n=-5のみが負の整数解であることがわかる。

 

 

以上をまとめて、求める整数解は、n=-5,2 

 

Pythonのプログラム

gist5635a15b8de6db597b8ae45e72da2cac

 

 

Kindle本の出版方法

Kindle本を日英含めて14冊出版した感想

論文の出版に比べると、とっても簡単でMicrosoftのWordが使えれば、だれでも出版できる。出版の審査の敷居も低く、18禁と内容や表紙が著作権に触れてさえいなければ、基本的にどんな本でも審査に通ると思われる。

 

原稿の用意

とりあえず書く内容が決まったら、このサイトを見て用意すればいいと思います。

kdp-koryaku.net

 

表紙

自分でクリスタなどのソフトを使って描くこともできるが、こだわらなければ、以下のサイトを利用させてもらうのが手っ取り早い。

epub.works

いざ出版

まずは、以下のサイトにログインする。

kdp.amazon.co.jp

壱:Kindle本の詳細

電子書籍または有料マンガのボタンがあるので、そこの+をクリックする。

②使用言語、タイトル、著者、内容紹介を書き、「私は著作権者であり、出版に関して必要な権利を保有しています。」にチェックを入れる。

③検索用キーワードを適切に指定する。

④カテゴリーを2つまで選ぶ。

⑤18禁かどうかチェックを入れる。

⑥「本の発売準備ができました」にチェックを入れたら、保存して続行を押す。

弐:Kindle本のコンテンツ

DRMを有効にするにチェックする。

②横書き、縦書きかをクリックして選ぶ。

電子書籍の原稿をアップロードをクリックして、Wordのファイル(.docx)をアップロードする。

Kindle本の表紙の「参照」ボタンを押して、表紙をアップロードする。

⑤処理が終わるまでしばらく待つ。

⑥アップロードに成功しましたとでたら、プレビューアーを起動を押して、ちゃんと原稿がアップロードされているかチェックする。

⑦確認したら、保存して続行を押す。

参:Kindle本の価格設定

①KDPセレクトに登録するを選ぶといい。

②出版地域は、とりあえずすべての地域を選んでおく。

③主なマーケットプレイスの項目は、日本語の本なら「Amazon.co.jp」を、英語の本なら「Amazon.com」を選ぶとよし。

④価格設定、ロイヤリティで、売り上げの何パーセントの収益が欲しいか選ぶ。70%を選択した場合、250円以下にはできない(すると、35%まで収益が下がる)ので注意。

⑤最後にKindle本を出版を押せば、レビューが始まり、レビューが終わると出版準備中になり、少し待つとだいたい1日以内にはKindleに本が並ぶことになる。

 

出版後

著者セントラルを利用すると、同じ著者の他の本を見つけてもらいやすくなるので、おすすめ。ここで、著者のプロフィールとか出版した本を登録していく。

author.amazon.co.jp

 

以上、こんな感じで、比較的簡単に電子書籍の出版ができるのがKindleの特徴だ。