読者です 読者をやめる 読者になる 読者になる

p進整数となる分数のp進展開

p進整数となる分数をどうp進展開するか 最近p進数について何度か記事を書いていく中で、ふと疑問に思ったことがある。例としての場合を考える。このとき、は5進整数である。なぜなら、5進付値が以下のように0以上になるからである。では、この数を5進展開す…

p進整数の可視化による逆極限とp進展開の橋渡し

本稿でも引き続きp進整数について述べる。前回の記事で逆極限によるp進整数の定義を述べた。本稿ではまずこれを視覚的に捉え、次いでp進展開との関係について述べる。 p進整数の定義おさらい まず、逆極限によるp進整数の定義を再掲しよう。剰余環と自然な全…

整数環とp進整数環の関係

p進数とは 今日は再び数論について書いてみる。トポロジーの勉強を始める前は数論の本(数論Ⅰ)を読んでいたのだが、これがどうにも消化しきれず、一旦停止していた。本稿では一読して理解しきれなかったトピックの1つであるp進整数について書いてみる。数論の…

ホモロジー群とその計算例

本稿では位相幾何学における基本的な量であるホモロジー群と、いくつかの図形に対するホモロジー群の計算例について述べる。 位相不変量としてのホモロジー群 位相幾何学では、図形を位相空間であると捉え、位相同型な空間同士は同じ図形であると考えるとい…

有限生成アーベル群の捩れがrankと無関係な理由

有限生成アーベル群のrank 今日もトポロジーの本を読んでいて得られた副次的な知見について書いてみたいと思う。それは、有限生成アーベル群のrankにまつわる話である。有限生成アーベル群の基本定理により、任意の有限生成アーベル群Gは以下の形の群と同型…

群の同型と剰余群の罠

先日トポロジーの本を読んでいたときに、私が剰余群について疑問に思ったことについて言及されている箇所があった。本稿ではそれについて書いてみたいと思う。 疑問 剰余群の最も簡単な例として、を考えてみよう。これが位数2の巡回群になるのは周知の通りで…

鎖群の境界写像の境界っぽさを味わう

最近、読みたいと思っていたトポロジーの本(本稿末尾を参照)を図書館で見つけたため、急遽トポロジーの勉強を始めた。トポロジーとは、位相同型な図形(正確には位相空間)の間に存在する不変量を研究する分野である。大事な位相不変量としてホモトピーとホ…

代数体の整数環においてUFD⇔PIDとなることの証明

今日は一意分解環(UFD)と単項イデアル整域(PID)の関係について、数論に絡むことを書いてみようと思う。一般に、PIDはUFDである。このことの証明は恐らく多くの環論の教科書に載っているであろうから、本稿では特に触れない。実は、代数体の整数環においては…

二次体における素イデアルを全て求めることはできるか?

ここのところ代数的整数論を勉強しているわけだが、自分はどうにもイデアルに弱いようだ。その原因を考えてみると、どうにも単項イデアルでないイデアルに馴染みがないのが原因である気がしてきた。この悩みはきっと環論や代数的整数論を学び始めた人に共通…

代数的整数論におけるイデアル類群・単数群の初歩的な意味

2017年最初の記事である。今年は本業とプライベートが両方とも忙しくなりそうだが、そんな中でも数学をする時間をなんとか捻出したいと思う。数学に関する今年の抱負をいろいろと考えてみたのだが、今年は類体論の心を理解することを目標にしたいと思う。類…

閉形式の線積分とポテンシャル場の線積分

今日も微分形式とベクトル解析について書く。テーマは経路に依らない線積分である。まず、ポテンシャル場における線積分について説明する。あるベクトル場において、経路Cに沿った線積分を行うことを考える。Cの始点は点P、終点は点Qであるとする。このとき…

スカラーポテンシャル・ベクトルポテンシャルと微分形式の外微分の関係

今日も微分形式について書きたいと思う。本当は線積分周りのことを書いて多様体の話は一旦終わろうと思ったのだが、それはまた後に回して、ここではベクトル解析の式がまたしても微分形式により一般化される別の事例について書きたいと思う。 スカラーポテン…

多様体上での積分と一般化されたストークスの定理

前回は微分形式について基礎知識を整理してみた。今回は微分形式の積分について考えてみたいと思う。 1次微分形式の積分 1次微分形式について、のある区間での積分を以下のように定義する。 この積分値はでの座標の取り方に依らず決まるという重要な性質があ…

多様体上の微分形式の基礎知識

最近「多様体の基礎」という本を読んだ。実は今回が2回目のチャンレジで、前回は5章のベクトル場のあたりで打ちのめされてしまったのだが、今回は何とか強引に最後まで読み進めることができた。が、知識の定着度はお察しの通り、いまいちである。特に、微分…

群の自然な準同型と部分群の対応

群Gとその正規部分群Nがあるとする。Gから剰余群G/Nへの自然な準同型をとする。G/Nの部分群全体の集合を、GのNを含む部分群全体の集合をとする。このとき、写像は全単射となる。つまり、との元の間には一対一の対応関係がある。例によって細かい理屈はここで…

有限生成アーベル群の基本定理にまつわる考察

