すのものの「いろいろ」(その187)

きょうの補筆箇所

2009-01-21 (3) 01:30:11 +0900

百人一首は、名人でも音節単位で聞いているのだろうか

「む」で始まるのは「村雨の〜」しかない、なんていうのは私でも知っている。 でも、名人だったら、「む」全体を聞く前に、 最初の子音が m とわかった時点で、 この歌を含む、 マ行で始まる歌に絞り込むことができても不思議はないような気がする。

2009-01-21 (3) 01:26:31 +0900

私は中学生のとき以来、直線はフリーハンドで書くのを原則としている

1日づけ朝日新聞大阪本社版別冊(?)「学ぶ楽しさ」。 立命館小学校副校長の陰山英男さんがノートの書き方として 《線を引く時は定規を使い、まっすぐに》と書いている。

私も、小学生のときまではそうしていた。 演算子の「+」も定規で書いていたような記憶がある。 しかし、中学にはいって、 幾何の先生から「定規なしで書けなければだめだ」と言われて以来、 フリーハンドで書くようにしている。

その先生があげられた理由はこうである。 背理法で証明する際、 たとえば二点を通る直線が二本あることになり矛盾、 と議論するが、そういう図は定規では書けない。 本当は曲がった線を書いて、 それを直線だと思って議論できるようでなければならない、 というものだったと思う。

2009-01-21 (3) 01:20:03 +0900

丑年生まれが十二支別で三位とはちょっと意外。なぜ?

1日づけ朝日新聞大阪本社版「丑年生まれ 1082万人」の記事。 《十二支別では、子年生まれ(1170万人)、 亥年生まれ(1153万人)に次いで多い》 とあるのが意外だった。子年は去年、亥年はおととしだから、 その年に生まれた子が含まれるわけで、多いのは理解できる。 それに次ぐというのはなぜだろう? 1949年生まれの団塊世代》が含まれるため?

2009-01-21 (3) 01:11:17 +0900

朝日新聞>「顔がやけどし」って言うか?

3日づけ大阪本社版社会面の、富山・南砺での火事の記事。 《……さんは顔がやけどし》とあるが、 普通は「顔をやけどし」ではないだろうか。

2009-01-21 (3) 01:08:49 +0900

天皇は新年一般参賀では「祈っています」ではなく「願っています」と発言

3日づけ朝日新聞大阪本社版社会面の、皇居での新年一般参賀の記事。 《天皇陛下は、(中略) この年が国民にとり少しでもよい年になるよう願っています」とあいさつし》 とある。 ラジオで、「祈っています」との発言を聞いたような記憶があったので、 書きとめておく。別の機会の発言と私が混同しているのかもしれない。

1日づけ朝日新聞大阪本社版社会面では 《年頭に当たって発表した感想で》の続き、 《また、経済情勢の悪化について触れ》、の最後に、 《この困難を乗り越えることを願っています》 と発言している。

2009-01-21 (3) 01:04:40 +0900

朝日新聞>「逆は真ならず」ってここではどういう意味?

3日づけ朝日新聞大阪本社版 be on Saturday の b4 面、 「ばらんすシート」は作家の高樹のぶ子さん。

例えば「男性は一つひとつの恋愛を別のフォルダに残して大事にしますが、 女性は今までのものを全部消去して上書きします」。 確かに男性は別れた女性の悪口をあまり言わないが、 逆は真ならずの傾向がある。

「確かに」のつながりもよくわからないのだが、 「逆は真ならず」はどういう意味で使っているのだろう?  「男性であるならば別れた女性の悪口を言わない」の逆なら 「別れた女性の悪口を言わないならば男性である」である。 どうもそうではなく、 「女性は別れた男性の悪口を言う」といいたいのではあるまいか。 これは逆ではなく裏に近い。 それには、元の命題を「男性であるならば別れた異性の悪口を言わない」 としておいたほうがよい。 これなら、裏は「男性でないならば別れた異性の悪口を言う」となる。

ただ、そう理解すると、 消去して上書きしてしまった男性の記憶がどうして残っているのか、 という疑問が生じる。

「文・及川智洋」と署名あり。

2009-01-21 (3) 00:41:06 +0900

時差は生活リズムを気候に合わせるためのものではないだろう

3日づけ朝日新聞大阪本社版 be on Saturday の b3 面、be report 新春スペシャル。 その中に、 地域経済アナリストの藻谷浩介氏が「北海道・沖縄に時差を」と書いている。 《日が暮れるのが早い北海道の時刻を本州より1時間早め、 沖縄は逆に1時間遅くする》で提唱の内容は理解できた。 そのあとである。 《生活のリズムを気候に合わせることでエネルギーの消費が効率的になるほか》 とある中の「気候に」はおかしくないか。 「太陽の動き」「日照時間」ぐらいが適当なところか。

米国にはアラスカやハワイがあり、 ハワイからオバマ氏が生まれた。日本人の多様性を高めるためにも、 時差をつくりたい》とあるが、 国内に時差がありかつ多様性を持っている国があるからといって、 時差を作ったら多様性が高まるとは思えない。

この提言は夏時間の導入とは違う。念のため。

付) 私は、時差は設けるのには反対だが、 夏に北海道のホテルにチェックインした際 「朝食は朝4時からでございます」 などと言われたらおもしろいのではないかと思っている。 太陽が早く昇るから、朝食も早くから提供する、というわけである。

付) 北海道新幹線ができたとすると、青森県にできる奥津軽駅と、 北海道にできる木古内駅との間は 75 キロメートルほどだから、 一時間はかからない。 北海道との間に一時間の時差を設けたとすると、 この両駅に停まる上り新幹線は、 奥津軽駅到着時刻のほうが木古内駅発車時刻より時計の上では前になるわけだ。 運転手はどこで時計を切り換えるのだろうか。

2009-01-21 (3) 00:29:16 +0900

「さすがに」を「非常に」の意味だと誤解しやすい文例

1日づけ朝日新聞「新年テレビ・ラジオ ガイド」の「地デジ相談室」の面。 新型を買わなくても、 チューナーだけ買って持っているテレビに組み合わせれば見られる、 という話の最後に、 《ただ、新型はさすがに画像がきれいです》とある。

「さすがに」の意味を正しく理解しておらず、 文脈から類推するだけの人がいるようで、その場合、 「非常に」の意味に思えてしまうことが多いようだ、 と思っていたのだが、これはずばりの例である。

2009-01-21 (3) 00:23:42 +0900

「雑穀ごはんは 子供や夫が嫌いで 続かないという方へ」と、やずやのチラシ

……にあったのを見て、 そんなに子供や夫が嫌いで雑穀ごはんを作り続けることができないなら、 離縁すればいいのでは、と思ったのだが、 そうではなく、子供や夫が雑穀ごはんを嫌いで、という意味らしい。

新聞折り込みではいってきたチラシ。

2009-01-21 (3) 00:17:59 +0900

書類をどこにやったか、常に完全に把握している人がいる。全部捨てている人

仕事の上でこまごまとした書類がくる。 それをどうやって整理するかが一つの問題なのだが、 常に完全に把握している人というのがありえる。 それは、すべての書類を捨てているので、 常に「ごみ箱にやった」という正確な答えが返ってくる人である。

冗談だが、これに近いことをやっている人も中にはいる。

2009-01-21 (3) 00:12:53 +0900

「高窪」とは地形に由来する姓なのか? そうだとしたどんな地形?

「窪」が窪んでいるところを意味するとすると「高」と結びつきにくいが、 極小値が極大値より大きいことがある。 つまり、高いところにある窪、が由来だろうか?

2009-01-20 (2) 20:13:35 +0900

神道でいう「神」は子をもうけることがあるが、たとえば明治天皇は?

