2002年8月アーカイブ

トロメール サービス終了

| コメント(0)

9 月 10 日の夕方(17:20~17:50 の間)に打ち上げられる予定の H-IIA ロケット 3 号機の打ち上げの様子が、インターネットライブ中継されます。

DRTS・USERS/H-IIA ロケット 3 号機 カウントダウン (NASDA)

上記の打ち上げ時間帯に NHK 総合テレビで生の情報番組が放映されている地域では、テレビでも打ち上げの様子が生中継されるかも知れません。前回の打ち上げのときは、関東地方の NHK 総合テレビは生中継を交えて詳しく扱っていました。

頭の体操の途中経過

| コメント(0)

27 日の問題は、現在、1 名の方が正解されています。

Netscape Communicator 4.8

| コメント(0)

Opera 6.05

| コメント(0)

Opera 6.05(Windows 用、日本語版) (Opera Software、8 月 21 日)

Mozilla 1.1

| コメント(0)

Netscape 7.0

| コメント(0)

Netscape 7.0(Windows 用、日本語版) (Netscape、8 月 27 日)

頭の体操の答え

| コメント(0)

25 日の数列の問題の答えですが、上の解き方は答案としては冗長なので、ザキさんの簡潔な解答を紹介します。26 日に TeX 形式で作成され dvi 形式で送っていただいた解答をこちらで GIF 形式に変換したものです。公開にあたってザキさんに快諾していただきました。ありがとうございます。

ザキさんによる 25 日の数列の問題の解答 (GIF、50KB)

27 日の問題の解答も募集中です。今のところ正解者なしです。

頭の体操の解き方

| コメント(0)

数列の問題の解き方です。わりと大雑把です。

問題

数列 {a(n) ; n=0,1,2,…} を次のように定義します。一般項 a(n) (n=0,1,2,…) を求めてください。

a(0) = 0

a(1) = 3

a(2) = 2

a(n+3) = (a(n) + a(n+1))/2 (n=0,1,2,…)

この漸化式は、見た目は 3 項ですが、番号が 1 つ飛んでいるので実際は 4 項間漸化式です。

最初に 4 項間漸化式から(隣接)3 項間漸化式を作ります。

a(n+3) = a(n+1)/2 + a(n)/2

の両辺に a(n+2) + a(n+1)/2 を加えると、

a(n+3) + a(n+2) + a(n+1)/2 = a(n+2) + a(n+1) + a(n)/2

= a(2) + a(1) + a(0)/2 = 2 + 3 + 0/2 = 5

a(n+2) + a(n+1) + a(n)/2 = 5

これで 3 項間漸化式になりました。

次に 3 項間漸化式の定数項を 0 にするために変数を置換します。

a(n) = b(n) + s

とすると、

(b(n+2) + s) + (b(n+1) + s) + (b(n) + s)/2 = 5

b(n+2) + b(n+1) + b(n)/2 + 5/2*s = 5

したがって、s = 2 のとき

a(n) = b(n) + 2

b(n+2) + b(n+1) + b(n)/2 = 0

これで 3 項間漸化式の定数項が 0 になりました。

さらに 3 項間漸化式から 2 項間漸化式を作ります。

b(n+2) + b(n+1) + b(n)/2 = 0

p+q = -1, p*q = 1/2

を満たす p,q を使って

b(n+2) - (p+q)*b(n+1) + (p*q)*b(n) = 0

と表すと、

b(n+2) - p*b(n+1) = q*{b(n+1) - p*b(n)}

b(n+2) - q*b(n+1) = p*{b(n+1) - q*b(n)}

という形に変形することができます。

これで b(n+1) - p*b(n) および b(n+1) - q*b(n) に関する 2 項間漸化式ができました。

なお、

(x-p)*(x-q) = x^2 - (p+q)*x + (p*q)

ですから、p,q は 3 項間漸化式の係数を使った 2 次方程式

x^2 + x + 1/2 = 0

の 2 つの解になっています。これを特性方程式と言います。

2 項間漸化式と 3 項間漸化式を解きます。

b(n+1) - p*b(n) = q^n*{b(1) - p*b(0)}

b(n+1) - q*b(n) = p^n*{b(1) - q*b(0)}

引き算をすると、

(p-q)*b(n) = p^n*{b(1) - q*b(0)} - q^n*{b(1) - p*b(0)}

p≠q なので

b(n) = (p^n*{b(1) - q*b(0)} - q^n*{b(1)-p*b(0)}) / (p-q)

最後に p,q に実際の値を代入して問題の数列の一般項を求めます。

以下は複号同順、i は虚数単位です。

{p,q} = {-1±√(1-4*1/2)}/2 = (-1±√-1)/2 = (-1±i)/2

b(1) - {p,q}*b(0) = (3-2) - (-1±i)/2*(0-2) =±i

p-q = (-1+i)/2 - (-1-i)/2 = i

b(n) = -({(-1+i)/2}^n + {(-1-i)/2}^n)

a(n) = 2 - ({(-1+i)/2}^n + {(-1-i)/2}^n)

これで問題の数列の一般項が求まりました。

虚数単位を使いたくなければ、

{(-1±i)/2}^n = (1/√2)^n*e^(±3/4* π *n*i)

= (1/√2)^n*{cos(±3/4* π *n) + i*sin(±3/4* π *n)}

= (1/√2)^n*{cos(3/4* π *n)±i*sin(3/4* π *n)}

なので、