群論の有名な定理の1つに有限生成アーベル群の基本定理というものがある。これは、群Gが有限生成アーベル群であれば、Gは巡回群の直積に分解できるというものである。より具体的には以下の通りである。 群Gが有限生成アーベル群であれば、となるような自然数…

有限次分離拡大が単拡大となることの具体例を愚直に計算してみる

体の拡大L/Kが有限次分離拡大であるとき、この拡大は単拡大になることが知られている。私が使っている教科書にもこの定理は載っており、具体例としてが取り上げられていた。しかし、その説明が私にはエレンガント過ぎて、なんともピンとこなかった。私がとに…

数式処理システムSageMathで遊ぶ

代数学について勉強していると、具体的な群の構造やら何やらを知りたくなる時がある。しかし、それらを理論的に求めることができたとしても、実際に計算してみるのは大変骨の折れることだ。例えば、ある群の部分群を全て知りたいとか、ある多項式のガロア群…

体K上の多項式環K[x]を既約でない多項式f(x)で生成されるイデアル(f(x))で割って得られる剰余環はなぜ体にならないのか

Kを体とする。K上の多項式環K[x]に対して、]がK上既約であれば、剰余環は体となる。これは代数学における極めて有名な事実だ。このようになる教科書的な説明を述べると、K上既約な多項式から生成されるイデアルは極大イデアルであり、極大イデアルによる剰余…

ネットワークトポロジーに潜む位相空間

情報を学んだ事のある人間であれば、ネットワークトポロジーという言葉を聞いた事があるだろう。これは、ネットワーク上でサーバやスイッチ等がどのように接続されているかを示す用語である。 また、トポロジーというのは数学の位相を意味するということは、…

ガロアの基本定理の定性的なイメージと具体例

少し前にやっとガロア理論を学ぶことができた。ガロア理論の核となるのはガロアの基本定理である。ざっくり説明すると、L/Kが体のガロア拡大であるとき、その中間体Mに対してガロア群Gal(L/K)の部分群の中に1対1に対応するものがあるという定理である。しか…

代数拡大、分離拡大、正規拡大そしてガロア拡大へ