私は神道についてはよく知らないのだが、 神道でいう「神」は子をもうけることがある。 一方、Wikipedia によれば明治天皇は明治神宮の主祭神となっているので、 神道でいう「神」なのであろう。 ということは、人間としては「死亡」が確認された明治天皇も、 「神」としては今後、子をもうける可能性がある、と信じられているのだろうか?

神道では「神」も死ぬことがある。イザナミが例である。 明治天皇が神道の「神」として生きているのかどうかは、 調べが足りなくてわからない。

2009-01-20 (2) 00:52:38 +0900

悠仁親王妃は「子」のつく名前の女性になるだろうか?

最近の皇族男性の配偶者はすべて「子」で終わる名前を持つが、 最近、「子」で終わる女性名はあまりはやらない。 果たして、どうなるであろうか。

2009-01-20 (2) 00:43:02 +0900

きょうの補筆箇所

2009-01-15 (4) 00:22:45 +0900

きょうの補筆箇所

2009-01-14 (3) 00:49:01 +0900

うるう日を含む学年が入学する年は新入生の数が 366/365 倍のはずなのに

たとえば、1996 年の二月は 29 日まであったので、 その日生まれを含む学年が中学校を卒業する 2011 年春の高等学校入学定員は 366/365 倍する必要がある、と考えている人はいないだろうか?

いままでン十年生きてきて、一度も考えたことがなかった。 とりあえずは人口統計を見てみるべきだな。

2009-01-12 (1) 20:24:03 +0900

ジェダイの復讐>なぜアナキンはすぐに“霊体”となれたのか、の私的考察

アナキンはフォースそのものの子だから、 ジェダイに戻ってから死ねばすぐにフォースと一体化して “霊体”として現われることができる、 というのがルーカスの考えのようである。

それを聞く前に私が考えたのは、 アナキンはあそこで死んではいなかった、というものだ。 ルークは、気絶している父、アナキンを運んで脱出用の宇宙船に運んだ。 そう考えると、 III の冒頭でアナキンが気絶したオビ=ワンをかついで敵艦から脱出しようとしたのと重なってくる。 ルークが必死に船を操縦し、 新デス・スターから脱出しようとしている間にアナキンは一度だけ息を吹き返し、 その前に現われたオビ=ワンの“霊体”からフォースと一体化する術を一瞬にしてマスター、 そしてそれを実行。 よってエンドアに降りたときにはアナキンの肉体は消え、 ベイダーのコスチュームだけが残っていた --- と私は想像してみたのだった。

2009-01-12 (1) 02:16:17 +0900

ファントム・メナス>クワイ=ガンが刺されるところは映っていないんだ

クワイ=ガンの胸から上しか映っていないので、 ダース・モールのライトセーバーが突き刺さるところは描かれていない。 刺激が強すぎると考えたからだろうか。 (ただし、ダース・モールがクワイ=ガンのからだからライトセーバーを抜くところは映っている。)

きのうきょうと DVD を見ていて気がついた。

2009-01-12 (1) 01:42:09 +0900

スター・ウォーズ旧三部作>なぜベイダーは皇帝に従っていたのかの私的考察

アナキンは、パドメを死から救う術を、 シスであるパルパティーンが知っていると信じたから、 あそこでウィンドゥを裏切り、ダークサイドにおちたのであろう。 しかし、サイボーグ化手術を受けたあとでは、 パドメの死を知らされたのであるから、 もはや皇帝に従っている理由がないように思える。 皇帝にゲイズ (gaze) のような特殊能力があり、 一度支配下にはいると二度と逆らえない、というようなことも考えられるが、 その場合、精神状態が普通と違っているような描写がなされるのが普通である。 III でアナキンがベイダーになってからはメイクや目の色を変えていたようだが、 サイボーグ化されたあとはそうは見えなかった。 また、それだと、VI の最後で皇帝に逆らった理由がよくわからない。

そこで、私が勝手に考えてみたのは、 ベイダーは皇帝から体内に何かをしかけたと脅されていた、 というものだ。 I で、アナキンと母親が、奴隷のからだには発信器がしかけられていて、 逃亡を図ると爆破される、という話をする。 それと似たように、 ベイダーのサイボーグ化にあたって何か --- たとえば皇帝が死ぬとベイダーを道連れにするような装置 --- をしかけたと皇帝は脅したのだ。 ベイダーは、それはサイボーグ化の際につけられた、 左手の義手か、両足の義足にあるに違いないと考えそれを探したが、 見つけられなかった。 しかし、VI の最後でルークに右手の義手を切断されたとき、 それが意外にも II の最後でつけた義手の中にしかけられており、 かつ、切り落とされた右手と共に落ちていったのを見たので、 もう何も恐れるものはないと悟った、というのだが、 これはあくまでも私が勝手に想像した話にすぎない。

旧三部作で、一度ダークサイドにはいると抜けられない、 という説明がなされているから、それでいいのだろう。

2009-01-12 (1) 00:37:36 +0900

神武天皇即位の日が皇紀 1 年二月 11 日だとすれば、それは土曜日である

皇紀は、「年」の呼び方を除けば、 グレゴリウス暦を昔にさかのぼって適用したものにすぎないから、 連続する 400 年間の日数は 7 の倍数である。 よって皇紀 1 年と皇紀 2401 年とでは、同じ日付は同じ曜日になる。 皇紀 2401 年は西暦 1741 年。 《(international) week number で第 53 週まである年はどのように分布する?》 にあげた表によれば、 1741 年は日曜日から始まった。そして平年である。 ということは、二月 11 日は土曜日になる。

2009-01-12 (1) 00:27:48 +0900

ジェダイの復讐>帝国軍兵士たちの武装解除はどのようにして行われたのか

オリジナルの VI は、 エンドアでのイウォークたちの勝利の祝いで終わっている。 若い主人公たちは全員生き残ってそこに参加するもので、 旧三部作のエンディングとしては十分なものだった。 しかし、1990 年代に、I-III の製作を前提として追加などのなされた旧三部作では、 VI の最後に I-III の舞台を含むいくつかの星で人々が平和を喜ぶシーンが追加されていた。

しかし、新デス・スターは爆破され、皇帝は倒されたとはいえ、 銀河系全体に帝国軍兵士が残っているはずである。 彼らはどうやって武装解除されたのだろうか?

II で誕生したクローン兵たちが、 III で皇帝の立体映像による Order 66 を受けるとジェダイを裏切って帝国軍兵士になるのだった。 おそらく、そのように初めから遺伝子操作されていたのであろう。 そうだとすると、武装解除にも皇帝の指示がいるはずだ。 その皇帝は死んでしまった。どうなるのだろう?

以下は、私自身の勝手な想像である。 実は、万が一に備えて皇帝は武装解除を命じる立体画像 (仮称:Order 99)を記録した媒体を用意していた。 アナキンは、息を引き取るまぎわに、 ルークにそれを玉座の下から持ってゆくよう命じた。 そして、誰かがそれを銀河全体に流した、と。

それを、徹底抗戦派の帝国軍の士官が奪おうとしたりして。

付) 本項は、III の DVD が発売になる前にほとんど書いてあった。

付) 武装解除はなされたとしても、 クローン兵は同じ顔をしているので、どこへ行ってもすぐにわかってしまうはずだ。 彼らがどうやって生きていくのか、興味深い。 また、彼らに生殖能力があるのだとすると、 父親どうしが全く同じ遺伝子を持っているという意味での異母兄弟姉妹が、 おおぜい生まれてしまうのではあるまいか。 その人たちの間での結婚は、やや近親婚の色合いが濃いので、 避けたほうが無難なはずだ。

2009-01-12 (1) 00:10:14 +0900

三度めのくり返しを始めない数列は駢文数列を含め(本質的に)非可算無限個