a(n) = 2 - (1/√2)^(n-2)*cos(3/4* π *n)

と書くこともできます。

東村山音頭

| コメント(0)

先日、近所の神社で祭りがありました。祭りを見に行ったわけではないのですが、昼過ぎに神社の前を通ったときには既に人が集まっていて、大音量のスピーカから東村山音頭(1964 年の三橋美智也バージョン)などが流れていました。毎年のことですが、祭りで使われる東村山音頭の再生環境はへたりすぎです。頻繁に回転速度が落ちて音程が外れて聴くに堪えません。もしかしたら、1976 年以降に志村けんがテレビ番組で志村けんバージョンを歌うよりもずっと前から同じ再生環境を使い続けているのかも。

参考

日本の民謡 曲目解説<東京都> (暁洲舎)

東村山音頭の歴史とパラパラ誕生まで (東村山音頭祭り実行委員会)

頭の体操

| コメント(0)

n が自然数ならば 27^(2^(n+2))*(2^(n+4)+1)-(2^(n+7)+1) は 2^(n+8) で割り切れることを証明してください。

潰瘍性大腸炎関連

| コメント(0)

骨髄移植が潰瘍性大腸炎やクローン病などの難病治療に役立つ可能性があるという記事が出ていました。この記事の内容は炎症が修復される可能性があるというだけで免疫異常説との関連については触れられておらず、骨髄移植が潰瘍性大腸炎の根本的な治療方法になり得る可能性があるのかどうかはよくわかりません。

骨髄幹細胞:胃腸の炎症修復 医科歯科大、慶大チーム確認 (Mainichi INTERACTIVE、8 月 26 日)

頭の体操

| コメント(0)

数列 {a(n) ; n=0,1,2,…} を次のように定義します。一般項 a(n) (n=0,1,2,…) を求めてください。

a(0) = 0

a(1) = 3

a(2) = 2

a(n+3) = (a(n) + a(n+1))/2 (n=0,1,2,…)

頭の体操の答え

| コメント(0)

2 乗して 139 倍して 1 を加えると平方数になるような自然数を探す方法について。プログラムを書いて力任せに解く方法は以前紹介しましたので、ここでは筆算でも計算できる程度の計算量で解く方法を考えてみます。

題意を満たす自然数を x とすると、y も自然数として

139*x^2+1 = y^2

と書くことができます。両辺を x^2 で割ると

139+1/x^2 = y^2/x^2

となりますが、1/x^2≦1 なので

√139≒y/x

であることがわかります。この式を見ると、√139 に近い分数(有理数)をたくさん用意してそれらの分母として現れた自然数の中から題意を満たすものを探せば効率よく見つけることができるのではないかと考えられます。

平方数ではない自然数の平方根に近い有理数を見つける手っ取り早い方法は、連分数展開することです。例えば√2 は

√2 = 1+1/(√2+1)

と書くことができますが、左辺の√2 に等しい右辺の全体を右辺の√2 に代入すると

√2 = 1+1/(2+1/(√2+1))

√2 = 1+1/(2+1/(2+1/(√2+1)))

√2 = 1+1/(2+1/(2+1/(2+1/(√2+1))))

√2 = 1+1/(2+1/(2+1/(2+1/(2+1/(√2+1)))))

のように延々と続けることができます。このように分子が 1 の分数を分母に繋げて書くことを連分数展開と言います。連分数展開を途中で打ち切れば、いくらでも精度の高い√2 の近似有理数が得られます。

√2≒1+1/2 = 3/2 = 1.5

√2≒1+1/(2+1/2) = 9/5 = 1.4

√2≒1+1/(2+1/(2+1/2)) = 17/12 = 1.41666…

√2≒1+1/(2+1/(2+1/(2+1/2))) = 41/29 = 1.41379…

√2≒1+1/(2+1/(2+1/(2+1/(2+1/2)))) = 99/70 = 1.41428…

これと同じ要領で、√139 を連分数展開します。以下、a を超えない最大の整数を [a] と書きます。連分数も冗長なので、a+1/(b+1/(c…+1/z)) を {a,b,c,…,z} と書くことにします。

[√139] = 11, 1/(√139-11) = (√139+11)/18

[(√139+11)/18] = 1, 1/((√139+11)/18-1) = (√139+7)/5

[(√139+7)/5] = 3, 1/((√139+7)/5-3) = (√139+8)/15

[(√139+8)/15] = 1, 1/((√139+8)/15-1) = (√139+7)/6

[(√139+7)/6] = 3, 1/((√139+7)/6-3) = (√139+11)/3

[(√139+11)/3] = 7, 1/((√139+11)/3-7) = (√139+10)/13

[(√139+10)/13] = 1, 1/((√139+10)/13-1) = (√139+3)/10

[(√139+3)/10] = 1, 1/((√139+3)/10-1) = (√139+7)/9

[(√139+7)/9] = 2, 1/((√139+7)/9-2) = (√139+11)/2

[(√139+11)/2] = 11, 1/((√139+11)/2-11) = (√139+11)/9

[(√139+11)/9] = 2, 1/((√139+11)/9-2) = (√139+7)/10

[(√139+7)/10] = 1, 1/((√139+7)/10-1) = (√139+3)/13

[(√139+3)/13] = 1, 1/((√139+3)/13-1) = (√139+10)/3

[(√139+10)/3] = 7, 1/((√139+10)/3-7) = (√139+11)/6

