64bit の素数判定は7回の操作で完了する

Legalscape のしろくまです。 今日は確率的素数判定法について話したいと思います。 フェルマーの小定理 が素数のとき と互いに素な について が成り立ちます 確率的素数判定法: フェルマーテスト フェルマーの小定理の対偶を取ると、次のようなことが言えま…

1 + 1 = 2 をプログラミングで理解する

Legalscape のしろくまです。 自然数の集合論的定義(フォン・ノイマンの構成)は空集合の公理と無限の公理を利用して 以下のようになります。 0 = ∅ 1 = {0} = {∅} 2 = {0, 1} = {∅, {∅}} 3 = {0, 1, 2} = {∅, {∅}, {∅, {∅}}} ・・・ また加算は S(n) = n ∪…

TypeScript は Structural Type System ではない場合がある

Legalscape のしろくまです。 TypeScript の Type System では Nominal な比較が用いられることがあります。 例 class Product { private name: string; } class User { private name: string; } let p = new Product(); let u = new User(); // Type 'User'…