COUNTERSince June 16, 2000
STUDIO KAMADAJapanese to English by Excite
2月 3月 4月 | きょう カレンダー | サイトマップ | ホーム
2004年3月の日記2004-04-10(Sat) 13:43
<< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>

2004年3月1日(月)

YM2151におけるキーコードと出力周波数の関係(仮)
 既存のエミュレータのソースを見れば書いてあることなのだろうとは思いつつ、X68000 Emulator in Javaは可能な限り自力で開発したいので、既存のエミュレータのソースは見ずに自分で調べて予測してみました。scaleが整数に収まったときはちょっと感動してしまいました。KFの効果は未確認です。
YM2151におけるキーコードと出力周波数の関係(仮)
KF=0, MUL=1のとき

出力周波数 fout=clock÷225-OCT×scale[NOTE]

ここでclockはYM2151の動作周波数。X68000の場合はclock=4000000。

note0123456789101112131415
scale162172182193193204216229229243257273273289306324

 例:
  OCT=0, NOTE=0, MUL=0のとき
    fout=4000000Hz÷225-0×162÷2=9.655952Hz
  波長は
    1/9.655952Hz=0.103563秒


2004年3月2日(火)

メモ
 きのうの「YM2151におけるキーコードと出力周波数の関係(仮)」はOCTが大きい場合に出力周波数に誤差が生じてしまうので、scaleのインデックスにOCTを含めて大きなテーブルを構築する必要がありそう。

火星探査
 日本時間の明日未明、NASAが火星探査機Opportunityによってもたらされた「重要な発見」(significant findings)に関する記者会見を開くとのこと。
  Major news from Mars rover to be announced Tuesday(Spaceflight Now、3月1日)→@nifty翻訳
  NASA to Announce 'Significant Findings' of Water on Mars Tuesday(SPACE.com、3月1日)→@nifty翻訳
  Nasa to reveal Mars water secrets(BBC NEWS Science/Nature、3月1日)→@nifty翻訳
  Mars Rover Opportunity Makes 'Significant' Finding(Reuters Science、3月2日)→@nifty翻訳
  NASA revelation will address evidence of water on Mars(FLORIDA TODAY、3月2日)→@nifty翻訳

3, 53, 553, 5553, 55553, ...
 数列 (5·10n-23)/9 = { 3, 53, 553, 5553, 55553, ... } の素因数分解表を n≤150 まで伸ばしました。未分解の数は19個です。例によって未確認の素因数が30桁前後からあると思いますので、GMP-ECMなどで探してみてください。GMP-ECMのソースはECMNET(Paul Zimmermannさん)で、GMPライブラリのソースやマニュアルはThe GNU MP Bignum Library(Swox AB)で入手できます。
  Factorizations of 55...553(STUDIO KAMADA)


2004年3月3日(水)

火星にはかつて水があった
 NASAが発表した「重要な発見」は、大方の予想の通り「火星にはかつて水があった」ということでした。Opportunityが岩石の中から発見したジャロサイト(硫酸鉄の水和物)が水のない環境で作られたと考えるのは無理があることなどのいくつかの証拠から、Opportunityがいる場所にはかつて水が存在していたと結論付けられました。どのくらい前にどのくらいの期間水が存在していたのか(あるいは現在もどこかに存在しているのか)についてはわかっていません。
  Opportunity Rover Finds Strong Evidence Meridiani Planum Was Wet(JPL News、3月2日)→@nifty翻訳
  Rover finds evidence landing site once wet, habitable(Spaceflight Now、3月2日)→@nifty翻訳
  火星: 表面に水の証拠 過去に生物の可能性(Mainichi INTERACTIVE、3月3日)

YM2151におけるキーコードと出力周波数の関係
 掲示板にも書いたのですが、『Inside X68000』に書かれている
「OPMはクロック周波数として3.579545MHzが与えられたときにもっとも誤差が少なくなるような音階テーブルを持っている」
という説明の3.579545MHzという周波数の記述は3.580000MHzの誤りだと思います。

 根拠:
  4.000000MHzを与えた場合のキーコード74の出力周波数が491.622Hzであることから、基準と考えられるAの音の入力周波数と出力周波数の比を1031/223と予測しました。
      |4000000×1031/223 - 491.622| = |491.619 - 491.622| = 0.003
  3.579545MHzを与えた場合と3.580000MHzを与えた場合の誤差を計算すると以下のようになります。
    3.579545MHzを与えた場合
      |3579545×1031/223 - 440.000| = |439.943 - 440.000| = 0.057
    3.580000MHzを与えた場合
      |3580000×1031/223 - 440.000| = |439.999 - 440.000| = 0.001
  上の結果は基準と考えられるAの音について後者が極端に正確であることを示しており、意図的なものを感じます。
  他のキーコードを含めて1オクターブ分の平均の誤差を見ても、3.579545MHzよりも3.580000MHzのほうが誤差が小さくなっていました。


2004年3月4日(木)

YM2151におけるキーコードと出力周波数の関係
 KCとMULの解析が完了。次はKF。