駢文数列については、

で述べた。その後 《三度めのくりかえしを始めることのない数列は駢文数列内に現れるか?》 という予想をたて、 《駢文数列を添え字が負の項にまで延長する》 なども考えてみたが、タイトル行のような結論に達した。

なお、本項では、二進表記を4ケタごとにカンマで区切って書く。

いま、甲乙二人がいるとする。 甲は、乙に内緒で、 十六進の 0 と 6 を並べてできる(十六進表記の)自然数 N を考える。 二進では 0000 と 0110 を並べることになる。 そして、N から始めて 1 ずつ加えてできる数列の、 1 であるビットの数 mod 2 を書いて乙に見せてゆくとする。 この N を、乙に当てさせようというのである。 乙は、本来の駢文数列とこれを比べる。

例1. N として 110 が選ばれた場合。
甲の頭の中の数甲が示す数乙が示す数乙の頭の中の数
110000
111111
10001110
10010011
ここまでは一致する。
甲の頭の中の数甲が示す数乙が示す数乙の頭の中の数
110000
111111
10001110
10010011
101001100
で違いがでてきた。 乙は、この数列をなるべく少なく下へずらして、 ここまでが駢文数列と一致するようにする。それには、
甲の頭の中の数甲が示す数乙が示す数乙の頭の中の数
110000
111111
10001110
10010011
101001100
   0101
   0110
   1111
   11000
   01001
   01010
からわかるように、下に 6 だけずらせばよいことがわかる。 そこで乙は「答えは 6 かな?」と甲に告げる。 甲は乙に「正解です」と答える。

例2. では、甲が N として 110,0110 を選んだらどうであろうか。 上のケースと同じように、110,1010 のところで、 乙は「答えは 6 かな?」と言うだろう。 甲は「違います」と答える。 しかし、下4ケタが 0000 でなく 0110 であることはわかった。 乙は、ここで頭の中の数を +0110 する (=甲が示してきた数を 6 だけ下へずらす)。 その上で、次は、 乙は自分の頭の中の数の下四ケタが 0110 であるようなところだけを見てゆく。 甲の頭の中の数は、乙の頭の中の数より 110,0000 だけ大きいことに注意。
甲の頭の中の数甲が示す数乙が示す数乙の頭の中の数
110,011000110
111,0110111,0110
1000,01101110,0110
1001,01100011,0110
1010,011001100,0110
  0101,0110
  0110,0110
  1111,0110
  11000,0110
  01001,0110
  01010,0110
この表は、下4ケタを見なければ、上に書いたのと同じものである。 ここで、乙は「答えは 102(二進なら 110,0110)かな?」と答える。 そして甲が「正解です」と言うだろう。

例3. もしも甲が N として 110,0000,0110 を選んだら、どうであろうか。 一つ上と同じようにしても、
甲の頭の中の数甲が示す数乙が示す数乙の頭の中の数
110,0000,011000110
110,0001,0110111,0110
110,0010,01101110,0110
110,0011,01100011,0110
110,0100,011011100,0110
となって、ずれは生じない。よって、 下8ケタは 0000,0110 であるとわかる。 次に下8ケタが 0000,0110 であるところだけ見てゆくと、 下12ケタが 0110,0000,0110 であることがわかるだろう。

このようにして、乙は甲が考えた数 N を当てることができる。 ただし、当たった場合に甲が「正解です」と言わなければならない。 自然数にはいくらでも大きなものがあるから。

さてここで、左へ無限に伸びてゆく、0 と 1 からなる数字列のうち、 0 も 1 も無限個含まれているようなもの全体の集合 Λ を考える。 Λ の元は自然数を表してはいないが、その元の次の元、 あるいはその元に 1 を加えた数字列を、次で定義する。

要するに、自然数の二進表記で 1 を加える操作の拡張である。

Λ の元で、下から4ケタずつに区切ったとき、 全てが 0000 か 0110 であるもののなす部分集合を Σ とする。 それらは 1 であるビットを無限個含むが、それは偶数個であると定義する。 上で述べた 1 を加える操作で変化するビットの数は有限だから、 Σ の元から始めて 1 ずつ加えていってできる数字列については、 1 であるビットの数の偶奇が決まる。 このようにして、Σ の元を一つ選ぶごとに、 そこから始めて 1 ずつ加えていってできる数字列の列ができ、 それらの 1 であるビットの数の偶奇を書き出してゆくことで、 0 と 1 からなる数列ができる。

この 0 と 1 からなる数列は、同じパターンを三度くりかえし始めることがない。 もしあれば、それは初めの有限項の中に表れるから、 元になった数字列の列において、 あるケタから左は不変である。 そこまでの、無限数字列の有限列を考え、 不変である左のケタをすべて 0000 で置き換えると、 1 ずつ増えてゆく自然数の有限列が得られる。 これらの中の 1 であるビットの偶奇を数えて作った 0 と 1 からなる数列は上の数列と一致する。 しかし、これは駢文数列あるいはそれを途中から読んだものであり、 その中では同じパターンを三度くりかえし始めることはないのだから、矛盾である。

また、このとき、上で述べたゲームを行なうことにより、 スタートに選んだ Σ の元が、下から4ケタずつわかってゆく。 ただし、ここでは甲も乙も永遠にこのゲームを続けてゆくものとする。 (乙は4ケタごとに「下*ケタはこれこれですね」と言うが、 甲は答える必要はない。)

また、Σ の元がわかる過程で、 甲が示す数列と駢文数列とを乙がずらしてゆくタイミングを考えると、 スタートに選んだ Σ の元が異なれば、 下から4ケタずつ見ていって初めて異なっているところで、 片方ではずれ、もう一方ではずれないことがわかる。 よって、 このようにして得られた 0 と 1 からなる数列は、 スタートに選んだ Σ の元が異なれば異なっていることがわかる。

Σ の異なる二元 σ1, σ2 から始めて作った 0 と 1 からなる数列の一方が、 他方を途中から見ていったものと一致してしまう場合もある。 それは、下(=右)の有限ケタを除いて σ1 と σ2 とが一致する場合である。

反対に、そうでない例を作ることは簡単である。自然数 k に対し、 k 個ごとに 0110 で、その他は 0000 となっているような数字列をとればよい。 これで、可算無限個の、 同じパターンを三度くりかえし始めることのない、0 と 1 からなる数列で、 どれもが他を途中から読んだものになっていないものが存在することが示せた。

0 より大きく、1 より小さい実数を二進で表記しておく。 途中から 1 ばかり並ぶものは .10111... = .11 のように有限ケタでも表せる。 有限ケタで終わるものは有理数である。これらは除いておく。 それでも実数の濃度と同じ非可算無限個の元がある。 これらの元一つ一つに対し、小数点以下を右に見ていって、 0 があったら 0000 を、1 があったら 0110 を、左へと並べていってできる Σ の元を考える。これらは実数の濃度と同じだけある。 これらの中で、途中から左が一致してしまうものは、 元の二進小数で言えばどこかから右が一致してしまうものである。 すなわち、差は有限ケタの二進小数である。 このようなものは同値とみなす。 任意の元に対し、その元と同値である元は可算個だから、 同値類の数は実数の濃度と同じ非可算無限個ある。

つまり、0 と 1 からなる無限数列で、 同じパターン三度のくりかえしを始めないものは、 片方が他方を途中から読んだものである場合にそれらを同一視しても、 実数の濃度と同じ非可算無限個存在する。

注)タイトル行の「本質的に」は、 片方が他方を途中から読んだものである場合を除いても、 の意味である。

