2015年01月31日

一月最後の日

今日は 1 月 31 日。もう一月も終わりです。時が経つのは早いもんだ。

今日は「愛妻の日」だそうです。1 をアルファベットの I に見立てて、31 が "サイ" という語呂合わせ。驚いたのが、日本愛妻家協会というのがあるのだそうで。どんな協会なんでしょうか。まあ、愛妻などいない自分にはあまり関係ない話です。ちなみに旦那の日とかいうのはなさそうですね。

それにしても、正月がついこの間だったような気がします。やっておきたいことが山ほどあるんですけど、なかなか進んでくれない。。。  

Posted by fussy at 23:20Comments(0)TrackBack(0)

2015年01月28日

円と四角形

また急に寒くなってきました。

一月が終わる前に、「アルゴリズムのコーナー」にある「ハフマン符号化」をアップデートしたいと思っています。サンプル・プログラムは大体できたので、あとはドキュメントを見直すのみとなりました。何とか間に合わせて、二月からはアップデート作業と並行して「生存時間解析」あたりをまとめようかと考えてます。クラスタリングの手法が結構おもしろそうなので、これも作っていきたいのですが、そんなに時間が取れるかどうか...

中学校の頃に習った幾何の問題で、面白そうなのを見つけたので紹介します。Twitter から拾ってきたのですが、どこから見つけてきたのか失念してしまいました。

■ 円に内接する平行四辺形で長方形でないものは存在しないことを示せ。( 7mex 様 )

平行四辺形の向かい合う頂点の内角が等しいことと、円に内接する四角形の向かい合う頂点の内角和が 180 度であることを利用すると、円に内接する平行四辺形の内角は 90 度であることになるので必ず長方形になります。この二つの定理を証明する方がちょっとだけ大変です。

平行四辺形の向かい合う頂点の内角が等しいことは、相対する辺が平行なので、対角線を一本引いた時に錯角が等しくなることを利用すれば証明できます。
円に内接する四角形の向かい合う頂点の内角和が 180 度であることは次のように証明します。円の中心を各頂点と結んだ時に内部にできる 4 つの三角形が全て二等辺三角形であることから、それぞれの底角を○、□、△、×で表すと、向かい合う頂点の内角和が (二つの頂点をどのようにとっても) ○ + □ + △ + ×となるので、全頂点の内角和が 2( ○ + □ + △ + × ) = 360 度であることから ○ + □ + △ + × = 180 度となります。

中学校の頃にこれらの定理を習った記憶がありますが、どうやって証明するのか少し悩みました。  

Posted by fussy at 23:25Comments(0)TrackBack(0)数学

2015年01月25日

旧暦カレンダー

昼にそばを食べていたら、ふと正月休みの頃を思い出しました。

新年が明けてから一ヶ月近く経つわけですが、旧暦ではまだ年明けしてないんですよね。中国やベトナムでは旧正月の方が盛り上がるのに対し、日本ではほとんど話題にならないというのも不思議な気がします。昔は旧正月が本来の「年明け」だったわけなので、もう少しクローズアップされてもよさそうな気が。
今日は旧暦では 12 月 6 日。12 月 1 日が「大寒」で、12 月 16 日が「立春」になるというのは初めて知りました。それから、節分は正月前の行事だったんですね。調べてみると、旧暦の方が、日本の季節を感じやすいというような気もします。

ということで、旧暦カレンダーがあるのかと探してみたら Amazon ではまだ売っているようですね。でも、旧暦カレンダーは来年から使ってみようかと思います。できれば年明けから使い始めたいですよね。  

Posted by fussy at 19:04Comments(0)TrackBack(0)

2015年01月25日

スマホ歩き

昨日、会社からの帰り際に階段付近で突然バタンという音がして、見たらおじさんが階段下で倒れていました。

どうやら足を踏み外したかして転んだようで、しばらく倒れたままだったので近くの人が心配して声を掛けてました。ようやく立ち上がって大丈夫そうな雰囲気だったので、電車に乗り遅れると思いあわててその場を離れましたが、大丈夫だったんだろうかあの人。
携帯を落としていたのでそれを見ながら歩いていたんではないかと思いますが、未だに多いですねスマホ歩き。電車の中を見ても大半の人がスマホや携帯を見ています。それを眺めていると少々不気味な感じではありますね。薬物依存と似たような感じに見えて。せめて歩いている時くらいやめればいいのに。  

Posted by fussy at 00:29Comments(0)TrackBack(0)