YM2151におけるキーコードと出力周波数の関係
MUL=1のとき

  出力周波数 fout = scale[KC]×clock÷226

scale[KC]
3.58MHzのときC#DD#EEFF#GGG#AA#A#BCC#
4MHzのときD#EFF#F#GG#AAA#BCCC#DD#
KCNOTE+0+1+2+3+4+5+6+7+8+9+10
(A)
+11
(B)
+12
(C)
+13
(D)
+14
(E)
+15
(F)
OCT
0+0324344364386386409433459459486515546546578613649
16+1649688729772772818867918918973103110921092115712261299
32+21299137614581545154516371734183718371946206221852185231524522598
48+32598275229163090309032743468367436743892412443704370463049045196
64+451965504583261806180654869367348734877848248874087409260980810392
80+510392110081166412360123601309613872146961469615568164961748017480185201961620784
96+620784220162332824720247202619227744293922939231136329923496034960370403923241488
112+741488440324665649440494405238455488587845878462272659846992069920740807846482976

  clockはYM2151の動作周波数。clock=3580000(3.58MHz)が理想的。X68000の場合はclock=4000000(4MHz)。

MUL=0のとき

  scale[KC]の値を右へ1ビットシフトする(端数は切り捨てる)。

MUL=2〜15のとき

  scale[KC]の値をMUL倍する。

 例:
  動作周波数が3.58MHzでKC=74、MUL=1のとき
    8248×3580000÷226 = 439.9991Hz


2004年3月5日(金)

動作速度
 音声出力OFFでXVI 10MHz比180%前後。


 ADPCMをONにすると170%前後まで落ちます。OPMが入ったらどこまで落ちるかなぁ。


2004年3月6日(土)

プリプロセッサの効果
 X68000 Emulator in Javaのコードから、テキスト画面のみONで水平スクロール位置が8で割り切れるときにビットマップに8ピクセル出力する処理をピックアップしてみました。この部分では、ループ展開、定数式の演算、「<>」による左右シフトの振り分けなどでプリプロセッサを活用しています。
 プリプロセス前
byte p0 = m[0xe00000 + ty + tx];
byte p1 = m[0xe20000 + ty + tx];
byte p2 = m[0xe40000 + ty + tx];
byte p3 = m[0xe60000 + ty + tx];
tx = (tx + 1) & 0x7f;
#for (@n = 0 .. 7) {
  bitmap[da + @n] = palet32ts[((p3 <> (-(7 - @n) + 3)) & 0b_1000) +
                              ((p2 <> (-(7 - @n) + 2)) & 0b_0100) +
                              ((p1 <> (-(7 - @n) + 1)) & 0b_0010) +
                              ((p0 <> (-(7 - @n) + 0)) & 0b_0001)];
}
 プリプロセス後
byte p0 = m[14680064 + ty + tx];
byte p1 = m[14811136 + ty + tx];
byte p2 = m[14942208 + ty + tx];
byte p3 = m[15073280 + ty + tx];
tx = tx + 1 & 127;
bitmap[da] = palet32ts[(p3 >> 4 & 8) + (p2 >> 5 & 4) + (p1 >> 6 & 2) + (p0 >> 7 & 1)];
bitmap[da + 1] = palet32ts[(p3 >> 3 & 8) + (p2 >> 4 & 4) + (p1 >> 5 & 2) + (p0 >> 6 & 1)];
bitmap[da + 2] = palet32ts[(p3 >> 2 & 8) + (p2 >> 3 & 4) + (p1 >> 4 & 2) + (p0 >> 5 & 1)];
bitmap[da + 3] = palet32ts[(p3 >> 1 & 8) + (p2 >> 2 & 4) + (p1 >> 3 & 2) + (p0 >> 4 & 1)];
bitmap[da + 4] = palet32ts[(p3 & 8) + (p2 >> 1 & 4) + (p1 >> 2 & 2) + (p0 >> 3 & 1)];
bitmap[da + 5] = palet32ts[(p3 << 1 & 8) + (p2 & 4) + (p1 >> 1 & 2) + (p0 >> 2 & 1)];
bitmap[da + 6] = palet32ts[(p3 << 2 & 8) + (p2 << 1 & 4) + (p1 & 2) + (p0 >> 1 & 1)];
bitmap[da + 7] = palet32ts[(p3 << 3 & 8) + (p2 << 2 & 4) + (p1 << 1 & 2) + (p0 & 1)];


2004年3月7日(日)

WinX68k高速版v0.95
 tamuさんによるWindows用X68kエミュレータ『WinX68k高速版』のv0.95が公開されました。
  WinX68k高速版/WinX68030の部屋(tamuさん)