付) これは、昨日、体調がよくなくて床についているときに思いついたものである。 もっとも、思いついたのは 0000 と 0110 とを無限個並べてみたら、 というアイディアのみで、細かい点はいま計算した。 最初に駢文数列に気づいたのは、まだ実家にいたころで、 (私にしては)高い熱を出し、悪寒がして震えていた夜だった。 なぜか、病気のときのみ、この問題が頭に浮かぶようである。

2009-01-11 (0) 22:44:53 +0900

上のアイディアは、Σ のある元(数字列)から始まる最初の i 項から得られるところの 0 または 1 に値を持つ数列について、 それを下に何文字ずらすと元の駢文数列と一致するかを i の関数とみなしたものから、 Σ のどの元から始めたかがわかるだろう、というものである。 ただ、完全にその形にはなっていない。 「乙は自分の頭の中の数の下四ケタが 0110 であるようなところだけを見てゆく」 としたところで、飛び飛びに見てゆくことにしたからである。 それでたぶん大丈夫だとは思うが、 C言語によるプログラムを書いて、確かめることにした。 確めたのは、無限の数字列の場合ではなく、有限の場合である。

a[ ] は、駢文数列の初めの N 項を文字 '0''1' が並んだ文字列としたもので初期化したものとする。 b[ ]a[ ]a[SH] から i 項だけ読んだ文字列とする。(SH は定数。)

例:b[ ]a[ ] を第 6 項から初めて 10 項読んだものとする。

a[ ]  0110100110010110...
b[ ]  0110010110
これでは対応する項の数値が合っていない。 右に 1 文字ずつずらしてゆくと、
a[ ]  0110100110010110...
b[ ]        0110010110
6 文字だけずらしたところで初めて合う。

定数 SH を変えつつ、 何文字だけ右にずらせば合うかを、i の関数として調べたい。 それには、 文字列 s の中で文字列 t が最初に現われる位置を返す関数 strstr(const char* s, const char* t) が使える。 (これが使えるようにするため、数ではなく文字で初期化したのだった。)

#include <stdio.h>
#include <string.h> /* strstr() */
#define N 4096
#define M 2048
#define SH 0x666    /* ずらし。十六進で、各ケタは 0 か 6 */

char a[N+1];    /* 駢文数列を文字列と見たもので初期化される */
char b[M+1];    /* 駢文数列を左へ SH だけずらしたものがはいる */

main() {
    unsigned i;
    char *p;

    for (a[i = 0] = '0'; i < N; i++) {  /* 駢文数列で初期化 */
        if (i % 2 == 0) {
            a[i] = a[i/2];
        } else {
            a[i] = '0' + '1' - a[i/2];
        }
    }
    a[N] = '\0';                        /* 文字列だから最後に \0 を */

    for (i = 0; i < M; i++) {
        b[i] = a[i+SH];                 /* 駢文数列を SH だけずらして初期化 */
        b[i+1] = '\0';                  /* その最初の第 i 項までとする */
        if ((p = strstr(a, b)) == NULL) {
            printf("みつかりません.\n");
            return 0;
        }
        printf("%u %d\n", i, p-a);
    }
    return 0;
}

SH は、上で示したように、二進の 0000 か 0110 を並べたものだから、 6, 6*16 = 96, 6*16 + 6 = 102, 6*16*16 = 1536, 6*16*16 + 6 = 1542, 6*16*16 + 6*16 = 1632, 6*16*16 + 6*16 + 6 = 1638 のどれかとする。

結果:

6 のときのことは、前に書いたとおりである。 それを左にシフトしたものと思えば、 6*16 = 96 のとき、6*16*16 = 1536 の場合の結果は納得できる。

102 のとき、i が 4 で 6 となるのは納得だが、 58 で 102 となるのは、96 のとき 64 で 96 となったのと比べると、 64-58 = 6 だけずれている。これが、 「乙は自分の頭の中の数の下四ケタが 0110 であるようなところだけを見てゆく」 に対応するのであろう。 他のケースも、同様に解釈できる。

以上は十六進で3ケタまでしかチェックしていないことになるが、 これから、何ケタあっても、“無限”ケタあっても大丈夫であることが推測できよう。 Σ を十六進で書いたときの下*ケタが、 i を増やしてゆくとき、ずらすべき距離として現われてゆくのである。

付) 0000 と 0110 を並べるのでなく、 00 と 01 を並べるとしてみたら、二進の 01010101, すなわち十進の 85 のとき、 1 で 5 となり、11 で 29 となり、19 で 85 となる。 この 29 は、二進で 00011101 なので、85 の二進での下*ケタとはなっていない。 そこが、上のケースと違ってくる。 これでは上の議論は使えない。

付) strstr() の実装の違いか、b[ ] が長くなると、 LSI-C 86 では一行の出力にだんだん時間がかかるようになる。 それに対し、Borland C++ 3.1 では特にそれは感じられなかった。

付) 書いてから思ったのだが、 上のプログラムは strstr() を呼ぶ回数をずっと減らせると思う。 たとえば、i がある値をとるとき、ずらすべき距離が 6 とわかったとする。 そうしたら、i を 1 だけ増して再度 strstr() を呼ぶのではなく、 もう一文字先どうしを比較してみる。これがたいていの場合は一致する。 一致しなければ strstr() を呼ぶことになるが、 上で実験した例で言えば、たかだか3回で済むはずである。 最近のコンパイラなら、実行時間の点で特に問題ないから、 立て続けに strstr() を呼ぶ上の形のままでも構わないか。

2009-01-13 (2) 22:08:26 +0900

いま、Σ のある元 σ からスタートし、 最初の 24n 項(n は自然数)を考える。 それらの数字列を σ, σ+1, ..., σ+(24n-1) と書こう。 これらの、二進での下 4n ケタに注目すると、 σ の下 4 ケタが 0000 である場合を除き、 必ず一度、そして一度だけ、これより上のケタへのくり上がりが起こっている。 しかし、くり上がった先の 4 ケタは 0000 か 0110 なので、 それより先へのくり上がりは起こらない。 また、くり上がった際には、くり上がり先のビットのうち 1 であるものの数を 1 だけ増やす。 これから 1 であるビットの数の偶奇を数えて 0 または 1 からなる数列を作るが、 それは、σ の下 4n ケタだけを取り出してできた自然数 s に対し、 駢文数列を第 s 項目から読んだ最初の 24n 項と一致する。

つまり、 最初の 24n 項は s だけずらせば駢文数列と一致するというわけだが、 それより少なくずらしただけで一致することはないだろうか。 いま、σ の下 4n ケタは、十六進で書いて高々 66...6 であるから、 このずらしは、24n 項のうちの 7/16 以下である。 もしもこれより少なくずらしても一致したとすると、 二つのずらしの差は 7/16 以下である。 初めの 24n 項が、それの 7/16 以下のずらしで、 重なる部分が一致することになる。 すると、その中で三度目のくり返しが始まっていることになる。

abcdefgabcdefgab
       abcdefgabcdefgab
abcdabcdabcdabcd
    abcdabcdabcdabcd
参照。これは 《駢文数列>三度めのくりかえしを始めることすらない》 に反する。

よって、最初の 24n 項を見て、 それが駢文数列に最初に登場する位置を見ると、 σ の下 4n ケタがわかることになる。

上のプログラムでは項数を 1 ずつ増やしつつ調べていたが、それは不要なのであった。 そうやって書いたのが、下のプログラムである。

#include <stdio.h>
#include <string.h> /* strstr() */
#define N 8192
#define M 4096
#define SH 0x666    /* ずらし。十六進で、各ケタは 0 か 6 */

char a[N+1];    /* 駢文数列を文字列と見たもので初期化される */
char b[M+1];    /* 駢文数列を左へ SH だけずらしたものがはいる */

