
フェルマーの小定理
こんにちは。今回はフェルマーの小定理を取り上げます。本当は暗号について書きたいのですが、数学的な背景が必要になるため整理しておく必要があるためです。と書きながらも、どのように積み上 ...

中国剰余定理
こんにちは。本当はもう少し暗号を続けたいのですが、比較的新しい暗号は数学による処理が用いられています。そのため、暗号の話と混ぜてしまうとアルゴリズムが見えにくくなるので、別扱いにし ...

不定方程式と拡張ユークリッドの互除法
こんにちは。前回のRSA暗号で\(ed \equiv 1 \bmod \varphi(N)\)を満たす\(d\)を求めることにより、秘密鍵を作る手順になっているところがありました。 ...

RSA暗号を実装してみる
こんにちは。今回も暗号について取り上げます。今回はRSA暗号です。 RSA暗号とは 1977年にリベスト(Rivest)・シャミア(Shamir)・エーデルマン(Adleman)に ...

バーナム暗号を実装してみる
こんにちは。今回も暗号について取り上げます。今回はバーナム暗号です。 バーナム暗号とは AT&Tに所属したバーナムによって考案された暗号です。 バーナム暗号では、平文と同じ長さの鍵 ...

ヴィジュネル暗号を実装してみる
こんにちは。引き続き今回も暗号についての内容です。今回はヴィジュネル暗号について取り上げます。 ヴィジュネル暗号とは ヴィジュネル暗号は15~16世紀に考えられた換字式の暗号です。 ...

スキュタレー暗号を実装してみる
こんにちは。引き続き暗号を実装してみるシリーズを続けていきます。今回はスキュタレー暗号を取り上げます。なお、前回のシーザー暗号の最後に書いた暗号を復号したものは"iwillalwa ...

シーザー暗号を実装してみる
こんにちは。前回に続いて暗号を実装してみたいと思います。今回はシーザー暗号です。あわせてほとんど同じアルゴリズムのシフト暗号も実装します。 シーザー暗号・シフト暗号とは 紀元前1世 ...

単一換字式暗号を実装してみる
こんにちは。前回、突然写像をテーマに書いてみました。その理由は、暗号について書いてみようと思ったためです。十分暗号についての知識を持っているわけではないのですが、おそらく復号できる ...

写像
こんにちは。今回は突然ですが写像について取り上げたいと思います。 写像を取り上げた理由 昔の高校の数学では写像が学習内容に含まれていましたが、平成元年公示の学習指導要領以降は消えて ...

モンティ・ホール問題をExcelでシミュレーションしてみる
こんにちは。今回はモンティ・ホール問題というものを扱ってみたいと思います。 モンティ・ホール問題とは モンティ・ホールという人が司会をする番組のゲームが数学的に話題になったものです ...

逆ポーランド記法
こんにちは。これまでデータ構造について書いてきたので、その中のスタックを使ったプログラムとして、「逆ポーランド記法」について書きたいと思います。 逆ポーランド記法とは 普段、私たち ...

Pythonでさまざまなデータ構造(2)
こんにちは。前回は連結リスト構造とそれに関連したデータ構造をPythonでプログラムを書き直してみました。 今回は木構造に関係したデータ構造をPythonのプログラムにしてみたいと ...

Pythonでさまざまなデータ構造(1)
こんにちは。これまで10回以上にわたり、さまざまなデータ構造を取り上げてきました。そこで使ったプログラミング言語はJavaでした。競技プログラミングを目指すならば、絶対にCまたはC ...

さまざまなデータ構造(12)二分探索木3
こんにちは。前回は二分探索木を取り上げました。今回はプログラムをまとめることにします。 二分探索木のクラス 前回示した手順をクラスとしてまとめました。次のようになります。前回のポイ ...

さまざまなデータ構造(11)二分探索木2
こんにちは。前回は二分探索木とは何かについて説明し、探索と挿入について書きました。前回やり残したデータの削除について書きます。 データの削除 二分探索木でデータを削除するには工夫が ...

さまざまなデータ構造(10)二分探索木1
こんにちは。今日は3の倍数の日ではありませんが、2月の更新が9回になってしまうので更新することにします。 前々回・前回の2回で二分木について取り上げました。さらに発展して今回は二分 ...

さまざまなデータ構造(9)二分木2
こんにちは。前回は二分木とその走査について取り上げました。今回はプログラムを整理しておきたいと思います。 二分木を作り走査するプログラム それでは、実行用のプログラムを掲載します。 ...

さまざまなデータ構造(8)二分木1
こんにちは。今回は木構造です。これまでに取り上げた連結リスト、スタック、キューはすべて1方向でした。それに対して、木構造は複数に分岐します。今回は高々2つの分岐までの木を扱います。 ...

さまざまなデータ構造(7)キュー2
こんにちは。前回はキューについて説明しました。今回は、キュークラスとしてまとめます。 キューのプログラム(Java) package data_structure; public ...