M68000ファミリのマニュアル
 M68000ファミリのマニュアルはMotorola, Inc.の検索窓で「M68000PRM」を検索すれば一発で出てきます。マニュアルの名前を忘れてしまったときは「M68000」を検索するだけでもMaster Selection Guide 2003 (M68000ファミリ)が出てくるので、そこで「M68000PM/AD R1」を参照すれば見つかります。Motorola Japanから「製品&サービス」→「マイクロプロセッサー」→「16/32ビットCISCプロセッサ(68K)」と辿っても同じです。なぜかPDFファイル名が2種類ありますが中身は同じものです。
 M68000 FAMILY Programmer's Reference Manual
  http://e-www.motorola.com/files/archives/doc/ref_manual/M68000PRM.pdf
  http://www.mot.co.jp/SPS/html/lit/pdf/m68000pm_rev1.pdf


2004年3月8日(月)

火星の“うさみみ帽子”?
 Opportunityが撮影した複数の画像に大きさが4〜5cmくらいの小さな“うさみみ帽子”のような形の物体が写っており、しかもそれが“移動している”ことがわかって一部で大騒ぎになったりならなかったり。Opportunity自身のエアバッグか何かの切れ端が風に流されたものと考えるのが自然ですし、スペクトル分析の結果もその可能性を否定しなかったとのことですが…。
  Sheddings from Opportunity Lead Rover Fans on a "Bunny" Chase(NASA JPL、3月4日)→@nifty翻訳
    http://marsrovers.jpl.nasa.gov/spotlight/opportunity/images/b19_Opp_Mission_Success_crop_040302151804_br.jpg … 461×743ピクセル、192KB


2004年3月9日(火)

火星の日食
 地球上の一部の地域が月の影に入って太陽の一部分または全体が見えなくなるのが日食ですが、火星でも衛星フォボスによる日食が起こります。しかも、ジャガイモのようないびつな形をしていることで有名なフォボスは直径が月の1/150くらいしかないのに、フォボスのシルエットは太陽を半分も覆ってしまいます。これは、地球よりも太陽から遠い火星では太陽の見た目のサイズが小さいことに加えて、地球からおよそ38万kmのところにある月に対して太陽系で最も主星に近い衛星とされるフォボスは火星の地表から約6000kmしか離れていないためです。地球の日食は食分が大きいと欠け始めから欠け終わりまで数時間かかりますが、軌道の低いフォボスによる火星の日食は20〜30秒で終わってしまうそうです。
  NASA Rovers Watching Solar Eclipses by Mars Moons(NASA JPL News、3月8日)→@nifty翻訳
  Martian Eclipses: Deimos and Phobo(NASA JPL MER、3月8日)→@nifty翻訳


2004年3月10日(水)

MS04-008
 修正プログラムの内容
  MS04-008 : Windows Media サービスの重要な更新
  Windows Media サービスの脆弱性により、サービス拒否が起こる (832359)
 脆弱性の影響
  サービス拒否
 最大深刻度
  警告
 影響を受けるソフトウェア
  Microsoft Windows 2000 Server Service Pack 2
  Microsoft Windows 2000 Server Service Pack 3
  Microsoft Windows 2000 Server Service Pack 4
  Microsoft BackOffice Server
 絵でみるセキュリティ情報
  絵でみるセキュリティ情報 MS04-008(Microsoft Security、3月10日)
 詳細情報
  Windows Media サービスの脆弱性により、サービス拒否が起こる (832359) (MS04-008)(Microsoft TechNet、3月10日)
 ダウンロード
  WindowsUpdate(Microsoft)

MS04-009
 修正プログラムの内容
  MS04-009 : Office の重要な更新
  Microsoft Outlook の脆弱性により、コードが実行される (828040)
 脆弱性の影響
  リモートでコードが実行される
 最大深刻度
  緊急(3月11日更新)
 影響を受けるソフトウェア
  Microsoft Office XP Service Pack 2
  Microsoft Outlook 2002 Service Pack 2
 絵でみるセキュリティ情報
  絵でみるセキュリティ情報 MS04-009(Microsoft Security、3月10日)
 詳細情報
  Outlook の脆弱性により、コードが実行される (828040) (MS04-009)(Microsoft TechNet、3月10日)
 ダウンロード
  Office のアップデート(Microsoft)
 メモ
  この修正プログラムはWindowsUpdate(Microsoft)の更新の確認では表示されません。Office のアップデート(Microsoft)で更新の確認を行い、Service Pack 3をインストールする必要があります。また、インストールの際にOfficeのCD-ROMが必要になります。

MS04-010
 修正プログラムの内容
  MS04-010 : MSN Messenger の重要な更新
  MSN Messenger の脆弱性により、情報が漏えいする (838512)
 脆弱性の影響
  情報漏えい
 最大深刻度
  警告
 影響を受けるソフトウェア
  Microsoft MSN Messenger 6.0
  Microsoft MSN Messenger 6.1
 絵でみるセキュリティ情報
  絵でみるセキュリティ情報 MS04-010(Microsoft Security、3月10日)
 詳細情報
  MSN Messenger の脆弱性により、情報が漏えいする (838512) (MS04-010)(Microsoft TechNet、3月10日)
 ダウンロード
  WindowsUpdate(Microsoft)