[(√139+11)/6] = 3, 1/((√139+11)/6-3) = (√139+7)/15

[(√139+7)/15] = 1, 1/((√139+7)/15-1) = (√139+8)/5

[(√139+8)/5] = 3, 1/((√139+8)/5-3) = (√139+7)/18

[(√139+7)/18] = 1, 1/((√139+7)/18-1) =√139+11

分母が 1 になったので先頭に戻って

√139 = {11,<1,3,1,3,7,1,1,2,11,2,1,1,7,3,1,3,1,22>,…}(<~> が循環する)

となります。途中で打ち切った場合の有理数を計算して題意を満たしているかどうか調べます。

{11,1} = 12/1, 12^2-139*1^2 = 5

{11,1,3} = 47/4, 47^2-139*4^2 = -15

{11,1,3,1} = 59/5, 59^2-139*5^2 = 6

{11,1,3,1,3} = 224/19, 224^2-139*19^2 = -3

{11,1,3,1,3,7} = 1627/138, 1627^2-139*138^2 = 13

{11,1,3,1,3,7,1} = 1851/157, 1851^2-139*157^2 = -10

{11,1,3,1,3,7,1,1} = 3478/295, 3478^2-139*295^2 = 9

{11,1,3,1,3,7,1,1,2} = 8807/747, 8807^2-139*747^2 = -2

{11,1,3,1,3,7,1,1,2,11} = 100355/8512, 100355^2-139*8512^2 = 9

{11,1,3,1,3,7,1,1,2,11,2} = 209517/17771, 209517^2-139*17771^2 = -10

{11,1,3,1,3,7,1,1,2,11,2,1} = 309872/26283, 309872^2-139*26283^2 = 13

{11,1,3,1,3,7,1,1,2,11,2,1,1} = 519389/44054, 519389^2-139*44054^2 = -3

{11,1,3,1,3,7,1,1,2,11,2,1,1,7} = 3945595/334661, 3945595^2-139*334661^2 = 6

{11,1,3,1,3,7,1,1,2,11,2,1,1,7,3} = 12356174/1048037, 12356174^2-139*1048037^2 = -15

{11,1,3,1,3,7,1,1,2,11,2,1,1,7,3,1} = 16301769/1382698, 16301769^2-139*1382698^2 = 5

{11,1,3,1,3,7,1,1,2,11,2,1,1,7,3,1,3} = 61261481/5196131, 61261481^2-139*5196131^2 = -18

{11,1,3,1,3,7,1,1,2,11,2,1,1,7,3,1,3,1} = 77563250/6578829, 77563250^2-139*6578829^2 = 1

これで答えが見つかりました。

139*6578829^2+1 = 77563250^2

なので、6578829 は 2 乗して 139 倍して 1 を加えると平方数になる自然数です。

実際には分母が 1 になった段階で打ち切れば自動的にそこが答えになるので、それよりも手前で打ち切った場合の有理数について題意を満たしているかどうか調べる必要はありません。また、循環する部分が必ず前後対称になるという性質を利用すると、さらに計算量を減らすことができます。他にも、この手の問題はこの方法で必ず解が見つかることや、この方法で見つかる解が必ず最小解であることなどが知られていますが、証明が面倒なのでここではそこまで考えていません。

m を平方数でない自然数として x^2-m*y^2=±1 を満たす自然数 x,y を求める問題は、一般に「ペル方程式」と呼ばれています。

WinX68k 高速版 v0.68

| コメント(0)

tamu さんによる WinX68k 高速版の v0.68 が公開されました。

WinX68k 高速版 /WinX68030 の部屋

パズルの答え

| コメント(0)

閉路の問題の答えです。

通れる壁が 2 つしかないマスを通る道は 1 本しかない。

全体で 1 本の道にしなければならないので、通ると局所的なループができてしまう場所には通れない壁ができる。

空いている場所に出入りする道の本数は必ず偶数になる。

などの特徴を利用して理詰めで解いてゆくと、次のようになります。

左上に 2 箇所空いている場所があり、そこを繋ぐ組み合わせが 5 通りあるので、答えは全部で 5 通りです。

その後

| コメント(0)

思いのほか多くの方から反響をいただきました。ありがとうございます。体調悪化の直接的な原因になっていた仕事からは完全に手を引きました。ご心配をお掛けしました。

あぅ

| コメント(0)

潰瘍性大腸炎の治療のために大腸を摘出する腹腔鏡手術の手術中にトロッカーで腹部大動脈を傷つけられた患者が大量出血で亡くなったとのこと。

大腸の手術中、大量出血で患者死亡 名大病院 (asahi.com、8 月 20 日)

手術は嫌だよぅ。

団体さんお断り

| コメント(0)

お盆休みが終わったからか、Klez.H の団体さんが…。

SCD.X のバグ

| コメント(0)

立花えり子さん より。SCD.X(X68k 用のデバッガの 1 つ)でビットフィールドオペランドの offset と width にデータレジスタを指定するとアセンブルできない件ですが、正確に言うと BFSET (A0){D0:16} はアセンブルできます。しかし、bfset (a0){d0:16} と書くとアセンブルできません。これは、ビットフィールドオペランドにデータレジスタが指定されたかどうかを判定する部分で「アルファベットを大文字化せずに 'D' と比較しているので 'd' だと一致しない」というありがちなバグです。

とりあえず手元にある scd060.x は修正完了しました。

近況とか

| コメント(0)