main() {
    unsigned i;
    char *p;

    for (a[i = 0] = '0'; i < N; i++) {  /* 駢文数列で初期化 */
        if (i % 2 == 0) {
            a[i] = a[i/2];
        } else {
            a[i] = '0' + '1' - a[i/2];
        }
    }
    a[N] = '\0';                        /* 文字列だから最後に \0 を */

    for (i = 1; i != 0 && i <= M; i <<= 4) {    /* i != 0 は、int 型が 16 */
                                                /* ビットのときのため */
        strncpy(b, a+SH, i);            /* 駢文数列を SH だけずらしたところ */
                                        /* から i 項だけコピー */
        if ((p = strstr(a, b)) == NULL) {
            printf("みつかりません.\n");
            return 0;
        }
        printf("%u %d\n", i, p-a);
    }
    return 0;
}

いままでは、二進の 4 ケタずつの区切りを 0000 か 0110 としていたが、 0000 と 0011 でも同様である。 つまり、十六進の 0 か 6 でなく、0 か 3 としてもよい。

さらに、0000 か 1100 としても大丈夫なようである。 この場合、より少なくずらしては一致しないことの証明は、上のようにはできない。

(0000 と 0101, すなわち 0 と 5 ではだめである。 0101 に下からくり上がってくると 0110 となり、 1 であるビットの数が変わらないからである。 0000 と 1001, すなわち 0 と 9 も同様にだめである。)

さらに。4 ケタずつでなく 2 ケタずつ区切って考え、 各 2 ケタは 00 か 11, としてもよい。 Σ の定義から、くり上がりが無限に続くことはないし、 くり上がった先で、偶数個の 1 を 0 に変え、一つの 0 を 1 に変えるので、 1 の数の偶奇は変わっているからである。)

#include <stdio.h>
#include <string.h> /* strstr() */
#define N 8192
#define M 4096
#define SH 0x3cf    /* ずらし。十六進で、各ケタは 0 か 3 か c か f */

char a[N+1];    /* 駢文数列を文字列と見たもので初期化される */
char b[M+1];    /* 駢文数列を左へ SH だけずらしたものがはいる */

main() {
    unsigned i;
    char *p;

    for (a[i = 0] = '0'; i < N; i++) {  /* 駢文数列で初期化 */
        if (i % 2 == 0) {
            a[i] = a[i/2];
        } else {
            a[i] = '0' + '1' - a[i/2];
        }
    }
    a[N] = '\0';                        /* 文字列だから最後に \0 を */

    for (i = 1; i <= M; i <<= 2) {
        strncpy(b, a+SH, i);            /* 駢文数列を SH だけずらしたところ */
                                        /* から i 項だけコピー */
        if ((p = strstr(a, b)) == NULL) {
            printf("みつかりません.\n");
            return 0;
        }
        printf("%u %d\n", i, p-a);
    }
    return 0;
}

これでいちおう、すっきりした。

2009-01-14 (3) 20:42:35 +0900

0101 と 1001 を並べたものから始める、というのも考えてみた。 これだと、下からくり上がってきて 0110 と 1010 になっても、 1 であるビットの数は変わらないので、 全体の 1 であるビット数の偶奇を数えて 0 と 1 の数列にすると、 最初の 24n 項は、 駢文数列の最初の 24n 項を巡回置換したものになる。 (巡回置換とは、0123456789 を 3456789012 とするようなもの。)

1001010100
1001011001
1001011111
1001100010
1001100101
1001101000
1001101110
1001110001
1001110111
1001111010
1001111100
1010000001
1010000110
1010001011
1010001101
1010010010
この例では、 一番右に書いた駢文数列を 5 だけずれるよう巡回置換したものになっている。 このずれが中央の列から読み取れれば、どの数からスタートしたかがわかる。

駢文数列の最初の 2n 項を見たとき、 それが、それの非自明な巡回置換と一致することはない。 反例を与えるような n のうち、最も小さいものを取る。 n が 1 のときは 01 なのでありえない、 n が 2 のときは 0110 なのでありえない、 それ以上でもしそうなったとしよう。 先頭から最後に回す項の数が奇数なら、 (いつものように議論して)駢文数列が 010101 を含んで矛盾。 偶数なら、 そのうち偶数番目の項だけを取り出すことにより、 n がより小さい場合の反例ができて、矛盾。

よって、わかるわけだ。

C言語によるプログラムを書いてみた。 このバージョンでは、 最初のずらし SH として十六進三ケタの数をセットする。 ループは i が 4096 まで回るが、 最初の 4096 項を調べても、三ケタめの答えは出ない。 それは、最初の 4096 項を計算している間に、 十六進で下から四ケタ目にくり上がってしまうからである。 また、巡回置換なので、備え付けの関数は使えない。 ちょっと工夫がいった。

#include <stdio.h>
#include <string.h> /* strstr() */
#define N 8192
#define M 4096
#define SH 0x555    /* ずらし。十六進で、各ケタは 5 か 9 */

char a[N+1];    /* 駢文数列を文字列と見たもので初期化される */
char b[M+1];    /* 駢文数列を左へ SH だけずらしたものがはいる */

main() {
    unsigned i, j, k;

    for (a[i = 0] = '0'; i < N; i++) {  /* 駢文数列で初期化 */
        if (i % 2 == 0) {
            a[i] = a[i/2];
        } else {
            a[i] = '0' + '1' - a[i/2];
        }
    }
    a[N] = '\0';                        /* 文字列だから最後に \0 を */

    for (i = 16; i != 0 && i <= M; i <<= 4) {   /* i != 0 は、int 型が 16 */
                                                /* ビットのときのため */
        strncpy(b, a+SH, i);            /* 駢文数列を SH だけずらしたところ */
                                        /* から i 項だけコピー */
        for (j = 0; j < i; j++) {       /* j だけずらしてみる */
            for (k = 0; k < i; k++) {   /* それで合うかどうかのチェック */
                if (j + k < i) {
                    if (b[k] != a[j+k]) {
                        break;
                    }
                } else {
                    if (b[k] != a[j+k-i]) {
                        break;
                    }
                }
            }
            if (k == i) {
                printf("%u %u\n", i, j); break;
            }
        }
        if (j == i) {
            printf("%u not found.\n", i);
        }
    }
    return 0;
}

実数の濃度と同じ非可算個の、 本質的に異なる、スタートとなる数字列を作るもう一つの方法。 (「本質的に異なる」とは、 どちらかからスタートして得られる数字列列が、 他方からスタートして得られる数字列列を途中から読んだものになっているときは同じとみなして、 の意味だった。)

0 以上 1 以下の実数を二進で表記する。 1 が無限に続く循環小数は、0.1001111... のようなほうをとってもよいし、 0.101 のほうをとってもよい。 そして、0.a1a2a3... に対し、 ai が 0 だったら bi = 5 とおき、 ai が 1 だったら bi = 9 とおく。 そして、数字列 ...|b4b3b2b1|b3b2b1|b2b1|b1 を対応させる。 縦棒「|」は見やすくするための区切りの印で、実際にはない。 小数点以下どこかのケタが違っていれば、 左へどこまで行っても、そこより左で違っている。

2009-01-19 (1) 00:10:11 +0900

いままで、十六進表記や四進表記で各ケタがこれかこれの場合だけを取り出して、 と考えていたが、全部をまとめて扱うことはできないだろうか?

0 と 1 が無限に左へ続く数字列全体のなす集合から、 0 が有限個しか現われないものを除いたものを Ξ と書こう。 この各元に 1 を足した数字列を求める方法は前と同じとする。 そして、1 であるビットの数の偶奇で 0 か 1 かを決めるのだが、 最初の項は 0 と決める。

