月齢とルナティック [応用] | 逆ポーランド電卓の実践ウェブ rpn hacks!

逆ポーランド電卓の実践ウェブ rpn hacks!

逆ポーランド電卓rpnの実践ウェブ   
rpn hacks! アールピーエヌ・ハックスサイトマップ

rpn | 応用 | rpn電卓の高いポテンシャルはビジネス・実用・ゲームなどのアプリケーションにも対応。

HOME > 応用 > 月齢とルナティック

hatena twitter facebook rss ソーシャルブックマーク

月齢とルナティック

 月は神秘的です。闇を煌々と照らす満月を見ると何かざわついた気持ちになりませんか。満月、新月、満潮、干潮…。人間をはじめ、動物、植物の活動と月の動き(満ち欠け)には何らかの関連があります。もっと大きな話では、月がなければ生物は地球上に生まれなかったとも言われるほどです。

実際に満潮と干潮が海の生物に影響を与えているのは確実ですし、交通事故が起こるのは満月の夜が多いと言われています。でも月の満ち欠けって一体、何でしょう。

地球の周りを公転している月が太陽からの光を反射するとき、その反射具合が満ち欠けとなって見えるのですが、上弦・下弦の月、三日月、待宵月など多くの呼び名があります。昔から月の満ち欠けに関心が高かった証拠でしょうね。

この満ち欠け具合を月齢と言います。月の満ち欠けは新月から次の新月までを、大体29.5日間の周期で繰り返すのですが、これを月齢として0から29.5までで表します。満月は月齢14±1、新月は29と0になります。

月齢を計算しよう

 この月齢を計算できる数式があります。最大で2日くらいズレることがありますが、それくらいの誤差でも構わないという人には、次のmoonというrpnプログラムを紹介します。

このプログラムは8桁の日付から月齢を計算します(package入門(カレンダー・システム編)の曜日と月齢に詳しくあります)。DOSプロンプトを起動してから、以下のrpn式を入力してください。

  >rpn 20010101 -c moon
  5


上のrpn式で、2001年1月1日の月齢を求めています。計算では月齢5になりました。新月になってから5日目ということですね。同様に以下の書き方でも月齢計算できます。好きな記述スタイルで計算できます。

  >echo 20010101 | rpn -c moon
  5


対話型プログラムとして使いたい場合は、以下のように空ファイルを渡してください(空ファイルに関してはpackage入門(カレンダー・システム編)の空ファイルを参照ください)。誕生曜日で使ったweekdayと同じ仕様です。入力プロンプトが表示されたら、年、月、日の順に数字を打ち込んでみましょう。

  >rpn -c null | rpn -c moon
  rpn [年月日] -c moon <stdin
  年=


最初のプロンプトの"年"に1969とキーを打って、最後にエンターキーを押してください。

  >rpn -c null | rpn -c moon
  rpn [年月日] -c moon <stdin
  年=1969
  月=


次のプロンプトの"月"には7を入力します。

  >rpn -c null | rpn -c moon
  rpn [年月日] -c moon <stdin
  年=1969
  月=7
  日=


最後のプロンプト"日"には20です。

  >rpn -c null | rpn -c moon
  rpn [年月日] -c moon <stdin
  年=1969
  月=7
  日=20
  月齢6


アポロ11号が月面に着陸したとき、新月から6日でした。三日月よりちょっと明るい程度だったんですね。

ちょっと不気味なルナティック

 最後に都市伝説的な話です。満月になると犯罪が増えたり、自殺も起こりやすい、そして大きな事故や事件が発生しやすいと言われます。ルナティックと呼ばれる現象です。

ロンドンで起こった切り裂きジャック事件も、主に新月と満月の夜に犯行が行われたそうです。どの殺人事件が切り裂きジャックの手によるものか分からない事件もあるのですが、16件の事件に関して月齢計算してみました。

jack.txtに8桁の事件発生日のデータがあるとします。月齢計算して、xypとnpdでグラフ化します。

  >rpn -c moon <jack.txt | rpn 1 -c rownum | xyp -x,16 -y,30 -s1,15 -m | npd
  ^y 30                                    (新月)
  |           *
  |                    *
  |
  |             *    *
  |        *                          *
  |                            * *
  -・・・・・・・・・・・・・・・・・・・・・・・・・*・・・・・・・・・・・・・ (満月)
  |      *                          *    *
  |   *
  | *
  |
  |
  |                       *              x
  |o                                    16
  +-|-|--|-|--|-|--*-|--|-|--|-|--|-|--|-> (新月)


横軸が16件の事件が発生した時系列、縦軸が月齢です。満月の前後に事件が起こっている様子はありますが、このグラフではそれほどの集中はないような気もします。

そこで、今度は縦軸を事件発生頻度、横軸を月齢にしてグラフを描いてみましょう。

  >rpn -c moon <jack.txt | rpn -c freq | xyp -x,30 -y,3 -s1,1 -n -m -w60,12
  ^y 3
  (新月)    (半月)         (満月)          (半月)       (新月)
  |            :                             :
  2            :           *                 *
  |            :                             :
  |            :                             :
  |            :                             :
  *    *       :     *   *   * *   * * * *   :     *     *
  |            :                             :
  |            :                             :               x
  |o           :                             :              30
  +1-2-3-4-5-6-7-8-9-1011121314151617181920212223242526272829>


半月より大きく、満月以下の月齢時に起こった事件は10件。逆に半月より小さく、新月以下だと4件で、2倍以上の発生頻度です(半月時に2件)。確かに満月付近に事件が発生しているような雰囲気はあります。