2015年01月19日

明日は大寒

明日は大寒。寒さに加えて風が強い日が続きますね。

昨日までセンター試験が行われたわけですが、なぜこんな一番寒い季節に試験なんかさせるんでしょうかね。体調を崩しやすい時期でもあるし、雪で交通機関がマヒしてしまったら最悪です。
今日の新聞のコラムを見ていたら一ヶ月ほど前倒しすればそんな問題も回避できるのではというようなことが書かれていました。クリスマスや正月前に試験が終われば多少は息抜きできそうですしね。

何はともあれ、受験生の皆さんはいよいよ二次試験を残すのみですね。現在、最後の追い込みといったところでしょうか。

ということで、「数学問題bot」にあった東工大の入試問題です。

-----

■ n を自然数、P(x) を n 次多項式とする。P(0), P(1), …, P(n) が整数ならば、全ての整数 k に対して P(k) は整数であることを証明せよ。( 08東工大AO )

* 以下にある Πj{1→n}( aj ) は a1 から an までの積を表します。

n = 1 ならば P(x) = ax + b に対し P(0) = b が整数、P(1) = a + b が整数なので a, b のどちらも整数であり、任意の整数 k に対して P(k) は整数であることが成り立ちます。

n 次以下の全ての多項式に対して成り立つと仮定して、( n + 1 ) 次の多項式を

P(x) = ax( x - 1 )( x - 2 ) ... ( x - n ) + R(x)

という形で表します。但し、a はゼロ以外の任意の数で、R(x) は n 次以下の多項式です。P(x) が k ≤ n のときに条件をみたすとすれば、P(k) = R(k) かつ P(k) は整数なので、R(k) は整数です。よって、R(x) は ( n 次以下の多項式なので ) 仮定から任意の整数 k についても整数であることになります。k = n + 1 のとき、

P( n + 1 ) = a( n + 1 )・n・( n - 1 ) ... ・1 + R( n + 1 ) = a( n + 1 )! + R( n + 1 )

が整数ならば、a = N / Πj{1→n+1}( jσj ) の形でなければなりません。但し、N は任意の整数、σj は 0 または 1 のいずれかの数です。任意の整数 k に対して

ak( k - 1 )( k - 2 ) ... ( k - n )
= ak! / ( k - n - 1 )!
= a( n + 1 )!k! / ( n + 1 )!( k - n - 1 )!
= a( n + 1 )!・kCn+1

より a( n + 1 )! は整数、kCn+1 も整数なので、ak( k - 1 )( k - 2 ) ... ( k - n ) は整数です。従って、任意の整数 k に対して P(k) は整数になります。以上から、帰納法により n 次式に対して P(0) から P(n) までが整数なら、任意の整数 k に対して P(k) が整数になることが証明できました。

二次式の場合で考えると、

P(x) = ax( x - 1 ) + ( bx + c )

に対して

P(0) = c
P(1) = b + c

がどちらも整数なので、b, c は整数であり、任意の整数 k に対して bk + c は整数です。

P(2) = 2a + 2b + c

も整数であり、2b + c が整数であることから 2a も整数になります。従って、a は分母として 2 しか持たず、任意の整数 N に対して N / 2 で表されます。任意の整数 k に対し、

ak( k - 1 ) = Nk( k - 1 ) / 2

は k と k - 1 のどちらかが必ず偶数となるので整数です。従って、任意の整数 k に対して P(k) は整数になります。

結構前に見つけた問題ですが、しばらく放置してました。ちょっと解いてみるかとチャレンジを始めてから実は一週間くらい経っています。また、例によって合っている保証はありません。  

Posted by fussy at 22:58Comments(0)TrackBack(0)数学

2015年01月18日

gtk+3 使ってみた

ようやく本腰を入れて gtk+3 への乗り換えを進めてみました。

ウィジェットへの描画方法が一新されてしまったので最初は手探り状態でしたが、ようやくある程度理解して動作するところまで完成しました。描画のところだけ変更すればあとはそのまま動作するようになったので一安心です。

一番苦しんだのが、GdkPixbuf を使って Drawable へ描画するところ。昔参考にしていた本にあった方法で、GdkPixmap 経由で描画する形にプログラムを作成していたので、GdkPixbuf を GdkPixmap へ描画するときの原点と、GdkPixmap を Drawable に描画するときの原点の二つを管理していたのですが、gtk+3 からは Cairo を使った描画スタイルになったので原点は一つだけ管理すればよくなりました。さらにイベントも expose_event が廃止されて draw イベントとなり、イベントハンドラの内容も変える必要がありました。このあたりが整理できたらあとはそれほど苦労したところはありません。しかし、まだ完全に理解したわけではなく、ドキュメントを参考にいろいろと試行錯誤しています。