末尾二ケタが 00, 01, 10, 11 からスタートした場合の最初の 4 項を書いてみる。 00 以外の場合に二つあるのは、 この左に 1 が偶数個ならんでいる場合と奇数個ならんでいる場合があるからである。
000110
0100100011
1001010110
1101000011
二度現われるものもある。0110 と 0011 である。 しかし、最初の 4 項を見ればスタートの下一ケタがわかる、ということがわかった。 以下、同じ数列が出たら地の色を同じにする。 (白色は地の色には含めない。)

末尾三ケタでやってみる。
00001101001
0010010110000101101
0100101100101011010
0110100110001001011
1000110011001101001
1010011001000101101
1100110010101011010
1110011010001001011
最初の 8 項を見ればスタートの下二ケタがわかる、ということがわかった。

末尾四ケタの場合。 いままでの例から、どれとどれが同じになるかは類推できるであろう。 エディタの検索機能を利用して確認したが、 地の色づけはやめにした。
00000110100110010110
000100101100110100100010110011010011
001001011001101001010101100110100110
001101001100101101000100110010110011
010001100110100101100110011010011001
010100110010110100100011001011001101
011001100101101001010110010110011010
011100110100101101000011010011001011
100001101001011010010110100110010110
100100101101001011000010110011010011
101001011010010110010101100110100110
101101001011010011000100110010110011
110001101001011001100110011010011001
110100101101001100100011001011001101
111001011010011001010110010110011010
111101001011001101000011010011001011
最初の 16 項を見ればスタートの下三ケタがわかる、ということがわかった。

これをふまえて、 「最初の 2n 項を見ればスタートの下 n-1 ケタがわかる」 という予想を立てたのだが、きょうはここまでにする。

付) 途中までは手作業でやっていたが、だんだん間違いやすくなってきたので、 表のソースファイルを出力する、C言語によるプログラムを書いた。 第一引数が第何項まで出力するか、 第二引数が二進表記の幅なので、 「4 2」、「8 3」、「16 4」などを引数につけて起動する。 (上の表は、このプログラムの出力で置き換えたものである。 ただし、地の色は手作業で追加した。)

#include <stdio.h>
#include <stdlib.h> /* atoi() */

int benbun(unsigned n);
void bprint(unsigned n, int width);

int main(int argc, char* argv[]) {
    unsigned i, j;
    unsigned n, width;

    if (argc != 3) {
        fprintf(stderr, "see the source file.\n");
        exit(1);
    }
    n = atoi(argv[1]);
    width = atoi(argv[2]);
    printf("<table border=\"1\">\n");
    for (i = 0; i < n; i++) {
        printf("<tr><td>");
        bprint(i, width);
        printf("</td><td>");
        for (j = 0; j < n; j++) {
            printf("%u", benbun(i) ^ benbun(i+j));
        }
        printf("</td><td>");
        if (i != 0) {
            for (j = 0; j < n; j++) {
                printf("%u", benbun(i+n) ^ benbun(i+j+n));
            }
        }
        printf("</td></tr>\n");
    }
    printf("</table>\n");
    return 0;
}


/* 駢文数列の第 n 項めを返す */
int benbun(unsigned n) {
    if (n == 0) {
        return 0;
    }
    if (n % 2 == 0) {
        return benbun(n/2);
    } else {
        return benbun(n/2)^1;
    }
}


/* n を二進で、幅 width ケタで印字 */
void bprint(unsigned n, int width) {
    unsigned mask;

    for (mask = (1 << (width-1)); mask != 0; mask >>= 1) {
        if ((mask & n) != 0) {
            putchar('1');
        } else {
            putchar('0');
        }
    }
}

2009-01-20 (2) 01:03:57 +0900

今度は、「最初の項は 0」という仮定を置かずに、最大四通り、書き出してみる。

駢文数列の第 a 項から始まる 2n 項は、 a の二進表記の下 n ケタを固定するとき、最大で四通りある。 これの左に 1 が何個並んでから初めて 0 があらわれるかの偶奇と、 最初の項が 0 か 1 かで四通りである。

次のプログラムで表を作った。

#include <stdio.h>
#include <stdlib.h> /* atoi() */

int benbun(unsigned n);
void bprint(unsigned n, int width);

int main(int argc, char* argv[]) {
    unsigned i, j;
    unsigned n, width;

    if (argc != 3) {
        fprintf(stderr, "see the source file.\n");
        exit(1);
    }
    n = atoi(argv[1]);
    width = atoi(argv[2]);
    printf("<table border=\"1\">\n");
    for (i = 0; i < n; i++) {
        printf("<tr><td>");
        bprint(i, width);
        printf("</td><td>");
        for (j = 0; j < n; j++) {
            printf("%u", benbun(i+j));
        }
        printf("</td><td>");
        for (j = 0; j < n; j++) {
            printf("%u", benbun(i+j) ^ 1);
        }
        printf("</td><td>");
        if (i != 0) {
            for (j = 0; j < n; j++) {
                printf("%u", benbun(i+j+n));
            }
            printf("</td><td>");
            for (j = 0; j < n; j++) {
                printf("%u", benbun(i+j+n) ^ 1);
            }
        }
        printf("</td></tr>\n");
    }
    printf("</table>\n");
    return 0;
}


/* 駢文数列の第 n 項めを返す */
int benbun(unsigned n) {
    if (n == 0) {
        return 0;
    }
    if (n % 2 == 0) {
        return benbun(n/2);
    } else {
        return benbun(n/2)^1;
    }
}


/* n を二進で、幅 width ケタで印字 */
void bprint(unsigned n, int width) {
    unsigned mask;

    for (mask = (1 << (width-1)); mask != 0; mask >>= 1) {
        if ((mask & n) != 0) {
            putchar('1');
        } else {
            putchar('0');
        }
    }
}

0001101001
011101001000111100
101010010101101001
110100101111000011

0000110100110010110
00111010011001011000010110111010010
01010100110010110010101101010100101
01101001100101100111011010001001011
10010011001011001100110100110010110
10100110010110011011101001000101101
11001100101100110101010010101011010
11111001011001101000100101110110100

000001101001100101101001011001101001
00011101001100101101001011001101001000101100110100111101001100101100
00101010011001011010010110011010010101011001101001101010011001011001
00110100110010110100101100110100101110110011010011000100110010110011
01001001100101101001011001101001011001100110100110011001100101100110
01010011001011010010110011010010110111001101001100100011001011001101
01100110010110100101100110100101101010011010011001010110010110011010
01111100101101001011001101001011010000110100110010111100101100110100
10001001011010010110011010010110100101101001100101101001011001101001
10010010110100101100110100101101001111010011001011000010110011010011
10100101101001011001101001011010011010100110010110010101100110100110
10111011010010110011010010110100110001001100101100111011001101001100
11000110100101100110100101101001100110011001011001100110011010011001
11011101001011001101001011010011001000110010110011011100110100110010
11101010010110011010010110100110010101100101100110101001101001100101
11110100101100110100101101001100101111001011001101000011010011001011

駢文数列を第 a 項から 2n 項だけ書いたものを s とする。 s を見ると、a を二進表記した際の下 n-1 ケタがわかることを証明しよう。

n が 2 のときは、最初の表から、s から a の下 1 ケタがわかることがわかる。

n が 3 以上で、 駢文数列を第 a 項から 2n 項だけ書いたものと第 b 項から 2n 項だけ書いたものとが一致したとする。 a と b との差が奇数の場合、 いつもの議論でその数列は 010101 または 101010 を含み、矛盾する。 よって a と b との差は偶数である。 これらから、元の駢文数列で偶数項目だったものを書き抜くと、 それは半分のところにすでに現われている。

たとえば、上の表で、1011 から始めて得られた 0100110010110011 では下線部分が偶数項目である。 (どちらが偶数項目かがわからないとすると、またいつもの議論により、 010101 か 101010 を含んで矛盾するから、そういうことはない。)