KB832670
 修正プログラムの内容
  Microsoft IME (Input Method Editor) のセキュリティ修正プログラム、および安定性やパフォーマンスに関するアップデートを含む、最新のアップデート
 影響を受けるソフトウェア
  Microsoft Office XP Service Pack 3
 詳細情報
  832670 - [OFFXP] Office XP IME (2004 年 3 月 9 日) アップデートの概要(Microsoft Support、3月10日)
 ダウンロード
  Office のアップデート(Microsoft)
  Office XP IME アップデート: KB832670(Microsoft)

「Yahoo!BB」と「ジャパネットたかた」
 昨年末時点の450万人分の顧客情報がどこから流出したのか特定されていないにもかかわらず相変わらず駅前の路上で道行く人に声を掛けたり(一昨日秋津駅前で目撃しました)CMを流したりして積極的に新規の顧客を漁っている「Yahoo! BB」と、6年前の顧客情報の流出が判明した時点で即座に営業を自粛した「ジャパネットたかた」。どちらも何らかの落ち度があったから顧客情報が流出したのだろうし業種も規模も違うから単純な比較はできないけれど、「顧客を二度と裏切らない」という意志をしっかり示しているのがどちらなのかは一目瞭然。


2004年3月11日(木)

MS04-009
 MS04-009の最大深刻度が「緊急」に引き上げられました。

MS04-009で修正された脆弱性
 公表されている情報によると、MS04-009で修正されたMicrosoft Office XP Service Pack 2およびMicrosoft Outlook 2002 Service Pack 2に含まれる脆弱性は『「mailto:〜」に記述されたアドレスがコマンドラインを経由してOUTLOOK.EXEに渡される際に「"」が適切に処理されておらず、「"」以降に記述された文字列がコマンドラインスイッチと見なされてマイコンピュータゾーンでスクリプトを動作させることができて、コードの実行に繋がる』というもの。「mailto:〜」は「<IMG src="〜">」に記述できるので、MS04-009を適用していないOutlookを使用しているとウェブページやHTMLメールを開いただけで任意のコードが実行される可能性がある。他のソフトウェアについても同様の脆弱性がないか確認するべき。
  Outlook mailto: URL argument injection vulnerability(Neohapsis Archives - Bugtraq、3月10日)
  よく寄せられる質問 : マイクロソフトセキュリティ情報(MS04-009)(Microsoft TechNet、3月11日)


2004年3月12日(金)

迷惑メール(その1)
 偽装された差出人に「【重要】ウィルスチェックの結果」というSubjectの警告メールを送り付けるウイルスチェックサービスがあるようです。Subjectに「【重要】」などという言葉を入れたメールを無関係の人に送信するのは迷惑なのでやめてほしいです。私は偽装されている可能性の高い差出人宛にウイルス警告メールを送ること自体迷惑以外の何物でもないと思っていますが、どうしても送りたいのなら「未許諾広告」のような特定の言葉をSubjectに入れることを義務付けて簡単に排除できるようにしてもらいたいものです。

迷惑メール(その2)
 「消費税「総額表示の義務付け」の件」というSubjectのスパムが来ました。誰もが知っている話題に便乗してメールの開封率を高くする手口です。


2004年3月13日(土)

Near-repdigitな素数
 3を1161個並べて10の位だけ1に変えた1161桁のNear-repdigitは素数。

 この数をNとすると、Nは次のように書ける。
  N = (10^1161-61)/3
 N-1は代数的に分解できる。
  N-1 = 2^6 * (5^2*10^385-1)/3 * ((5^2*10^385)^2+5^2*10^385+1)
 (25*10^385-1)/3は386桁の数だが、手元にあるNear-repdigitの833...33の系列の素因数分解表(の未公開部分)で分解済みだった。
  (25*10^385-1)/3 = 31 * 191 * 670950209 * 301921410838013 * P359
 N-1の既知の素因数が33%を超えたので、pock.exeを用いてNが素数であることを証明できた。


2004年3月14日(日)

Near-repdigitな素数
 "1"を4809個並べて10の位(右端から2番目)だけ"0"に変えた4809桁の数はおそらく素数。

 この数をNとすると、Nは次のように書ける。
  N = (104809-91)/9
 N-1はR(4807)の素因数分解結果を用いて次のように分解できる。
  N-1 = 2^2 * 5^2 * 1013 * 3037 * 21649 * 23599 * 81283 * 257489 * 513239 * 1246477 * 72932311 * 338605081 * P10 * P19 * P23 * P25 * P28 * P35 * P124 * P179 * C363 * PRP3952
 PRP3952が素数であることが確定すれば、N-1の既知の素因数が33%を超えてNが素数であることも確定する。


2004年3月15日(月)

キーボード(仮)
 X68000 Emulator in Javaに付ける仮想キーボードの下書き。

ノーマル

かなモード+LED点灯


2004年3月16日(火)