Cairo が gtk+ 専用というわけではなく、gtk+ が Cairo を利用するようになったということのようなので、Cairo そのものも、もっとドキュメントを確認する必要があるようですが、パッと見たところいろんなことができそうです。もう少し内容を理解していきたいですね。いずれにしても、gtk+ を使ったサンプル・プログラムなんかももう少しすれば完成しそうなので、またいずれ公開しようかと思っています。  

2015年01月18日

あれから 20 年

阪神・淡路大震災の日、ちょうど転勤になって間もない頃でした。

朝、目が覚めてすぐに地震が起こりましたが、そのまま会社へ。昼休み中のニュースで初めてかなり大きな災害だったことに気づきました。しかし、あの頃は慣れない環境の中でバタバタしていたので、震災も含めて何があったかあまり記憶が残っていないです。

当時の写真を掲載したサイトがありました。これを見ると改めて地震の怖さを感じます。

想像を絶するすさまじい地震・火災・避難の実態を記録した知られざる阪神・淡路大震災の写真まとめ「1.17の記録」

いつもこういう時だけ防災のことを考えるんですけど、これもよくないですね。今年こそは、家具の転倒防止に防災グッズ、災害時のシミュレーションなどなど、日頃から少しずつ用意しておくようにしていきたいです。  

Posted by fussy at 00:19Comments(0)TrackBack(0)

2015年01月11日

鏡開き

今日は鏡開き。ということで、昼はぜんざいを食べました。

鏡餅は鏡開きの日に食べるわけですが、昔は固くなった餅を割って食べたのでずいぶんと硬かった思い出があります。今では餅がパックに入ったものが売られているので餅が硬くなることもなく、しかも取り出して調理するだけで済むというのは便利な世の中になったものだと思います。
餅を使った料理というと、雑煮・ぜんざい・焼き餅くらいが定番でしょうか。「餅 レシピ」でググってみたら、オニオンスープとチーズでグラタン風にしたり、ホットケーキに入れたり、牛乳やココアと合わせてみたりといろんなレシピが見つかりました。こういうアイデアが浮かぶというのはすごいものだと思います。

さて、今回は「数学問題bot」のこんな問題を解いてみました。

-----

1) 自然数 n を 2 つの自然数 p, q の和 ( n = p + q ) に分解した時、常に p, q が互いに素であるならば、n は素数であることを示せ。
2) 1000を 2 つの互いに素な自然数の和に分解する方法は何通りか。ただし和の順番を入れ替えたものは同じとみなす。( nyoki1007 様 )

1) n が合成数ならば、2 以上の二つの因数 k, m に分解できるので、m = p' + q' とすれば

n = km = k( p' + q' ) = kp' + kq'

と表すことができます。従って、p = kp', q = kq' とすれば、互いに素でない二つの数 p, q の和で表すことができます。

従ってその対偶として、常に p, q が互いに素ならば n は素数であることになります。

2) 合成数 N が素因数 p1r1p2r2 ... pmrm ( rk ( k = 1, 2, ... m ) > 0 ) に分解できるとします。N > L を満たす L が N の中の素因数で構成され、

L = p1s1p2s2 ... pmsm・Q ( sk ≥ 0 )

で表されるならば、rk, sk のうち最小値を tk として

N - L = p1t1p2t2 ... pmtm( p1r1-t1p2r2-t2 ... pmrm-tm - p1s1-t1p2s2-t2 ... pmsm-tmQ )

となります。p1t1p2t2 ... pmtm は L も共有する因数なので、N - L と L は互いに素ではない数であり、その和は N になります。逆に、L が N と共通な因数を一つも持たなければ、N - L とも共通の因子を持たないことになり、L と N - L は互いに素になります。

1000 = 2353 なので、素因数として 2 と 5 を持ちます。1 から 500 の間で素因数 2 を持つ数は 250 個、5 を持つ数は 100 個あります。しかし、2, 5 の両方を持つ数は 10 の倍数で 50 個あるので、2, 5 のいずれかを素因数に持つ数は 250 + 100 - 50 = 300 個あります。よって、500 - 300 = 200 個の数は 2, 5 のいずれも素因数として持たず、この数との和が 100 になる組み合わせ全てが互いに素になります。従って、答えは 200 個になります。
  