これは、一つ先の 1100 からスタートした 1001100101100110 の下線部分と同じになる。 そして、これは、1100 を右に 1 ビットだけシフトした 110 から始まる、 10100101 と同じである。

では、最初に 1011 から始めて得られた、 16 文字からなる 1011010010110011 を、 「1011 から始めた」という情報を隠して見せられた場合、どうするか。 これは駢文数列の奇数番目の項から始まっているということがまずわかる。 そして、偶数番目の項だけを抜き出したものを、 二進 3 ケタから始めて得られる、長さが半分の文字列すべての中から探すと、 二進 3 ケタの下 2 ケタは決まることが、数学的帰納法の仮定から言える。 いまの場合、010 か 110 であり、下 2 ケタは 10 と決まる。 偶数番目の項だけを抜き出す際、1 文字目が抜き出した中に含まれるなら、 その下 2 ケタの下に 0 をつけたものが、答えである。 含まれないなら、それから 1 を引いたものが答えである。 このケースでは、10 の下に 0 をつけ、それから 1 を引いた 011 が答えとわかる。

もう一つ、例をやってみよう。 上の表から 1010010110100110 を取り出してきたとしよう。 偶数項目だけを抜き出すと 11001101 となる。 これは 101 のところにのみ現われている。 下 2 ケタを取り出して 01, それに 0 をつけて 010 が答えである。

前回と同じように、 0 と 1 が無限に左へ続く数字列全体のなす集合から、 0 が有限個しか現われないものを除いたものを Ξ と書こう。 この各元に 1 を足した数字列を求める方法は前と同じとする。 そして、この数字列の列から 0 または 1 からなる数列を決めるのだが、 最初の項は勝手に 0 か 1 と決める。 その後は、1 を足す際に変わるビットの数は有限だから、 変わったのが偶数個なら変化なし、 奇数個なら 0 から 1 に、あるいは 1 から 0 に変化するものとする。

上の証明から、次が言えた。 こうやってできる数列から、元の Ξ の元が復元できる。 つまり、Ξ の異なる元からは異なる数列ができる。

2009-01-24 (6) 23:11:44 +0900

前回の加筆部分に、つまらない間違いが何箇所あったので、修正した。

2009-01-26 (1) 22:51:43 +0900

きょうの補筆箇所

2009-01-10 (6) 02:30:05 +0900

女性に対しても「Yes, sir.」と言ってもいいのか……。

昨年六月 12 日放送のNHKラジオ「実践ビジネス英語」で知った。 ジーニアス英和にも書いてある。

大学のときのフランス語の先生が、 英会話を習っても女性に「Yes, sir.」なんて言ってる情けない人がいる、 と言われたのが強く印象に残っているので、ちょっと頭が混乱している。

Yes/No を強めるときだけ使える、とジーニアスは読めるな。

2009-01-10 (6) 02:06:27 +0900

八犬伝で「悌」の字を初めて見たとき「牟田悌三」の「悌」だと思ったっけ

「仁義礼智忠信孝悌」の「悌」だが、 そのときまで、ほかに使われているのを見たことがなかったのだろう。

牟田悌三さん死去のニュースを見たら思い出した。

2009-01-10 (6) 01:56:53 +0900

オビ=ワンもライトセーバーの先で突くことがあるんだ

クワイ=ガンはライトセーバーで宇宙ステーション内の扉を破ろうとしたし、 アナキンは母親が捕らわれていたサンドピープルのテントや、 III で閉じ込められたエレベータの天井を破る。 ヨーダは、III でオーダー 66 後にジェダイ寺院に侵入しようとした際、 クローン兵の胸にライトセーバーを槍のように投げつけた。

では、オビ=ワンはそのようなライトセーバーの使い方をしただろうか? すなわち、 ライトセーバーの先で突く、という使い方である。II で、 カニとカマキリの合わさったようなモンスターにとどめをさすときに使っているのはすぐに思い出せた。 《クローンの攻撃>カニの怪物にとどめを刺すオビ=ワンだけ髪が真ん中分け》 参照。

I から III を早送りを交えつつさっと見てみたのだが、 I の宇宙ステーション内で雑魚ドロイド一体を刺して倒しているし、 ジェダイ寺院への侵入の際にもクローン兵をそのやり方で倒しているようだ。

IV はいま手元に DVD がないが、たぶんそういう使い方はしていなかったと思う。

スター・ウォーズ>オビ=ワンは敵を倒す以外に剣を使ったことがあるか?》 も参照。

2009-01-10 (6) 01:31:02 +0900

クワイ=ガンもベイダーがジェダイに“帰還”すると見抜いていなかったのか

スター・ウォーズの旧三部作では、 オビ=ワンもヨーダもベイダーがジェダイに“帰還” するとは見抜いていなかったようだ。

だが、III の最後で、 オビ=ワンはヨーダから冥界のクワイ=ガンと交信する方法を教わった。 砂漠での長い生活の間の訓練だとヨーダが言ったことから推測すると、 その交信は一回だけではなく、かなり長い間、続いたように思われる。 クワイ=ガンはアナキンがフォースにバランスをもたらす者だと信じていたから、 アナキンがダース・ベイダーになったあとも、 冥界からもそのことをヨーダやオビ=ワンにアドバイスしていても不思議はないと思うのだが。 そうしていたら、旧三部作の筋書きはもう少し違うものになっていたような。

2009-01-10 (6) 01:22:32 +0900

青空文庫で「蟹工船」を読んでしまった

「読んでしまった」というのは、ほかにすることがあったのに、という意味である。 話の内容は悲惨だが、想像していたようなグロテスクな描写はなかった。

ケータイで読んだので、ルビは漢字のうしろにカッコつきでつく。 ちょっと読みづらかった。

2009-01-07 (3) 00:56:21 +0900

地球人はウルトラマンの変身するところを見ても大丈夫なのか?

ウルトラセブンは最終回、アンヌの目の前で変身した。 ウルトラマンが変身するのを見た、 テレスドンを操っていた地底人は、 フラッシュビームの明るさに目がくらんで全滅してしまった。 もしも地球人が見たらどうなるのだろう? そういうシーンはあったかな?

2009-01-07 (3) 00:52:53 +0900

朝日新聞>Bœuf と書けないのか、Boeuf と書いている

2003年11月27日づけ大阪本社版社会面 「インド・欧の言語 ルーツはトルコ?」の図の中で。

日本を代表する新聞の一つがこれでは情けないのではないか。

2009-01-07 (3) 00:45:12 +0900

朝日新聞石川面>“倒れている男性を別の男性が見つけた”

2008年12月30日づけ朝日新聞大阪本社版石川面の、 「白山の農道で身元不明の遺体」。 《……うつぶせに倒れている男性を、 散歩していた別の男性(73)が見つけたと……》 の「別の男性」で笑ってしまった。間違ってはいないのだが。

2009-01-07 (3) 00:40:03 +0900

国立国会図書館法に「真理がわれらを自由にする」と書かれているのか……。

2008年12月30日づけ大阪本社版社説「国会図書館 知の基盤を厚く、強く」。

「真理がわれらを自由にする」

創立の精神を表す国立国会図書館法の前文の一節だ。 東京・永田町の本館カウンターの上に刻まれている。

これはヨハネによる福音書 8,32 の句である。

2009-01-07 (3) 00:03:47 +0900

セイコーの電波時計 SQ640S がちょうど8分遅れている

この「いろいろ」を書いているパソコンのディスプレイの上に乗せているのだが、 間違った電波を受信してしまったのだろう。 隣の SQ648S は正しい時刻を示している。 初めての経験だ。電波時計だけに頼るのは危険ということか。

いま、リセットしたり強制受信させたりしてみたところ、 こわれてはいないようだ。