小惑星セドナ
 昨年11月にカリフォルニア工科大学のチームが発見し、スピッツァー宇宙望遠鏡によって太陽系内の天体であることが確認された小惑星。発見された場所は冥王星よりも3倍も遠い極寒の世界で、北極海に棲む生き物を創造したイヌイットの女神の名からセドナ(Sedna)と呼ばれています(2003年11月18日の日記に書いた2003 VS2とは別の天体です)。セドナの直径は1700kmくらい(冥王星の4分の3)と予測されており、遠日点距離が900天文単位に達する楕円軌道を1万年以上かけて太陽を回っています。1930年の冥王星の発見以降に太陽系内で発見された天体の中ではおそらく最大ですが、第10惑星と呼ぶには質量が小さすぎるようです。セドナは衛星を持っている可能性が高いとのことで、より詳しい観測結果が期待されています。
 セドナを発見したチームのMichael E. Brown氏のページ
  Mike Brown(Caltech)
    Sedna (2003 VB12)
 NASAのニュースリリース
  Most Distant Object In Solar System Discovered(NASA、3月15日)→@nifty翻訳
 Javaによる軌道シミュレーション(ZOOMを左端まで動かさないと見えません)
  Asteroid (2003 VB12)(NASA JPL NEO)
 関連記事
  Scientists: Most distant object in solar system found(CNN.com Space、3月15日)→@nifty翻訳
  太陽系最遠の小惑星を確認 NASA(CNN.co.jp サイエンス、3月16日)
  新天体: 太陽系で最も遠い惑星状天体 米加工科大チームが発見(Mainichi INTERACTIVE、3月16日)
  太陽系に新天体、冥王星発見後で最大 「セドナ」と命名(asahi.com サイエンス、3月16日)
  Sedna of the Outer Solar System(NASA GSFC ANTWRP APOD、3月16日)→@nifty翻訳

Stella Theater Pro/Lite Ver2.21
 Windows用のプラネタリウムソフト。Stella Theater Liteはフリーウェア、Stella Theater Proはシェアウェア。バージョンアップしていたのでメモ。
  Toxsoft Home Page
    Stella Theater Pro - 本格的な天文・プラネタリウムソフト
    Stella Theater Lite - シンプルで使いやすいフリーの天文・プラネタリウムソフト


2004年3月17日(水)

1, 41, 441, 4441, 44441, ...
 数列 (4·10n-31)/9 = { 1, 41, 441, 4441, 44441, ... } の素因数分解表を n≤150 まで伸ばしました。未分解の数は19個です。
  Factorizations of 44...441(STUDIO KAMADA)

小惑星セドナ関連
 JPLのNEO(Near Earth Object Program)のトップページが久々に更新されていたのでメモ。NEOは地球近傍小天体ですから、太陽系のかなたにあるセドナは小惑星の中では対極に位置する存在ですが。
  Near-Earth Object Program(NASA JPL)
  冥王星の3倍かなた、太陽系最遠の天体が発見された(アストロアーツ、3月16日)
  国立天文台・天文ニュース(704) 太陽系最遠の天体 2003 VB12 の発見(国立天文台、3月16日)


2004年3月18日(木)

31, 311, 3111, 31111, 311111, ...
 数列 (28·10n-1)/9 = { 31, 311, 3111, 31111, 311111, ... } の素因数分解表を n≤150 まで伸ばしました。表の中で黄色の数字で[〜]で囲んで表示されているのが未分解の合成数です。これらの合成数には未発見の素因数が30桁前後から含まれていると思いますので、GMP-ECM(楕円曲線法を用いた素因数分解プログラム)などで探してみてください。
 GMP-ECMのソースはECMNET(Paul Zimmermannさん)で、GMPライブラリのソースやマニュアルはThe GNU MP Bignum Library(Swox AB)で入手できます。私はこれらをCygwinの環境でコンパイルして使用しています。
 参考までに、この数列で131番目(今回追加した 101≤n≤150 の範囲で31番目)に分解された数は (28·10116-1)/9 で、102桁の合成数から32桁の素因数が B1=246000 で見つかりました。
  Factorizations of near-repdigit numbers(STUDIO KAMADA)
    Factorizations of 311...11


2004年3月19日(金)

小惑星2004 FH
 2004年3月18.92276日(日本時間のきょう午前7時8分頃)、小惑星2004 FHが地球に最接近し、高度43000kmのところを地球の重力の影響を受けて軌道を15度も曲げながら通過します。高度43000kmというのは月までの距離(地球の中心から384400km)のおよそ9分の1で、静止軌道(高度35800km)のおよそ1.2倍です。2004 FHの直径は30メートル程度で、地球に衝突する心配はありません。このサイズでこの距離のところを通る小惑星は2年に1回くらいはあるらしいのですが、ほとんどが発見されないまま通過してしまうので、最接近の前に発見された小惑星としては2004 FHは記録的な近さです。2004 FHは南大西洋の上空を通過すると予測されており、ヨーロッパ、アジアおよび南半球では双眼鏡で見えるかも知れないとのことです。
 NASAの情報
  Near-Earth Object Program(NASA JPL)
    Recently Discovered Near-Earth Asteroid Makes Record-breaking Approach to Earth@nifty翻訳
 Javaによる軌道シミュレーション
  Asteroid (2004 FH)(NASA JPL NEO)
 過去および未来を含む接近の予測
  NEODyS: 2004FH(ピサ大学)
 関連記事
  NASA: 100-foot asteroid to fly by Earth(CNN.com Space、3月18日)→@nifty翻訳
  Earth Safe from Ultra-close Asteroid Flyby Today(SPACE.com、3月18日)→@nifty翻訳
  Space rock makes closest approach(BBC NEWS Science/Nature、3月18日)→@nifty翻訳