今日は久々にソフトウェアエンジニアとしてではなく、日曜数学者としての記事を書いてみる。実はここ数カ月、ずっと代数学の勉強をしている。代数学は以前雪江先生の本にチャンレンジして、見事に撃沈したので、今は2度目の挑戦中である。(懲りずにまた雪…

等間隔でない時系列データからトレンドを抽出する方法の考案

私は去年からモルモットを飼っている。毎週土曜日にケージ掃除し、その時に体重測定も行っている。体重というのはノイズが多い値である。体重測定の直前に餌をたくさん食べていれば大きめの値がでるし、逆に直前にフンをたくさんしていたりすると少なく出て…

template引数にコンテナを指定し、関数内でiterateする方法

C++

自分が修士の学生でC++を書いていたとき、どうにも分からなかったことがある。それは、template関数のtemplate引数にstd::vectorなどのコンテナを指定し、関数内でそのコンテナに対してiteratorを回す方法である。当時の自分は以下のようなコードを書いてお…

Range based forとauto&&によるperfect forwarding

C++

C++11からrange based forという構文が導入された。これはpythonなどで言うところのforeach文と似たような動作をする構文である。以下に典型的な使用例を示す。 std::vector<int> vec(10); /* vecに何か値を設定 */ for(int el : vec) { /* Do something using "e</int>…

C++11におけるstd::vectorへの最速な値設定方法の考察を通して学ぶemplace_backとstd::move

C++

最近C++を書く機会が多いのだが、いかんせん自分の知識は2014年でぱったりと止まっている。しかも2014年当時、自分はまだまだ未熟で、C++11やらC++14なんかの機能についてはまったくの無知であった。そんなわけで、C++のモダンな機能を学びがてら、タイトル…

Debian WheezyがインストールされているパーティションをRAID1に変更する方法

前回の記事で自宅サーバのバックアップであれこれ悩んでみたが、結論としてはRAID1+定期バックアップという構成に落ち着いた。やはり今からbtrfsを入れるのは腰が重かった。本構成を実現するにあたり1つ問題となったのが、どうやってDebian Wheezyがインス…

自宅サーバのバックアップについて悩む

現在我が家にあるサーバは、主に写真や映画の貯蔵庫として使用されている。とても大切な思い出がたくさん詰まっているので、データのバックアップは欠かしていない。しかし、現在の方法が果たして最適なのかという点については疑問が残る。最近、この問題に…

群の可視化に関する考察その2

前回の記事で群の可視化について考察した。その際、群の全ての元に対して、全ての元を掛けあわせたときの遷移先をグラフのエッジとして表すという方法を採った。しかし、これだと群の位数nに対してエッジ数がn2となってしまい、位数が大きい群を可視化するの…

群の可視化に関する考察

私は元来情報系の人間であるが、ここ数年は専ら数学の勉強をするのが趣味となっている。個人的な最終目標は代数的整数論、及び解析的整数論の基本的な事項を理解することであるが、まずはそのための下準備として代数学を勉強している。代数学における一番基…

sambaとnautilus

これまでowncloudを使って我が家のファイル共有を実現していたのだが、いろいろと不満が出てきた。 ブラウザからのアクセスが重い。 クライアントソフトを入れると、PCとサーバの両方に同じデータが置かれる。 1つ目についてはもう明らかにダメなわけだが、2…

ownCloudで存在するはずのフォルダがWeb UIから見られないときの対処法

先日部屋を引っ越した関係で、ネット環境がガラリと変わってしまった。そのため、サーバの設定をまたあれこれやっていたのだが、いろいろと触っているうちに、ふと存在するはずの写真フォルダがWeb UI見られなくなっていることに気づいた。これを修正するた…

最初からシリアルコンソールに入れる状態のVMを作る

先日自宅サーバのVMを新たに作りたくなったのがだ、スケルトンとして用意しておいたVMにインストールされていたのがdebian squeezeだった。そのため、あらたにdebian wheezyがインスールされたスケルトンを作ろうと思い立った。VMを作った後には普通OSをイン…

ownCloudで画像ファイルへの直接アクセスを禁止する

最近導入したownCloudで1つ気になっていたことがある。それは、ファイルのフルパスをURLに入力すると、ログインしていなくても画像が表示されてしまうということである。これはセキュリティ的に非常にまずい。ownCloudはディレクトリ構成が大体決まっている…

楽しい自宅サーバ構築

私が大学院生の頃だったか、一台の安いサーバ機を買ったことがある。当時は勉強のためという名目で買ったが、ちょろっとVMを立ててみたところで飽きてしまった。最近そのサーバを引っ張り出してまた遊びはじめた。というのも、クラウドアプリケーションがは…

幸せな配属問題 その3

今回で3回目となる幸せな配属問題であるが、最近さらなる最適化の余地を見出した。それは、処理をする人の順番である。この工夫をするのとしないのとで実行時間が大きく変わってくる。どういう順番で人を処理すると速くなりそうだろうか?これは、DPのステ…

幸せな配属問題 その2

前回に引き続き幸せな配属問題について書こうと思う。今日は枝刈りについてだ。これは特別頭のいいことをしているわけではないのでさくっと説明しよう。このアルゴリズムは幅優先探索がベースであり、その各ノードはそこまでの幸福度の情報を持っている。そ…

幸せな配属問題

突然私事で恐縮なのだが、少し前に会社の配属が決まった。そんなわけで現在は配属先の部署で元気に働いているわけだが、私はこの配属で希望通りの部署に配属されなかった。これは大変残念なことだ。しかし周りを見渡すと、どうも私一人が不幸になったわけで…

D言語のデータ構造

最近気づいたことがある。D言語には基本的なデータ構造がまったく揃っていない。queue, stack, set, priority queue, unordered_set, unordered_mapなど、C++に用意されている極めて重要かつ基本的なデータ構造がないのだ。これは困った。どうしてこんなこと…

テンプレートと型の制約

関数の基本的なスタイルはシンプルだ。関数には名前があり、引数があり、そして戻り値がある。それだけだ。 しかし、人は時に強欲で、これよりもさらに高級なことがしたいと思うことがある。その最たるものがテンプレートである。テンプレート自体は今や極め…

foreachでインデックスが取得できる喜び

昔ながらのfor文が煩わしい場合があるというのはよく言われることである。for文を使いたいよくあるシチュエーションとして、配列等のデータ構造の要素に順にアクセスしたい場合が挙げられる。この場合、後でデータ構造を変更する度に要素へのアクセス方法が…

契約プログラミングとエラー処理

関数のシグネチャは、その関数がどのように使われるべきものかを規定する。これはその関数を使うユーザとの間の取り決めのようなものである。しかし、シグネチャだけでは表現の幅に限界がある。例えば以下の関数を考えてみる。 double sqrt(double num); こ…

unittestのすすめ

unit testは数あるテストのうち、最初に行われるテスト工程である。これをきちっと行うのはソフトウェア工学的にはとても重要なことだと思うのだが、私はどうにもこれがめんどくさくて仕方がない。大学院時代にコードを書いていたときには、単体テストモドキ…

D言語の動的配列

私は大学院時代にずっとC++で開発をしていたのだが、その時に一番重宝したのはstd::vectorである。要素の追加・削除が簡単であるのに加え、at()関数を使えばメモリ境界のチェックもしてくれる。境界チェックに時間を割きたくなければ[]演算子で高速にアクセ…

dmdとgdcのあれこれ

さて、D言語を書こうと思った時にまず必要なのはコンパイラだ。私の知る限り、D言語のコンパイラは3つある。 dmd : 公式 gdc : gccのD言語フロントエンド ldc : LLVMがなんちゃら(よく知らない) 私はgccやg++に慣れ親しんでいたので、まずgdcを使ってみる…

良いエンジニアがすなるブログといふものを私もしてみむとすなり

この度、はてなブログを始める事にしたのには、いくつか理由がある。まず根底にあるモチベーションとして、私が日々趣味で学んでいる様々なことを、多くの人々にも理解してもらい、喜びを共有したかったというのがある。そうした場合、形式はいくつか考えら…