Posted by fussy at 18:41Comments(0)TrackBack(0)数学

2015年01月04日

正月ボケ

あっという間の正月休み。明日から仕事です。

正月明けからはダラダラと毎日過ごしていたので、明日からちゃんと仕事できるか非常に心配です。心なしか、頭の方もあまり回っていないようなので、過去にストックしておいた中で軽めの問題を解いてみました。今回は「数学問題bot」からの出題です。

-----

■ a > b > c > d > e > f を満たし a + f = b + e = c + d = 22 となるような正の整数の組 ( a, b, c, d, e, f )はいくつあるか。(10数オリ予選)

6 つの数は正値でなので a の最大値は 21 でなければなりません。よって、b の最大値は 20、c の最大値は 19 です。また、c > d を満たす c の最小値は 12 です。よって、c は 12 から 19 までの値を取りえます。
a, b, c の値が決まれば d, e, f の値は自動的に決まり、a > b > c なら必ず d > e > f が成り立つので、a, b, c の組み合わせだけ考えれば十分です。c = 19 の時は a = 21, b = 20 の組み合わせしかありません。c = 18 のとき、( a, b ) の取りうる値は

( a, b ) = ( 21, 20 ) ( 21, 19 ) ( 20, 19 )

であり、c = 17 ならば

( a, b ) = ( 21, 20 ) ( 21, 19 ) ( 20, 19 ) ( 21, 18 ) ( 20, 18 ) ( 19, 18 )

です。よくみると、一つ前に求めた組み合わせは必ず含まれ、b = c + 1 のときの組み合わせが新たに追加されていることがこの結果からわかります。前に求めた組み合わせは、c が一つ小さくなっても必ず含まれることは明らかで、しかもそれは b > c + 1 の場合全てを含みます。従って、b = c + 1 のときの組み合わせの数を計算しさえすれば、前の結果を加算することで求める答えを得ることができます。その数は、a > b = c + 1 になる場合の数であり、21 - ( c + 1 ) です。c = 16 のとき、その数は 4 であり、実際に組み合わせを求めてみると

( a, b ) = ( 21, 20 ) ( 21, 19 ) ( 20, 19 ) ( 21, 18 ) ( 20, 18 ) ( 19, 18 ) ( 21, 17 ) ( 20, 17 ) ( 19, 17 ) ( 18, 17 )

で確かに一致します。よって、組み合わせの数は

1 + ( 1 + 2 ) + ( 3 + 3 ) + ( 6 + 4 ) + ( 10 + 5 ) + ( 15 + 6 ) + ( 21 + 7 ) + ( 28 + 8 )
= 1 + 3 + 6 + 10 + 15 + 21 + 28 + 36 = 120 通り

になります。

例によって、正解である保証はありません。  

Posted by fussy at 18:55Comments(0)TrackBack(0)数学

2015年01月01日

謹賀新年

新しい年が明けました。今年は明るい年になることを願っています。

大晦日の夜は、いつものように「ガキの使い」は録画して紅白を最初に見ていました。しかし、途中で飽きてきて他の番組をチョコチョコと見ていました。NHK 教育 ( 今は「E テレ」でしたね ) で「クラシック・ハイライト 2014」というのをやっていて、ムソルグスキーの「はげ山の一夜」を聴いたのですが、実はこの曲今までちゃんと聴いたことがありませんでした。ムソルグスキー自体、EL&P の「展覧会の絵」つながりで知っている程度で他の曲は知らず、「はげ山の一夜」も名前しか知らないという程度の知識しかありませんでした。で、最初、ふーんとか思いながら聴いているうちに、ふと「トムとジェリー」の光景とこの曲がものすごくマッチすることに気がついて、その後は聴いているのが非常に楽しくなりました。全部が流れていたわけではなかったので、一度全部通して聴いてみたいものです。その理由がこんなことであるというのは置いといて。

で、また紅白に戻ったわけですが、後半では中島みゆきとサザンがよかったです。中島みゆきはオールナイトニッポンのパーソナリティをやっていた時代から結構好きでした。といっても代表曲くらいしか聴いたことはないんですが、「横恋慕」を発表した時に買ったシングル盤は今でも大事に保管してます。

さて、明日は「ガキの使い」を見ますかね。  

Posted by fussy at 01:40Comments(0)TrackBack(0)