2009-01-07 (3) 00:01:10 +0900

「分」は、十進で表され、その十の位と一の位が二進で送られてくる。 「分」の一の位の八を表すビットが落ち、 さらにチェックサムも違って、結果としてチェックを通ってしまった、 ということが複数回続けて起こった、ということだろう。 「分」の十の位の一を表すビットが落ち、 一の位の二を表すビットが立ってしまった、ということも考えられるか。 この場合はチェックサムが正しくても受信ミスを発見できない。

2009-01-10 (6) 02:24:48 +0900

朝日新聞>真珠湾戦死者は「追悼」、えひめ丸事故の犠牲者は「慰霊」

2008年12月30日づけ大阪本社版第2面 「真珠湾戦死者を河野議長が追悼 / えひめ丸犠牲者も」。 河野洋平衆院議長が、 《旧日本軍の真珠湾攻撃による戦死者らが眠るホノルルの米国立太平洋記念墓地で献花した》 は「献花」。 《実習船えひめ丸が米原潜に衝突され、 実習生ら9人が死亡した事故の慰霊碑も訪れ、 犠牲者の冥福を祈った》では「慰霊」と「冥福」。 このハワイ訪問は、 《ペロシ米下院議長が原爆慰霊碑などを訪れたことへの返礼》 では「慰霊碑」を「訪れた」。 最後に、同議長は 《29日には真珠湾を訪れ、湾内のアリゾナ記念館で献花を行う》 は「記念館」、「献花」。

米国関係は「献花」、 えひめ丸関連は「慰霊」「冥福」と使い分けられている。 タイトル行に書いた「追悼」は見出しに見えるのみ。

(ペロシ議長が訪れたのが「原爆慰霊碑」なのは、 日本側がそういう名前をつけているからであろう。 議長がそこで「慰霊」を行なったかどうかはわからない。)

2009-01-06 (2) 23:48:26 +0900

正月に餅で何人も死ぬと聞いた外国人は餅をどんな美味かと想像するだろう

そこまでしても日本人が食べるのだから、 さぞかしおいしいものだろう、と想像すると思うのである。

2009-01-06 (2) 20:27:51 +0900

「お代は見てのお帰りだい」の見世物小屋の中で死んだら代金は払うのか?

帰る際に払う約束で、帰らないのだから払う必要はないような気もするし、 遺体を運び出す際に遺族に支払い義務があるような気もする。 遺体を運びださないと言えば払わなくてもいいのかな?

2009-01-06 (2) 20:24:52 +0900

きょうの補筆箇所

2009-01-06 (2) 02:57:00 +0900

感嘆符二つを一文字にまとめた「!!」って、メールで使えたっけ?

2008年12月28日づけ朝日新聞大阪本社版社会面 「橋下メール府政」。橋下知事が送ったメールの例があがっている。

「府市で、WTC周辺の街づくり構想の絵を描きながら、 大阪都市改造の夢を府市民に提供する必要があるかと思います。 ご考察のほど、よろしくお願いします!!」

目を引いたのは、最後の「!!」だ。 感嘆符二つを一文字にしてある。これはJISコードにはないが、 最近のコードにはあるのだろうか。 それとも、半角あるいは全角の感嘆符が二つ並んでいたのを、 朝日新聞が一文字にまとめたのだろうか。

付)私の携帯電話では、絵文字の中に「!!」がある。

2009-01-06 (2) 02:49:51 +0900

「63パターン対応!! 本格マッサージシート」と聞くと

6通りのもみ方が内蔵されており、 それぞれを独立に on/off できるので全部で 26 = 64 通り。 でも、全部 off にしたらもんでいることにならないので 1 を引いて 63 通り、 なーんてことを想像してしまう。

2008年12月28日づけ朝日新聞大阪本社版に掲載された、 夢み堂の全面広告より。

2009-01-06 (2) 02:43:42 +0900

三谷幸喜「ありふれた生活」にまた「おとっつあん」が

2008年12月27日づけ大阪本社版掲載分の、第 415 回。 《朝日新聞>「三谷幸喜のありふれた生活」に「おとっつあん」》、 《朝日新聞>「三谷幸喜のありふれた生活」に猫の「おとっつあん」が再登場》 参照。

2009-01-06 (2) 02:37:07 +0900

「天運の珠」とかいう縁起物の新聞折り込み広告がまたはいってきたぞ

前にはいってきたのをとってあったので、比べてみたところ、 この「天運の珠」を作成してくれるという人の年齢も、 中の体験談もすべて同じ。 違うのは「料金受取人払郵便」の差出有効期限が 「平成20年03月31日まで」から「平成22年01月31日まで」に変わっていることだけ (だと思う)。 おそらく、前のは一年以上前にはいってきたもので、 作成者が生存・実在しているなら、年齢が変わっているのが当然だと思うのだが……。

なお、Google で「天運の珠」を検索すると、 このような広告が多く掲載されるオカルト系雑誌の広告を調査したページも見つかり、 それらはなかなか興味深い。

2009-01-06 (2) 01:52:57 +0900

年賀状、返事も書き終えた

1日にも返事を書いたが、体調不良で投函したのは4日の日曜日。 2日以降の分の返事をいま書き終えた。 (厳密に言えば赤字で「年賀」と額面の下に入れる作業が残っている。)

古い住所に出して戻ってきてしまい、年が明けてから出し直したのが2通。 書き損じが1通。 これで印刷した100枚のはがきをちょうど使い切った。

しかし、1日に処理(=住所録に印をつけること) を済ませたはがきと新しく着いたはがきをごっちゃにしてしまい、 結局全部チェックし直すはめになるとは、情けないほどの事務能力の低下。

2009-01-06 (2) 01:26:42 +0900

この画像、やっぱり怖いかな? 待ち受け画面にしていたら驚かれたのだが

昨年十二月に実家に帰ったとき、どうせ家族に携帯電話を見られると思い、 待ち受け画面を http://blog-imgs-1.fc2.com/i/m/i/imihu/vip192099.jpg にしておいたら、驚かれた。 (リンクをはっても、それをたどると Forbidden になるようなので、 リンクをはるのはやめた。)

どちらかといえば美少女系の少女が、 ふすまのすき間からこちらをのぞいている写真、あるいはCGなのだが、 いきなり見ると恐怖感を覚えるかも知れない。

2009-01-05 (1) 19:13:43 +0900

「手紙はいいけどメールはよくない」のか、「手紙もメールもよくない」のか

2008年12月26日づけ朝日新聞大阪本社版社説 「学校ケータイ 家庭と共にルール作りを」の最終段落。

なにより、子どもたちをケータイ漬けから救い出し、 顔と顔を見合わせて意志を交わす本来のコミュニケーション能力を高めてやりたい。 教室も家庭も、そんな場であるべきだ。

視覚障害者はどうするのかとか、 なんらかの理由で顔を見せることができずに包帯等で覆っている人はどうするのか、 という問題には立ち入らない。

手紙も、 「顔と顔を見合わせて意志を交わす本来のコミュニケーション」 ではないことになる。 一昔前の世代である我々には、 「電話で済ませないで手紙を書け」と言われたことが思い出されてしまう。 これより前の部分を見ると、 《確かに、府教委の実態調査から浮かび上がる 「子どもの1日」はケータイ漬けそのものだ。 中1では携帯電話を「3時間以上使用する」が全体の15%》 などと、ケータイ漬けがいけないということははっきりするが、 では、一日に3時間以上手紙を書く子はやはり問題なのか。

そうそう、いまの携帯電話にはテレビ電話機能もあるんだよな……。 使ったことはないが、一応、「顔と顔を見合わせて意思を交わす」 ことはできるようだ。

2009-01-05 (1) 19:04:24 +0900


すのもの Sunomono