最近の体調は、日記をほぼ毎日更新できるくらいすこぶる元気です……と言いたいところですが、日記を書いている時間を除くと横になっている時間のほうが長い今日この頃です。

現在引き受けている仕事(休止中)は、(1) やってみたい仕事だった、(2) 私の過去の仕事を理解した上で私にできる最高のものを求めて打診してくれたのだと思った、(3) 自分の能力ならば体調の悪さを差し引いてもできるだろうと思った、などの理由(ほとんど私の勝手な思い込み)で、収入にならないことを承知で二つ返事で引き受けてしまったものです。しかしそれは私の能力を求めて打診されたのではなくて単に他にやる人がいなかったから私のところに回って来ただけで、意地を張って自分の能力を示そうとしたものの体力と技術力の低下で自分ができると思っていたことさえも思うようにできず、結果的に無理をして体調を大きく崩すことになりました。

さらにその後、収入にならないことがわかっている仕事ということもあって体調の回復を待って万全の状態でゆっくり再開する意思を雇い主に伝えたつもりだったのですが、あいにく体調が回復する前に再びプレッシャーをかけられ、現在はストレスでますます体調を悪くしています。仕事のできない下請けに対してその理由に関係なく相手の非を指摘してプレッシャーをかける雇い主というのは一般的には珍しくないと思いますが、病気に関する自己管理には自信があっただけに、このような状況になることを回避できなかった(というよりもむしろ自ら陥った)自分が情けないです。

というわけで、私がどれくらい役立たずなのかを暴露してしまいましたが、もしかしたら誰かの役に立っているかも知れない日記は書き続けるつもりです。よろしければこれからもお付き合いくださいませ。

訂正

| コメント(0)

8 月 16 日の日記に書いたプログラムの sqrt_ull() の部分が一般の引数に対して正しく動作しない場合があったので修正しました。

メモ

(r+n/r)/2 =√(n+((n-r^2)/(2r))^2) >√n

『アリーテ姫』DVD 化決定!

| コメント(0)