あなたはどう感じますか。ルナティックは存在しているのでしょうか。

番外編:月齢を計算する簡易式

 古くからある月齢の計算式で、1740年以降なら簡単に月齢が計算できるようです。ただし、上記のrpnプログラム同様に誤差はあります。

プログラムの仕様としては年と月と日を指定して計算してくれると便利です。以下がそのrpn式ですが、長いので2行に分けて表示してあります。

 【月齢計算のrpnプログラム(moonage.rpn)】
  ===(この行の1行下からコピー)===
  #d #m #y 1 #1 2 #2 -1 #3 -1 #5 \
  @y 1740 - 210 * 19 / 2 - @m + @d + @m @ + 30 %
  ===(この行の1行上までコピー)===


プログラムの部分をコピーしてテキストファイルに貼り付けてください。保存時にテキストファイルに名前を付けるのですが、ファイル名は"moonage.rpn"としておきましょう。

プログラムの使い方は年と月と日を指定して、rpnファイルの"moonage.rpn"を読み込むだけです。計算結果は月齢で出てきます。下の例は1980年12月8日の月齢計算です。

  >rpn 1980 12 8 <moonage.rpn
  0


ジョン・レノンが倒れたその夜に月はありませんでした。

警告カレンダー・システムパッケージのmoonは採用している計算式が異なります。

応用応用コーナーに戻るLinkIcon

情報月齢に関する話が、package入門(カレンダー・システム)曜日と月齢にもあります。興味のある方は閲覧ください。また、実践コーナー投資アラカルトには満月の日に株価は動くがあります。興味のある方は閲覧ください。

警告rpnプログラムを実行するには、rpn試用版かrpn標準版が必要です(バージョンの違いはこちら)。

情報rownumはカンタン分析パッケージに同梱されています。freqはrpnマイスターパッケージに同梱されています。 moon, nullはカレンダー・システムパッケージに同梱されています。xypとnpdはrpnの姉妹ソフトウェアです。詳しくはプロダクトを参照ください。

記事閲覧ランキング (毎月初更新)

人気記事(過去1ヶ月閲覧数)

広報アプリケーションを公開中!タブ「i~v..」をご覧ください。

※応用コーナーのTOP

紹介 rpnの利用シーンはこちら…

講座初めての人のrpn基礎もどうぞ
講座しっかり学べるrpn入門もどうぞ
講座すぐに使えるdos入門もどうぞ

実践他の分野への挑戦は実践TOP

i

アプリケーションで楽しもう

広報アプリケーションを公開中!タブ「i~v..」をご覧ください。

※応用コーナーのTOP

講座初めての人のrpn基礎もどうぞ
講座しっかり学べるrpn入門もどうぞ
講座すぐに使えるdos入門もどうぞ

実践他の分野への挑戦は実践TOP

ii

アプリケーションで楽しもう

広報アプリケーションを公開中!タブ「i~v..」をご覧ください。

※応用コーナーのTOP

講座初めての人のrpn基礎もどうぞ
講座しっかり学べるrpn入門もどうぞ
講座すぐに使えるdos入門もどうぞ

実践他の分野への挑戦は実践TOP

iii

アプリケーションで楽しもう

広報アプリケーションを公開中!タブ「i~v..」をご覧ください。

※応用コーナーのTOP

講座初めての人のrpn基礎もどうぞ
講座しっかり学べるrpn入門もどうぞ
講座すぐに使えるdos入門もどうぞ

実践他の分野への挑戦は実践TOP

iv

アプリケーションで楽しもう

広報アプリケーションを公開中!タブ「i~v..」をご覧ください。

※応用コーナーのTOP

講座初めての人のrpn基礎もどうぞ
講座しっかり学べるrpn入門もどうぞ
講座すぐに使えるdos入門もどうぞ

実践他の分野への挑戦は実践TOP

v …

アプリケーションで楽しもう

広報アプリケーションを公開中!タブ「i~v..」をご覧ください。

※応用コーナーのTOP

講座初めての人のrpn基礎もどうぞ
講座しっかり学べるrpn入門もどうぞ
講座すぐに使えるdos入門もどうぞ

実践他の分野への挑戦は実践TOP

書籍紹介

記事に関連した書籍

本ウェブサイトで扱った話題に関連した書物で、スタッフが実際に読了したものを紹介。

書籍数学の書籍
数の世界は思ったよりもエキサイティング

書籍投資の書籍
失敗しない投資には広範囲で実践的な知識が必要

警告バックスラッシュはエンマークに読み替えて下さい(IE)。
バックスラッシュとエンマーク

警告文字で作られた図表や式が崩れることがあります。ブラウザによっては固定幅フォントをMSゴシックにするときれいに表示されます。それでも崩れる場合は図表や式をメモ帳にコピー後、閲覧下さい。

警告rpn試用版と標準版(2kリビジョン)はダブルクォートで囲って下さい。

rpn 1 2 + ⇒ rpn "1 2 +"
rpn 1 -c foo ⇒ rpn "1" -c "foo"

ダブルクォートは省略できることが多いのですが、慣れない間は囲んだほうが無難です。なお、本ウェブサイトの記事ではrpn標準版(98リビジョン)を使用しているため囲っていません。詳しくは技術サポートの「rpn TIPS参照ください。

注意rpnの障害情報はこちら

警告rpn試用版の場合、複雑なプログラムや処理時間のかかるプログラムの一部には動作しないものがあるかもしれません。あくまで無料提供であることを勘案・了承ください。rpn標準版は、すべてのプログラムが動作します。