小惑星2004 FH関連
  リニア計画チーム、今まででもっとも地球に接近した小惑星を発見(アストロアーツ、3月19日)


2004年3月20日(土)

春分の日
 寒いと思ったら、朝から降っていた雨が昼前に雪に変わっていた。
 撮影日:きょう。ロケ地:自宅(東京都東村山市)。


素数候補
 "3"を30177個並べて右端に"1"を1個付け加えた30178桁のNear-repdigitな数 (1030178-7)/3 はおそらく素数。


2004年3月21日(日)

いかりや長介さん死去
 渋い演技が好きでした。
  訃報: いかりや長介さんが死去、72歳(Mainichi INTERACTIVE、3月21日)

(1030178-7)/3
 素数性の証明が困難であるとわかっている数列からPRPを探している人は少ないので、きのう見つけた (1030178-7)/3 はNear-repdigitで素数性の証明が困難なPRPとして公開されている情報の中では世界最大かも……と思ったのですが、Near-repdigit PalindromeのPRPで39311桁という記録がありました。PRPでもNear-repdigitの世界最大を目指すなら40000桁を超える必要がありそうです。
  Henri & Renaud Lifchitz's PRP Top records(www.primenumbers.net)
  The Top Twenty: Near-repdigit(The Prime Pages)


2004年3月22日(月)

PRP探索
 2日前に30000桁から再開したNear-repdigit 33...331 = (10n-7)/3 のPRP(probably prime)の探索を続行中。現在37000桁を超えたところで (1030178-7)/3 の次のPRPはまだ発見されていない。この数列は素数の出現頻度が高くてこれまで1つ前の素数から7000桁以上離れたことがなかったのだけれど、どうやら次の素数までの間隔は7000桁を超えてしまいそう。


2004年3月23日(火)

仮想キーボード
 X68000 Emulator in Javaに仮想キーボードを仮実装しました。この仮想キーボードは、マウスの操作、PCのキーボードからの入力、MFPから送られてくるLEDの設定、SRAMの設定(switch kana=jis/aiuとswitch xchg=0〜7)のすべてに反応してキーの表示がリアルタイムに変化します。具体的には、かな、ローマ字、CAPS、ひらがなの各LEDの状態とSRAMの設定とSHIFTとCTRLの押し下げの状態またはSHIFTとCTRLにマウスポインタが重なっているかどうかでキートップの文字が変化し、LEDの設定に従ってLED付きのキーのLEDの色が変化し、マウスポインタが重なっているキーはキートップの色が変化し、押し下げられているキーは大きさが変化します。普通のキーはマウスの左ボタンで押すと押し下げられてボタンを離すと元に戻りますが、SHIFTとCTRLは次に押したキーが離されるまで押し下げられた状態が持続します。また、すべてのキーについて右ボタンで押すともう一度押すまで押し下げられた状態が持続します。
 キーボードの左側にあるChoiceはテスト用で最終的なデザインとは関係ありません。

NIS 2004の脆弱性に対する修正パッチは「開発中」
 Norton Internet Security 2004に含まれているActiveXコンポーネントに任意のコードを実行できる穴があるらしい。日頃からセキュリティに気を配っている人ならばローカルなActiveXコンポーネントをリモートで起動されるようなことはないはずだけれど、対応の仕方が少しお粗末な感じ。実際に利用している人の意見として、利用者への情報提供が十分ではないと思うし、修正に時間がかかりすぎだと思う。
  Symantec Norton Internet Securityに任意のコードが実行できる脆弱性(impress INTERNET Watch、3月23日)
  Symantec Norton Internet Security/Norton AntiSpam にリモートアクセスの脆弱性(Symantec Security Response、3月23日)

XM6 version 1.60
 PI.さんによるWindows用X68000EXPERTエミュレータXM6のversion 1.60が公開されました。
  X68000エミュレータ XM6(PI.さん)

NASAの予告
 火星探査で重要な調査結果(major scientific finding)がもたらされたので火曜日の午後2時(日本時間の水曜日の午前4時)に記者会見を開くとのこと。
  New Mars rover discovery to be unveiled Tuesday(Spaceflight Now、3月22日)→@nifty翻訳


2004年3月24日(水)

火星にはかつて海があった
 3週間前にかつて水が存在していたことが確認された火星で、新たに少なくとも一部の地域はかつて塩分を含んだ水を湛えた浅い海で覆われていたことが判明したとのこと。
  Rover finds evidence of ancient sea on Mars(Spaceflight Now、3月23日)→@nifty翻訳
  火星: 過去に塩水の海 NASAが岩石表面から裏づけ(Mainichi INTERACTIVE、3月24日)