『アリーテ姫』の DVD の発売が年末(12 月 21 日ごろ)に決定したそうです。(from アニオタニュース

「とうとう来たか」って感じ。まだ観ていない人は、可能ならば劇場で観てから DVD を買いましょう(11 月 8 日から VHS のレンタルもあり)。

アリーテ姫 = PRINCESS ARETE = … 公式ページ。DVD 関連情報あり。

パズル

| コメント(0)

図の中の白いマスを上下左右に辿り、すべての白いマスを 1 回ずつ通って元の場所に戻ってきてください。簡単なので制限時間は 3 分。

例題
 → 
問題1

住民票コード

| コメント(0)

住民票コードがきょう送られてきました。住民基本台帳法が施行されたのは 8 月 5 日ですから、通知が遅いような気がします。11 桁あるので、とりあえず素因数分解してみたり……しまった、分解しても結果を公表できないんだった。

力任せに解いてみる

| コメント(0)

2 乗して 139 倍して 1 を加えると平方数になるような自然数を探すプログラムの例です。139*x^2+1 が平方数になるような x を 1,2,3,…の順に探しているだけなので問題の解き方としては何の工夫もありませんが、小技を使って高速化している部分があるので興味のある人は読んでみてください。Pentium!!! 1GHz で解が見つかるまでの所要時間は 1.452 秒でした。

-
#include <stdio.h>
#include <time.h>

//下5ビットが0,1,4,9,16,17,25でなければ平方数ではない
#define SQUARE_NUMBER_PRE_TEST(n) \
  (((1<<0)|(1<<1)|(1<<4)|(1<<9)|(1<<16)|(1<<17)|(1<<25)) & (1 << ((n) & 31)))

//unsigned long long nの平方根を超えない最大の整数を返す
inline static unsigned long sqrt_ull(unsigned long long n) {
  unsigned long long r, t;
  if (!n) return 0;  //√0=0
  r = t = n;
  while (t >>= 2) {  //√n以上でなるべく小さい数を初期値として
    r >>= 1;
  }
  while ((t = (r + n / r) >> 1) < r) {  //Newton法で2次収束させる
    r = t;
  }
  return (unsigned long)r;
}

//139*x^2+1=y^2の自然数解を探す
int main(int argc, char *argv[]) {
  unsigned long x, y;
  const unsigned long limit = sqrt_ull(((unsigned long long)(-1)-1)/139);  //計算可能な上限
  clock_t tm0, tm1;
  { clock_t t = clock(); while ((tm0 = clock()) == t); }  //計測開始

  for (x = 1; x <= limit; x++) {  //x=1,2,3…の順に探索する
    unsigned long long y2 = (unsigned long long)x * x * 139 + 1;  //y2=139*x^2+1
    if (!SQUARE_NUMBER_PRE_TEST(y2)) continue;  //y2が平方数でなければ次のxへ
    y = sqrt_ull(y2);  //y2の平方根を超えない最大の整数を求める
    if ((unsigned long long)y * y == y2) break;  //y2が平方数ならば終了
  }

  tm1 = clock();  //計測終了
  if (x <= limit) {  //解が見つかったときはそれを表示する
    printf("139 * %u^2 + 1 = %u^2\n", x, y);
  }
  printf("%.8g sec.\n", ((double)(tm1 - tm0)) / CLK_TCK);  //所要時間を表示
  return 0;
}

(2002.08.18) sqrt_ull() を修正しました。

割り算

| コメント(0)

ゆいさん より、割り算ルーチン。

こんな感じかなぁ…。

-
static unsigned long user_div(unsigned long a, unsigned long b) {
  unsigned long ret, mul;
  if (a < b) return 0;
  if (!b) return (unsigned long)(-1);
  mul = 1;
  while ((unsigned long)(a - b) >= b) {
    b += b;
    mul += mul;
  }
  a -= b;
  ret = mul;
  while (mul >>= 1) {
    b >>= 1;
    if (a < b) continue;
    a -= b;
    ret += mul;
  }
  return ret;
}

8 月 15 日

| コメント(0)

終戦記念日。

伝統的七夕。処暑の直前の新月の時刻を含む日から数えて 7 日目。

伝統的七夕 (国立天文台)。

Win 機と X68k のシリアルポート同士を直結してファイルを転送する場合は、ZMODEM の使える ZM.X (作者:T.Tamaki さん、S.Yamada さん)がお勧めです。しかし、ZM.X 自身を Win 機から X68k へ持って行く手段がない場合が考えられます。X68k と Windows 環境でデータをやりとりする方法 に他の方法がいろいろ書いてありますが、シリアルポート以外に有効な経路がない場合はどうにかして通信ソフトを使わずに通信ソフトを転送しなければなりません。

テキストファイルならば末尾に 0x1a を付けておけば

COPY AUX ファイル名

で受信できるのですが、この方法はファイルの途中に 0x1a が混ざっているとそこで受信が終了してしまうのでバイナリファイルの転送には使えません。(/B スイッチを付けてもダメ)

以前、標準の Human68k のシステムディスクにはシリアルポートからバイナリファイルを受信できるコマンドが見当たらなかったので、バイナリファイルを受信するための簡単な通信プログラムを書いたことがあります。エラーチェックなど一切しない手抜きなプログラムですが、一応役に立ったので紹介します。

X68k を Human68k v3 のシステムディスクで起動したら、

ED.x receive.bas

でエディタを起動し、以下のプログラムを入力して receive.bas の名前でセーブしておきます。

-
str fn
int fs,fo,fi,s
dim char w(4096)
input "filename = ";fn
input "filesize = ";fs
fo=fopen(fn,"c")
fi=fopen("aux","r")
print fs;chr$(5);chr$(13);
while fs>0
if fs>4096 then s=4096 else s=fs
s=fread(w,s,fi)
fwrite(w,s,fo)
fs=fs-s
print fs;chr$(5);chr$(13);
endwhile
print
fclose(fi)
fclose(fo)
end

このプログラムを使った実際の通信手順は以下の通りです。

まず、Win 機のシリアルポート(COM1)と X68k の RS-232C ポートをクロスケーブル(リバースケーブル)で直結します。

X68k 側で

SPEED.x

で「ボーレート :9600bps、データ長 :8、パリティ : なし、ストップ :1、フロー制御 :RTS」に設定します。次に

BASIC.x

で X-BASIC を起動し、

lo.@"receive.bas"

と入力して上のプログラムを読み込んで

run

で実行します。

filename = ? 受信するファイル名

filesize = ? 受信するファイルサイズ(正確なバイト数)

をそれぞれ入力すると受信が始まります。ディスクフルなどのエラーチェックはしていないので注意してください。

Win 機側は Tera Term Pro ver. 2.3 for Windows 95/NT (作者:T.Teranishi さん)を起動します。Setup→Serial port で「Port:COM1、Baud rate:9600、Data:8 bit、Parity:none、Stop:1 bit、Flow control:hardware」に設定し、File→Send file で Option Binary のチェックを入れてから送信するファイルを開くと送信が始まります。

X68k 側で受信を始めてから Win 機側で送信を始めなければなりません。なお、送信するファイルをあらかじめ LHA で圧縮しておくと、展開するときにファイルの内容が壊れていないかどうか確認することができます。その場合、受信側でファイルを展開するために同じ手順で LHA.x を転送する必要があります。

頭の体操

| コメント(0)

2 乗して 139 倍して 1 を加えると平方数になるような自然数を探してください。

ペルセウス座流星群

| コメント(0)

残念ながら曇っていたので、昨夜は流星どころか星も見えませんでした。

xyzzy 0.2.2.229

| コメント(0)

xyzzy 0.2.2.229 が公開されました。

素数判別アルゴリズム

| コメント(0)

インド工科大学の研究グループが新しい素数判別アルゴリズムを開発したとのこと。簡潔な論文が公開されているのでチェキ。

素数判別アルゴリズムを開発 インド (CNN.co.jp、8 月 12 日)

PRIMES is in P (インド工科大学、8 月 6 日)

8 月 12 日

| コメント(0)

航空安全の日。520 人が犠牲になった日航ジャンボ機墜落事故から 17 年。1985 年 8 月 12 日、18 時 12 分に東京・羽田を離陸して大阪・伊丹へ向かっていた日本航空 123 便ボーイング 747 型機が、18 時 56 分に群馬県の御巣鷹山に墜落しました。18 時 24 分に相模湾上空で油圧システムが損傷を受けてから墜落するまでの 30 分間、エンジン出力の調整によって必死に機体を制御し続けたパイロットや状況を知った乗客と乗員の心中は察するに余りあります。

スペースシャトル・エンタープライズが 5 分 21 秒間の初飛行を成功させてから 25 年。1977 年 8 月 12 日、エンタープライズはボーイング 747 の背中に乗せられて飛び立ち、空中で切り離され、目標地点まで姿勢をコントロールしながら滑空して着陸することに成功しました。エンタープライズはスペースシャトルのプロトタイプであり、宇宙へは行っていません。印象深い名前を付けられながら、人々に忘れ去られてしまう運命でした。

25th anniversary of first space shuttle landing test (Spaceflight Now、8 月 11 日)

ペルセウス座流星群が極大。

今年のペルセウス座流星群 (国立天文台・天文ニュース)

WinX68k 高速版 v0.61

| コメント(0)

tamu さんによる WinX68k 高速版 v0.61 が公開されました。

ペルセウス座流星群

| コメント(0)

明日 12 日の晩から 13 日の未明にかけて、ペルセウス座流星群が極大を迎えます。今年は月のない星空になるので、晴れていればよく見えるはずです。

今年のペルセウス座流星群 (国立天文台・天文ニュース)

60 万ビジット御礼

| コメント(0)

夏休み、特にお盆の前後はインターネット人口が減ってしまうのですが、無事に 60 万ビジットを迎えることができました。いつもたくさんのアクセスをありがとうございます。これからもよろしくお願いいたします。

地球の夜景

| コメント(0)

人工衛星から見た、夜の側の地球の写真を繋ぎ合わせた画像。

Earth at Night (NASA - APOD、8 月 10 日)

以前紹介した BlueMarble の写真と同じかもと思ったら、微妙に違うみたい。

EO News: NASA Olympics Blue Marble Release: February 6, 2002 (NASA - Earth Observatory、2 月 6 日)

自宅のサブマシン(Windows 2000 Professional)に Windows 2000 Service Pack 3 日本語版 (以下、SP3)をインストールしたところ、シャットダウンしようとしたときにフルスクリーンの青い画面に次のようなエラーメッセージが表示されて電源が切れなくなってしまいました。

-*** STOP: 0x0000009F (0x00000002,0x81F20930,0x81F21410,0x00000000)
DRIVER_POWER_STATE_FAILURE
Beginning dump of physical memory
Physical memory dump complete. Contact your system administrator or
technical support group.

強制的に電源を落として繰り返してみましたが、状況が変わりません。試しに SP3 をアンインストールしたところ、問題なくシャットダウンできるようになりました。さらにもう 1 度 SP3 をインストールしてみたら、また同じエラーが出てシャットダウンできなくなりました。仕方がないのでもう 1 度アンインストールして元に戻しました。こんな症状が出るのはうちのマシンだけでしょうか。(うちのマシンの環境について詳しいことはここには書きません)

マイクロソフト サポート技術情報 - Q246243 (Microsoft)によると、STOP 0x9F が出る原因は「This behavior occurs when drivers do not handle power state transition requests properly.」とのこと。エラーメッセージを検索して見つけた他のサイトの情報も総合すると、一般的には Windows 2000 に対応していないソフトウェアをインストールしたときにこのエラーが出るようになるらしいです。それがどうして SP3 をインストールすると出るようになるのか、謎です。

特に使用頻度が高いものをピックアップしてみました。作者さんに感謝。

xyzzy 0.2.2.228(亀井さん)。愛用のテキストエディタ。この日記も C や Java のプログラムも全部これで書いている。

AltIME 3.11(CHOMBO さん)。キーボードユーティリティ。左 Ctrl⇔Caps Lock、ESC⇔半角 / 全角、右 Alt⇔カタカナひらがなの入れ換えと、IME の起動キーを変更するために利用している。

FFFTP 1.89b(曽田さん)。FTP クライアント。ホームページの更新のために毎日利用している。

Lhasa 0.17a(竹村さん)。LHa と Zip の解凍ツール。ダウンロードしてきた *.lzh や *.zip のアーカイブを解凍するときに毎回利用している。拡張子に関連付けているので Lhasa で解凍していることを意識することはほとんどないけど。

Cygwin (Red Hat)。Windows で UNIX 用のソフトを動くようにしたもの一式。主に gcc を利用している。フラクタル画像を作ったりパズルを力任せに解いたりするときは xyzzy で C のプログラムをちょこちょこ書いて xyzzy の *Shell* バッファで Cygwin の gcc を起動してコンパイルしてその場で実行。時間のかかるプログラムは Cygwin ウインドウのほうでバックグラウンドで動かしてほったらかす。

窓の手 6.01(猪川さん)。Windows で普通の方法では設定が面倒なところをあちこちいじれるソフト。RealTray を自動実行から追い出したいときや、右クリックメニューに「別ウインドウで開く」が出てくるように設定したりするために利用している。

ThroughClock 1.78(ハマたろうさん)。文字盤が透明なデスクトップ用のアナログ時計。NTP サーバに接続して内蔵時計を正しい時刻に合わせる機能も付いている。

POV-Ray 3.5(Persistence of Vision Development Team)。レイトレソフト。本格的な CG も作れるのにフリーウェア。本格的な CG も作れるのに手っ取り早く綺麗な画像を得る目的で利用しているダメな私。頭の体操のレイトレ画像はこれで作っている。

Google ツールバーのバージョン 1.1.58 およびそれ以前のバージョンにセキュリティホールが存在するそうです。Google は報告を受けて直ちに修正し、現在の最新版はバージョン 1.1.60 になっています。Google ツールバー自身の自動更新機能によってほとんどのユーザは何もしなくても大丈夫とのことですが、Google ツールバーを利用している人は念のため Google ツールバーのバージョンを確認し、バージョンが 1.1.58 またはそれ以前になっている場合は更新(一旦アンインストールしてから再インストール)することをお勧めします。

Exploiting the Google toolbar (GreyMagic Software、8 月 8 日)

Google ツールバー (Google)

8 月 9 日

| コメント(0)

長崎原爆の日、長崎原爆忌。

NGC 300

| コメント(0)

ちょうこくしつ座にある渦状銀河。地球からの距離はおよそ 700 万光年。ESO(欧州南天天文台)のサイトで大きい画像が公開されています。例によってデスクトップの背景に利用するといい感じかも。

A Portrait of One Hundred Thousand and One Galaxies (ESO、8 月 7 日)

夏休み特別企画(うそ)

| コメント(0)

漢字の書き取り

1. テイ 気圧の中心

2. 誤りを テイ 正する

3. レポート テイ

4. テイ 察衛星

5. 裁判所の法 テイ

6. 師 テイ 関係

7. テイ 防決壊

8. テイ 寧な挨拶

9. 文章の テイ

10. 電気 テイ

11. 海 テイ 遺跡

12. 大 テイ

13. 大 テイ

14. 旅行の日 テイ

15. バスの テイ 留所

16. テイ 額預金

17. テイ 主関白

18. 馬 テイ 形磁石

19. 疑問を テイ する

20. 巡視 テイ

21. 条約 テイ

22. ローマ テイ

Klez.H

| コメント(0)

新潟近辺で NTT と @nifty を経由してインターネットに接続している誰かさんが大量の Klez.H ウイルスメールをばら撒いている模様。From が私のメールアドレスに偽装されていてエラーまたは排除されて私のところに転送されてきたものが、8 月に入ってからきのうまでに 5 通、今朝は 10 時間ほどの間に 32 通。

午後 6 時までの 18 時間で 42 通。

頭の体操の答え

| コメント(0)

次の 50 桁の数が素数ではないことを証明する問題でした。

(2^178+1)/5/1069 = 71678930816926513487294061138929335061680969232161

答え

2^178 + 1 = (2^89 + 1)^2 - 2×2^89

= (2^89 + 1)^2 - 2^90

= (2^89 + 1)^2 - (2^45)^2

= ((2^89 + 1) - 2^45)×((2^89 + 1) + 2^45)

∴2^178 + 1 = (2^89 - 2^45 + 1)×(2^89 + 2^45 + 1)

ここで、

2^89 - 2^45 + 1<2^89 + 2^45 + 1<2^90 = 10^(90×log10(2)) = 10^27.09… <10^28

したがって、2^178+1 は高々 28 桁までの素数の積に分解することができます。

問題の 50 桁の数は 2^178+1 の約数であり、もしもこの数が素数だとすると素因数分解の一意性に反することになるので、問題の 50 桁の数は素数ではあり得ません。

SEND+MORE=MONEY

| コメント(0)

掲示板で 広井さん にいただいた覆面算の問題です。Prolog のプログラムで解く方法が広井さんのページの Memorandum で紹介されていますので、ここでは手で解いてみます。

-
  SEND
+ MORE
──────
 MONEY

まず、10000≦MONEY≦9999+9999=19998 より、M=1 が確定します。

10000≦10000+ONEY≦9999+1999=11998 より、O は 0 または 1 ですが、1 は使用済みなので、O=0 が確定します。

100 の位を見ると、E+0=N では E=N になってしまうので、10 の位からの繰り上がりが必要です。0 と 1 は使用済みなので、E+1=N≦9 となります。

100 の位からの繰り上がりがないので、S+1=10 となって、S=9 が確定します。

1 の位からの繰り上がりを c と書きます。c は 0 または 1 で、D+E=10*c+Y です。

10 の位と 100 の位に注目すると、100 の位からの繰り上がりがないので、EN+R+c=NE です。これを E+1=N を使って整理します。

EN+R+c=NE

10*E+N+R+c=10*N+E

10*E+(E+1)+R+c=10*(E+1)+E

11*E+1+R+c=11*E+10

R+c=9

9 は使用済みなので、R=8、c=1 が確定します。

0 と 1 は使用済みなので、2≦Y、12≦10+Y=D+E です。

E+1=N かつ 12≦D+E で、8 と 9 は使用済みなので、5≦E≦6、6≦N≦7、6≦D≦7 でなければなりません。E=6 とすると N=7 となって D が入る余地がなくなってしまうので、E=5、N=6、D=7、Y=2 がそれぞれ確定します。

-
  9567
+ 1085
──────
 10652

素因数分解

| コメント(0)

つちやさん より、50 桁の数の素因数分解に使用されたソフトはこちらだそうです。

素因数分解 Windows95 のコンソールモードで動作する素因数分解プログラム (Vector)

P3 600MHz で 1 分かからなかったとのこと。うちでも試してみたところ、P3 1GHz で 19.6 秒でした。

上記のプログラムはρ法、p-1 法、楕円曲線法、複数多項式 2 次ふるい法を順に実行するのですが、複数多項式 2 次ふるい法の部分だけを実行する PPMPQS Ver 2.71(作者は同じ苫米地聰(Satoshi Tomabechi)氏)を使用したところ、P3 1GHz で 5.38 秒で分解できました。やはり、それなりのプログラムを使えば 50 桁くらいは楽勝みたい。

参考ページ

数学者の密室

よし、今度はもっとデッカイ数にしよう。

頭の体操の答え?

| コメント(0)

つちやさん より、問題の 50 桁の数を素因数分解した結果。

(2^178+1)/5/1069 = 71678930816926513487294061138929335061680969232161

= 579017791994999956106149 * 123794003928545064364330189

正しく分解できていますので、この数が素数ではないことの証明としては正解です。でも、どうやって分解されたのかちょっぴり気になります。24 桁の素数と 27 桁の素数の積という、力任せには分解しにくい数を選んだつもりだったのですが……最近の速い PC とそれなりのプログラムを使えば 50 桁くらいは楽勝だったかな?

紙と鉛筆だけで解けた(この 50 桁の数が素数であるはずがないと確信できた)人は掲示板へどうぞ。

8 月 6 日

| コメント(0)

広島平和記念日、広島原爆忌。

ハム太郎の誕生日。

ハム太郎とっとこむ

頭の体操

| コメント(0)

次の数は 10 進数で 50 桁あります。この数が素数ではないことを証明してください。

(2^178+1)/5/1069 = 71678930816926513487294061138929335061680969232161

天気

| コメント(0)

家の付近では午後 2 時頃から 3 時近くまで空が真っ暗になって激しい雷雨が続きました。これほど激しい雷雨は久しぶりです。雷雲が近かったので ADSL モデムを回線から切り離し、PC もコンセントから抜いて待機していましたが、幸い直近への落雷や停電はなかったようです。

ThroughClock Ver 1.78

| コメント(0)

ハマたろうさんの ThroughClock Ver 1.78 が公開されました。

ハマたろうの部屋

Nereid 関連

| コメント(0)

NetBSD/x68k が Nereid(1 枚目)に対応。

NetBSD/x68k

小惑星 2002 NT7

| コメント(0)

小惑星 2002 NT7 の軌道予測の精度がさらに上がり、今後 100 年以内に 2002 NT7 が地球に衝突する可能性がすべて否定されました。2060 年 2 月 1 日の衝突の可能性もなくなりました。

Near Earth Object Program (NASA - JPL、8 月 1 日)

NEOs Removed from Impact Risks Tables (NASA - JPL、8 月 1 日)

ゴメスのハンバーガー

| コメント(0)

ハッブル宇宙望遠鏡によって 2002 年 2 月 22 日に撮影された双極性星雲 IRAS 18059-3211(通称:ゴメスのハンバーガー)の 拡大写真(JPEG、392KB) (STScI)。ダストと光のコントラストで形作られたこの奇妙な天体は いて座の方向にあり、明るさは 14.5 等、地球からの距離は 6500 光年。南米のチリにあるセロ・トロロ天文台(CTIO)の天文学者アーチュロー・ゴメス氏が撮影した写真で初めて発見されたのだそうです。今後 1000 年以内に美しい惑星状星雲に成長するだろうと予測されています。

Hubble Astronomers Feast on an Interstellar Hamburger (STScI、8 月 1 日)

Want Fries With That? Hubble Photographs Space Hamburger (SPACE.com、8 月 1 日)

宇宙に浮かぶ「ゴメスのハンバーガー」 (アストロアーツ、8 月 2 日)

スペースシャトル

| コメント(0)

スペースシャトルの修理が終わり、今後の打ち上げスケジュールが決まり始めたようです。次の打ち上げはアトランティスで今のところ 9 月 28 日の予定とのこと。また、近年は毎年 11 月 19 日に極大を迎えるしし座流星群の出現時期を避けてスペースシャトルの打ち上げスケジュールが組まれていましたが、今年はしし座流星群の時期に関係なくスケジュールを組むようです。流星とスペースシャトルが同時に見えると面白そうですが、そう都合よくいくものでもないので期待しないでおきましょう。

Shuttle repair approved; next launch Sept. 28 (Spaceflight Now、8 月 1 日)

頭の体操の答え

| コメント(0)

虫食い算の「孤独の 7」(Lonely 7)の解き方と答えです。

-
       □7□□□
   ┌────────
□□□│□□□□□□□□
    □□□□ ←4桁なので、1000≦除数×(商の10000の位)
    ─────
      □□□
      □□□ ←3桁-3桁が3桁あるので、除数×7≦899
      ────
      □□□□
       □□□ ←4桁-3桁が2桁しかないので、901≦除数×(商の100の位)≦999
      ──────
        □□□□ ←2桁下ろしているので、(商の10の位)=0
        □□□□ ←4桁なので、1000≦除数×(商の1の位)
        ────
           0

7<(商の100の位)<(商の10000の位),(商の1の位)≦9となるので、
(商の100の位)=8、(商の10000の位)=(商の1の位)=9

       97809
   ┌────────
□□□│□□□□□□□□
    □□□□
    ─────
      □□□
      □□□
      ────
      □□□□ ←除数×809が6桁あるので、124≦除数
       □□□ ←除数×8が3桁しかないので、除数≦124
      ──────
        □□□□
        □□□□
        ────
           0

124≦除数≦124ということは、除数=124
被除数=除数×商=124×97809=12128316

       97809
   ┌────────
124│12128316
    1116
    ─────
      968
      868
      ────
      1003
       992
      ──────
        1116
        1116
        ────
           0

このアーカイブについて

このページには、2002年8月に書かれた記事が新しい順に公開されています。

前のアーカイブは2002年7月です。

次のアーカイブは2002年9月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 6.3.3