パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

緊急地震速報の「誤報」はプログラム中の「単位」間違えが原因と判明」記事へのコメント

  • 通勤中にラジオで聞いた話だと、
    小数点以下を切り捨て→四捨五入に仕様変更しようとして、
    0.5umを0.5mmにしてしまい、
    2.5umが525umになってしまったと。

    謎なのはこの間違いをやらかすロジック。

    四捨五入がなぜ単位違いになるのか。
    単位だけ変えてなぜそのまま加算するのか。
    なぜ10倍でなくて1000倍なのか。

    どういう間違いをすればこうなるのか、さっぱり予想できない。
    う~ん。みすてりぃ。

    # 誰かさんは昔うるう年計算の処理間違えたけどな。
    ## 15年も前の話だ。
    • by taka2 (14791) on 2009年08月26日 15時35分 (#1629528) ホームページ 日記

      記事によると、
      > 振幅が実際よりも常に500マイクロメートル大きくなるようになった
      とのことなので、単位を間違えたというより、四捨五入の桁処理を間違えたって感じじゃないですかね。

      想像ですが、mm単位な変数でμm単位の四捨五入するのに、
      data = int((data*1000.0)+0.5)*0.001;
      みたいなコードを書くつもりが、
      data = int((data+0.5)*1000.0)*0.001;
      ってやっちゃった、とか。

      親コメント
      • by Anonymous Coward on 2009年08月26日 21時57分 (#1629693)

        1998年に打ち上げられた米国の火星探査機マーズ・クライメイト・オービターは
        1999年に火星周回軌道投入の為の軌道修正後に消息不明に・・・。

        調査委員会の報告によるとこの失敗の原因は、探査機のあるデータがメートル法で
        報告されるはずが、ヤード・ポンド法によって報告されていたという、
        航行上のミスによるものと判明した。これにより、探査機は、軌道進入の際に、
        予定されていた火星の140-150 km上空の軌道ではなく、57 km上空の軌道に進入した。
        このような低軌道では探査機は、大気の圧力と摩擦に耐え切れずに破壊されてしまった。

        日本に限らずこんな事ってあるんですな。

        親コメント
        • by Anonymous Coward

          ちょいと事実誤認があるようですな。

          • アメリカの航空宇宙業界では、ヤード・ポンド系がデファクトスタンダード
          • JPLは伝統的にメートル法(てゆーか、多分SI単位系だよね)を使用

          つまり、探査機のハードウェアを製造した側はヤード・ポンド系でデータを送信するように設計してたけど、探査機の管制を行う側はその値をメートルと解釈していた、というのが実情。

          要は、お互いに相手が自分と同じ単位系を使っているものと勘違いしていた、という話で、一方的に「メートルで報告すべきところをヤードで報告していた」という話ではありません。

          参考:JST失敗知識データベース > 失敗事例 > コミュニケーション不足による火星探査機の炎上 [jst.go.jp]

吾輩はリファレンスである。名前はまだ無い -- perlの中の人

処理中...