2009-01-01から1年間の記事一覧

BAモデル・ランダムグラフの構築・解析

[R][igraph][社会ネットワーク]RでBAモデル [R][社会ネットワーク][igraph]Rでランダムグラフ 画像処理の方とは違った課題により、またもRを使ってバラバシ・アルバートモデルなるネットワークモデルを実装してみました。 せっかくだから俺はこっちのMathema…

Mathematicaで固有顔

[R][画像処理]Rで固有顔? [R][画像処理]Rで固有顔&近似画像 今回は先生から頂いた手描きっぽい顔画像200枚程度を用いて固有顔を求めます。画像のサイズはあらかじめ32x32までダウンスケールされてるんだよ。 256×256でやってみました。 画像は用意されてい…

wonderflに登録しました

というわけで、さっそくforkを。 この短くてきれいなコードを、以下のようにいじらせてもらいました。 オリジナルが球体をパラメータ表示で記述してたので、トーラスにしてみただけ。 で、さらに魔改造。 僕はプログラミングあんまりわからないことも多いの…

Twitterのbotを作ってみた

number_bot(http://twitter.com/number_bot)は投稿数が何かの数に達すると通知するbotです。基本的には素数ですが、たまに変なものも通知します。稼動:2009.09.27〜素数以外に実装されている数列と、最初にそのreplyを受けた人を発見者として記録しておきま…

Project Euler 30

驚くべきことに, 各桁を4乗した和が元の数と一致する数は3つしかない. 1634 = 1^4 + 6^4 + 3^4 + 4^4 8208 = 8^4 + 2^4 + 0^4 + 8^4 9474 = 9^4 + 4^4 + 7^4 + 4^4 ただし, 1=1^4は含まないものとする. この数たちの和は 1634 + 8208 + 9474 = 19316 である.…

Project Euler 29

2 ≦ a ≦ 5 と 2 ≦ b ≦ 5について, a^bを全て考えてみよう: 2^2=4, 2^3=8, 2^4=16, 2^5=32 3^2=9, 3^3=27, 3^4=81, 3^5=243 4^2=16, 4^3=64, 4^4=256, 4^5=1024 5^2=25, 5^3=125, 5^4=625, 5^5=3125 これらを小さい順に並べ, 同じ数を除いたとすると, 15個の…

Project Euler 28

1から初めて右方向に進み時計回りに数字を増やしていき, 5×5の螺旋が以下のように生成される: 21 22 23 24 25 20 7 8 9 10 19 6 1 2 11 18 5 4 3 12 17 16 15 14 13 両対角線上の数字の合計は101であることが確かめられる. 1001×1001の螺旋を同じ方法で生成…

Project Euler 27

オイラーは以下の二次式を考案している: n^2 + n + 41. この式は, nを0から39までの連続する整数としたときに40個の素数を生成する. しかし, n = 40のとき402 + 40 + 41 = 40(40 + 1) + 41となり41で割り切れる. また, n = 41のときは412 + 41 + 41であり明…

Project Euler 26

単位分数とは分子が1の分数である。分母が2から10の単位分数を10進数で表記すると次のようになる。 1/2 = 0.5 1/3 = 0.(3) 1/4 = 0.25 1/5 = 0.2 1/6 = 0.1(6) 1/7 = 0.(142857) 1/8 = 0.125 1/9 = 0.(1) 1/10 = 0.1 0.1(6) 0.166666... という数字であり、6…

Project Euler 25

フィボナッチ数列は以下の漸化式で定義される: Fn = Fn-1 + Fn-2, ただし F_1 = 1, F_2 = 1. 最初の12項は以下である. F_1 = 1 F_2 = 1 F_3 = 2 F_4 = 3 F_5 = 5 F_6 = 8 F_7 = 13 F_8 = 21 F_9 = 34 F_10 = 55 F_11 = 89 F_12 = 144 12番目の項, F12が3桁に…

Project Euler 24

順列とはモノの順番付きの並びのことである. たとえば, 3124は数1, 2, 3, 4の一つの順列である. すべての順列を数の大小でまたは辞書式に並べたものを辞書順と呼ぶ. 0と1と2の順列を辞書順に並べると 012 021 102 120 201 210 になる. 0,1,2,3,4,5,6,7,8,9か…

Project Euler 23

完全数とは, その数の真の約数の和がそれ自身と一致する数のことである. たとえば, 28の真の約数の和は, 1 + 2 + 4 + 7 + 14 = 28であるので, 28は完全数である. 真の約数の和がその数よりも少ないものを不足数といい, 真の約数の和がその数よりも大きいもの…

Project Euler 22

5000個以上の名前が書かれている46Kのテキストファイルnames.txt を用いる. まずアルファベット順にソートせよ. のち, 各名前についてアルファベットに値を割り振り, リスト中の出現順の数と掛け合わせることで, 名前のスコアを計算する. たとえば, リストが…

Project Euler 21

d(n)をnの真の約数の和と定義する。(真の約数とはn以外の約数のことである。) もし、d(a) = b かつ d(b) = a (a ≠ b)を満たすとき、aとbは友愛数(親和数)であるという。 例えば、220の約数は1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110なのでd(220) = 28…

Project Euler 20

n × (n - 1) × ... × 3 × 2 × 1 を n! と表す。 100! の各桁の数字の合計を求めよ。 Mathematica Total[IntegerDigits[100!]] IntegerDigitsは、例えば 346 という数字をいれると、{3, 4, 6} というリストにして返してくれる関数です。 ここに限らず、Intege…

Project Euler 19

次の情報が与えられている。 ・1900年1月1日は月曜日である。 ・9月、4月、6月、11月は30日まであり、2月を除く他の月は31日まである。 ・2月は28日まであるが、うるう年のときは29日である。 ・うるう年は西暦が4で割り切れる年に起こる。しかし、西暦が400…

Project Euler 18

以下の三角形の頂点から下まで移動するとき、その数値の合計の最大値は23になる。 3 7 5 2 4 6 8 5 9 3 この例では 3 + 7 + 4 + 9 = 23 以下の三角形を頂点から下まで移動するとき、その最大の合計値を求めよ。 75 95 64 17 47 82 18 35 87 10 20 04 82 47 6…

Project Euler 16

2^15 = 32768 であり、これの各数字の合計は 3 + 2 + 7 + 6 + 8 = 26 となる。 同様にして、2^1000 の各数字の合計を求めよ。 Mathematica Total[IntegerDigits[2^1000]] これも桁数を考慮してプログラミングする問題なのですが、Mathematicaだとそのまんま…

Project Euler 17

1 から 5 までの数字を英単語で書けば one, two, three, four, five であり、全部で 3 + 3 + 4 + 4 + 5 = 19 の文字が使われている。 では 1 から 1000 (one thousand) までの数字をすべて英単語で書けば、全部で何文字になるか。 注: 空白文字やハイフンを…

Project Euler 15

Starting in the top left corner of a 2×2 grid, there are 6 routes (without backtracking) to the bottom right corner. How many routes are there through a 20×20 grid?2 × 2 のマス目の左上からスタートした場合、引き返しなしで右下にいくルートは …

Project Euler 14

The following iterative sequence is defined for the set of positive integers: n -> n/2 (n is even) n -> 3n + 1 (n is odd) Using the rule above and starting with 13, we generate the following sequence: 13 -> 40 -> 20 -> 10 -> 5 -> 16 -> 8 -…

Project Euler 13

Work out the first ten digits of the sum of the following one-hundred 50-digit numbers. 37107287533902102798797998220837590246510135740250 46376937677490009712648124896970078050417018260538 7432498619952474105947423330951305812372661730962…

Project Euler 12

The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be: 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... Let us list the factors…

MathematicaでGUIのゲームを作ることはできるか?

おそらくあまり知られていないですが、mathematicaはアニメーションやボタンイベント、クリックイベントなど、GUIを作るときにJavaなどでは良く使うような関数が揃っています。 そればかりか、PopupMenuやゲームパッドコントローラの入力を読み込んだりとぶ…

Project Euler 11

In the 20×20 grid below, four numbers along a diagonal line have been marked in red. 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 81 49 31 73 55 79 14 29 93 71 40 6…

趣味の話

最近ほったらかしてしまっていたので、リハビリがてらに趣味の話でも。趣味は?と聞かれるとどうにも広すぎて大変だけど、思うままにあげるなら 音楽鑑賞、読書(小説・漫画)、ゲーム、ルービックキューブ、プログラミング・・・ぐらいかな。 ゲーム 私の年代…

コピー用紙の大きさはなぜあの比率?

小ネタです。A4,B5などで規定されているコピー用紙。 A3はA4の2倍、A4はA5の2倍・・・という大きな特徴があり、非常に便利です。ところで、この用紙の縦横比は気まぐれで決まっているのではありません。しっかりとした数学的理由があります。 そもそも、「半…

math Clock AIR版

http://10e.org/mt2/archives/200901/310126.php?PHPSESSID=8c10c4421766d10d75f33d390cbfd0ca 1週間前にこの記事を見つけて、リアルに欲しい!と思ったのですが、20ドル+送料15ドルだし注文もめんどくさそうだし・・・ということで、AIRで作ってみました。 …

一般化してみよう

以前「曲線で遊ぼう1」という記事で下のような関数を作りました。 階段を登っていくような関数です。 これはまだ改良しがいがあるみたいなので、どんどん一般化させてみようと思います。 まずは手始めにこの式の作り方を書きます。 まずは(0,0)と(1,1)を通り…

Mathematica 7 日本語版

か、どうかはわかりませんが、日本語版のヘルプが公開されました! webのヘルプは諦めていたのですが、意外と速い対応でよかったです。