PRP探索
 数列 (10n-7)/3 = { 1, 31, 331, 3331, 33331, ... } のPRP(probably prime)の探索は4万桁の大台へ突入しました。しかし (1030178-7)/3 の次のPRPはいまだ発見されず、素数の出現頻度が高いと思われるこの数列でPRPの間隔が1万桁以上も離れてしまいました。探索できる範囲に次のPRPがあるとよいのですが…。

頭の体操
 円周上に1から32までの数が並んでいます。数を並べ替えて、隣り合う2つの数の和が32箇所すべてで平方数になるようにしてください。例えば1+2は平方数ではないので1と2は隣り合うことができませんが、1+3は平方数(4=2×2)なので1と3は隣り合うことができます。同様に1と8も和が平方数(9=3×3)なので隣り合うことができます。


2004年3月25日(木)

X68000 Emulator in Java
 まだ音が出ていませんし完成には程遠いのですが、とりあえず公開してみることにしました。ウェブブラウザ上で動きます。
  X68000 Emulator in Java

X68000 Emulator in Java
 掲示板にて、RXM/竜魔さんより、X68000 Emulator in JavaがPowerBookG4 500MHz MacOS X10.2.8+Safariで多少もたつきながらも動作したとのご報告をいただきました。WindowsとMacのどちらでも動くところはJavaの本領発揮といったところでしょうか。

素因数分解
 数列 (16·10n-61)/9 = { 11, 171, 1771, 17771, 177771, ... } の206番目で207桁の数 (16·10206-61)/9 について、既知の素因数を除いた残り115桁の合成数がTetsuya Kobayashiさんによって52桁と64桁の素数の積に分解されました。
(16·10206-61)/9 = 177...771<207> = 3 · 15725091139<11> · 475800748495892867<18> · 4901783965719986289006496835311<31> · 490788208443118459113864108769759<33> · C115
C115 = P52 · P64
P52 = 1517999133476517856754106431080765696307429236392467<52>
P64 = 2168793065506607897851349768372855861079489954737258129969373083<64>

きのうのわっかは…
 hoshikuzuさん、どうもです。きのうの頭の体操のわっかの絵ですが、単に円周上に1から32までの数を並べただけでは見る人が1周する前に飽きてしまうだろうと思ったので少し効果を加えました。普通に考えるともう少し数を減らしてもよいのではないかと思われるところであえて数を減らさなかったのは、私の芸術的センスの成せる業……ではなくて、「これより少なくすると解がなくなってしまう」というやむを得ない事情によるものです(どっかん)。


2004年3月26日(金)

『男弾(オトコダマ)』
 X68000 Emulator in JavaのページでMitsukyさんによる縦スクロールシューティング『男弾(オトコダマ)』も動かすことができるようにしました。ハードウェアの限界を超えた数のスプライトが画面狭しと飛び散る様子がJavaの箱庭で再現されます。
  X68000 Emulator in Java


2004年3月27日(土)

テンキーがなくても…
 しまけんさんより。テンキー付きのキーボードがないと『男弾(オトコダマ)』が遊べないというのは不覚でした。カーソルキーとM,J,L,I(カーソルキーも押しにくい人のための暫定配置)でも操作できるようにしておきました。

メモ
 勘違いされている方がいらっしゃるようなのでメモ。Javaの実行環境がうちの環境と同じかそれに近ければ、X68000 Emulator in Javaの「実際に動かしてみる」にあるリンクをクリックするだけでX68000エミュレータが起動して『じょんぐ』や『男弾(オトコダマ)』で遊べます。インストールしたりROMイメージを別途調達してくる必要はありません。

ノーウェイト版
 X68000 Emulator in Javaの動作速度を安定させるために加えてあるウェイトの効果が環境によって異なる可能性があるので、ノーウェイト版を試すことができるようにしました。

バージョン
 アプレットの右下に5桁の英数字でバージョンを表示するようにしました。動作状況を報告していただく際にバージョンとノーウェイト版かどうかを書き添えてください。


2004年3月28日(日)

動作速度の調節
 X68000 Emulator in JavaのコントロールパネルでMPU clockとFrame skipを変更できるようにしました。設定を変更した場合は動作状況を報告していただく際に書き添えてください。


2004年3月29日(月)

フルフレーム表示
 実は、X68000 Emulator in Javaはデフォルトで1/3フレームしか表示していません。カーソルが点滅しているだけの状態のように描画の負荷が小さければあまり関係ないのですが、『男弾(オトコダマ)』のように常に全画面スクロールしているソフトウェアをフルフレームで表示すると、速いマシンでもスローモーションを見ているように動きがゆっくりになってしまいます。コントロールパネルで描画フレーム数を変更できるようにしたので、速いマシンを持っている人は試してみてください。逆に描画フレーム数を減らすと、動きはカクカクになりますが遅いマシンでも軽くなるはずです。

