Root One

数学中心のブログです。

プログラミング

並列処理でzeta(2)を計算

今回は次の有名な等式(の右辺)をプログラム(C++)で並列処理をして近似計算してみようというのがテーマです。 単純に足し上げる場合と並列処理をした場合で時間がどれくらい異なるかを実験してみました。 ちなみに正確な値は となっています。 並列化に用いる…

すべてはmain関数から始まる(と思っていた話)

最近数学から離れていて、C++の話が中心になっています. 今回もC++です. 早速本題に入っていきます。 main関数は「はじめに実行される」と教わったような... おそらく、プログラムを勉強するときに最初に作成するのが Hello World を表示するプログラムだと…

C++で関数に配列を渡す時の難点

配列利用時の不満点 C言語でも同じですが、C++でも配列を外部の関数に渡すと、外部の関数内で配列のサイズの取得ができなくなってしまいます。 そこで、配列を渡す時に、次のように一緒にサイズも渡さなければなりません。 渡された配列の要素に1を加えるだ…

いろいろな方法で和を考える(C++)

今回は、プログラミング言語C++で、いろいろな方法で配列の和について考えていきたいと思います。 一番基本的な方法 まず、for文を用いて配列の和を計算します。 #include <iostream> using namespace std; int main() { int a[] = { 1,2,3 }; int sum = 0; for (int i</iostream>…

C++のソート

C++のソートについてまとめてみました。 ソートと重複要素削除 (外部サイト) ソートの難しいところ 1次元のソートは簡単ですが、難しいのは多次元のソートです。 例えば、 月 日 1 7 2 3 1 2 2 7 2 2 1 3 というデータを月順にソートすると 月 日 1 7 1 2 1 …

C++で驚いた話

最近C++をさわりはじめたのですが、 すこし驚いたことがあったので、メモを残しておきたいと思います。 少し驚いたコード vector<int> v = { 1,2,3 }; for (int i = 0; i < v.size() - 4; i++) { cout << v[i] << endl; if (i == 2) break; } 実行結果. 123 何が</int>…

自動生成の漢字パズル

夏目漱石の小説(「吾輩は猫である」、「こころ」)から、2字熟語を抽出して、 2字熟語漢字パズルを自動生成するプログラムを作ってみました。 東西南北に漢字があり、2字熟語が成立するように中央の漢字を選ぶパズルです。 例. 感 驚 願 賞 答え 嘆 このパ…

〇×ゲーム(三目ならべ)の勝率

「〇×ゲーム」といえば、昔、紙の上ではもちろん、グラウンドでも木の枝で線を書いて遊んだ記憶があります。 このゲームは、先手と後手がお互い最善を尽くせば引き分けになることが知られていますが、今回は「ランダム」に指し手を選んだとして、 先手勝ち・…

不可逆的なフィルターは作成可能か

今回も物理シミュレーションを行います。 問題設定 同じ大きさのボールを用意して、適当な初速を与えて、等速度運動をさせ、衝突は完全弾性とします。 分子運動論的な問題 - Root One と同じように中央をフィルターで横方向に分断しますが、今回は上下から見…

分子運動論的な問題

全く専門外ですが、今回はちょっとした物理シミュレーションについて考えてみます。 結論だけを先にいえば、今回何も得られていません。いくつか実験してみましたが、残念ながら何もわかりませんでした。 問題設定 枠として正方形を用意して、中央をフィルタ…

円運動する32個の点

あまり意味はないのですが、 32個の点を適当な方法で補間して曲線で結んで、さらに円運動させてみました。 1点に注目すると一定の中心を一定速度で運動しているはずなのですが、 全体的にみると、かなり複雑な運動をしているように見えます。 これも一種の…

2次元セルオートマトンから生成される幾何学模様

2次元上に広がる「白」と「黒」を状態として持つセルを考えます。 初期状態を適当にとり、適当な規則により、変化させていく様子を観察するのが、いわゆる「ライフゲーム」なのですが、ライフゲームの規則は、ざっくりいうと、斜めも含めて、周囲1つ隣のセ…

ライフゲーム

ライフゲームというのは、数学者Conwayさんが考えた2次元上のセルのシミュレーションゲームのことです。 ルールは LifeGame (著者管理の外部サイト) に書きましたが、ここでも紹介します。 ライフゲームのルール 各セルは、白と黒の二つの状態しかとらない…

svg 曲線アニメーション

(間違って消してしまったので再投稿します.) 今回は、svgの曲線を、(cssを用いずに) 徐々にアニメーションで表示する方法についてまとめます。 次はクリックを押すと、HELLOが表示されるアニメーションです。 Click 注:残念ながら、ブラウザによってはクリ…