1 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 10:09:07.13 ID:phwOkayR.net] プログラミングのお題スレです。 【出題と回答例】 1 名前:デフォルトの名無しさん お題:お題本文 2 名前:デフォルトの名無しさん >>1 使用言語 回答本文 【ソースコードが長くなったら】 (オンラインでコードを実行できる) https://ideone.com/ codepad.org/ compileonline.com/ rextester.com/runcode https://runnable.com/ https://code.hackerearth.com/ melpon.org/wandbox https://paiza.io/ 宿題は宿題スレがあるのでそちらへ。 前スレ プログラミングのお題スレ Part10 https://mevius.5ch.net/test/read.cgi/tech/1514772904/ プログラミングのお題スレ Part11 https://mevius.5ch.net/test/read.cgi/tech/1524570314/
69 名前:デフォルトの名無しさん mailto:sage [2018/10/09(火) 21:21:14.72 ID:7Krlta4j.net] >>61 たかだか30行程度のループも再帰もない一本道なので具体的に示してもらえるとありがたいです。 この種のプログラムは地デジの日付情報が MJDで ARIBの規格書にも載っていて、 ごく一般的に使われているので、もし問題があるようならばなんとかしたいですよね。 >( (c-122.1)/365.25 ).to_i 浮動小数点で JD が扱える精度+αくらいならこれは問題ないと思いますが。 c は整数ですし、分母の 365.25もすでに説明しましたね。 グレゴリオ暦6239年で JD が 4000000辺りで分子が 365.25の倍数前後は 4000217.1/365.25 と 4000218.1/365.25 だから仮数部が 19bitほどあればいいわけですね。 # こんな定数のままだとコンパイラが最適化してしまいますけどね 組み込み用途などによっては考慮すべきかもしれないけれど、 最初のお題(>>56 )ってそういう意図があったのでしょうか? >このサイトに書いてあるとおりに作るとプログラムの結果は正しくならない これは特定の環境に限られたものを指していたのかな?
70 名前:デフォルトの名無しさん mailto:sage [2018/10/09(火) 21:40:48.90 ID:BHyo+myF.net] 精度的に問題ないって理解してれば良いのでは よく理解してない人が小数点使う必要ない場面で使って事故って何も分かりませんみたいな事あるし コンシューマゲームなんかだとシビアなんで、癖みたいにしておかないとハマってしまうけど
71 名前:デフォルトの名無しさん [2018/10/09(火) 22:33:03.53 ID:uKgwXIAC.net] >>56 はココからが本当の本題 @ >>59 のコードでの誤記の指摘は概ね正解 ただ>>59 のコードの修正だけでは紀元前に対応していない 紀元前が対応するように修正しなさい A @のプログラムの通日を整数の通ナノ秒にして、ナノ秒までの時刻を正確に相互変換できるようにしなさい B Aにうるう秒をいれて正確に相互変換できるようにしなさい(制約で問題が発生する場合、問題が発生する時刻を書きなさい) 参考URL:maia.usno.navy.mil/ser7/tai-utc.dat Bは普通にやったら結構めんどい課題と考えられる 力技でやるなら暇人以外にはオススメしない(力技でやらないほうがいいと一応警告しておいたからな) コードの一部を出力するコードをサクッと作るぐらいの力量がなければ きっとサクッとはできないしサクッと結果の評価もできないと考えられる