Netsky.Q
 @niftyのウイルスチェックサービス(ウイルスバスター)もNorton AntiVirusのLiveUpdateも対応する前に、山ほど(おそらく100通以上)来ました。ウイルスチェックサービスの対応が遅かったのか私のところに届くのが早かったのかわかりませんが、ウイルス付きのメールが一度にこれほど大量に2重のチェックを素通りしてくるのは珍しいです。
  添付ファイルが「message**.pif」の場合は、Netsky最新亜種の可能性あり(impress INTERNET Watch、3月29日)


2004年3月30日(火)

頭の体操の答え
 頭の体操の答えです。1から32までの数を隣り合う2つの数の和が32箇所すべてで平方数になるように円周上に並べる方法は、回転および裏返しにしたものを除くと次の1通りしかありません。

 解けた人…明木さん深井さんマツクマさん輪王さん

 解き方を書いておきます。少し手間がかかりますが、紙と鉛筆で解ける問題です。

 隣り合うことのできる数の組み合わせをグラフにして考えます。(半角文字と全角文字の幅が1:2になっていないと崩れてしまうかも知れません)


 次の手順で隣り合う数の組み合わせの候補を減らしてゆきます。

 30の両隣にある6と19は隣り合うことができないのでこれも取り除きます。


 この時点でわかっている連鎖は次の6個です。15だけ隣り合う数が1つも確定していません。
 確定している部分を省いてグラフを小さくします。


 残りをどう組み合わせるかが問題ですが、ここでは15に注目します。15と隣り合う数は1,10,21のいずれか2つですが、1+15と15+21を組み合わせると1+8+28+21+15+1という短いループができてしまうので、少なくとも15+10を繋がなければなりません。


 これで連鎖は次の3つになります。
 4と隣り合うことができる数は12と21だけですが、12を繋ぐと小さなループができてしまうので21を繋ぎます。すると答えが次の1通りしかないことがわかります。

1+8+28+21+4+32+17+19+30+6+3+13+12+24+25+11+5+31+18+7+29+20+16+9+27+22+14+2+23+26+10+15+1

 検算用のプログラムです。何も考えずに端から順に埋めてゆくだけの単純なアルゴリズムを使っているので、興味のある人は改良してみてください。

#include <stdio.h>
#include <stdlib.h>

int n, *m;
char *f, *s;

void solve(int p) {
  int i, *w = m + p;
  char *t = s + w[-1];
  if (p < n) {
    for (i = 0; i < n; i++) {
      if (f[i] & t[i]) {
        f[w[0] = i] = 0;
        solve(p + 1);
        f[i] = 1;
      }
    }
  } else if (t[m[0]] && m[1] < w[-1]) {
    for (i = 0; i < n; i++) {
      printf("%d+", m[i] + 1);
    }
    printf("%d\n", m[0] + 1);
  }
}

int main(int argc, char *argv[]) {
  int i, j;
  n = argc >= 2 && sscanf(argv[1], "%d", &i) == 1 && i >= 3 ? i : 32;
  m = (int *)malloc(sizeof(int) * n);
  f = (char *)malloc(sizeof(char) * n);
  s = (char *)calloc(n * 2 - 2, sizeof(char));
  if (m == NULL || f == NULL || s == NULL) {
    return 1;
  }
  for (i = 4 - 2, j = 5; i < n * 2 - 2; i += j, j += 2) {
    s[i] = 1;
  }
  for (i = 0; i < n; i++) {
    f[i] = 1;
  }
  f[m[0] = 0] = 0;

  solve(1);

  return 0;
}

 最後に、1〜Nを円周上に並べるとき2≦N≦31の範囲では解が存在しないことを確認する方法について書いておきます。2と隣り合うことができる数の候補は7、14、23…と続きますが、ループを作るためには隣り合う数が2つずつ必要ですから、2と隣り合う数の少なくともどちらか一方は14以上でなければなりません。これで2≦N≦13の範囲では解がないことがわかります。次に8と隣り合う数の候補は1、17、28…なので、8≦N≦16のときは17以降の候補が存在しないので解はあり得ません。同様に16に注目すると16≦N≦19の範囲で解がないことがわかり、18に注目すると18≦N≦30の範囲で解がないことがわかります。残りはN=31だけですが、これだけは上のN=32の場合と同様の手順で途中まで解いてみなければなりませんでした。


2004年3月31日(水)

x23
 今朝、The Prime Pagesを管理されているChris Caldwellさんから直接メールをいただきまして、気付いたらこんなことに…
  Proof-code: x23(Chris K. Caldwellさん)
 こんなにレベルの低いものの面倒までみていただけるとは思わなかったので、嬉しいやら恥ずかしいやら。

ごーじゃすリバーシ
 X68000 Emulator in Javaの動作サンプルに拙作の『ごーじゃすリバーシ』を追加しました。データのサイズが大きいので20MBのSASIハードディスクのイメージファイルから起動するようになっています。40MBではなく20MBにしたのはアロケートできなかったためですが、WinX68k高速版で作ったイメージファイルは40MBなので読み込むときに変換しています。

counter Since October 14, 2000
2月 3月 4月 | きょう カレンダー | サイトマップ | ホーム
E-mail: m_kamada at nifty dot comMirrorCopyright (C) 1999-2004 M.Kamada All Rights Reserved.