[過去ログ] Qiita 4 - キータぞ、来たぞ、キータだぞー (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
155: デフォルトの名無しさん [] 2024/02/17(土) 17:39:02.70 ID:M+9VD8BN(6/8) AAS
いま気づいたが>>147
147(7): デフォルトの名無しさん [] 2024/02/17(土) 14:28:35.26 ID:M+9VD8BN(1/8) AAS
> A: 4の倍数の年は、うるう年
> B: ただし、100の倍数の年は、うるう年ではない(平年)
> C: ただし、400の倍数の年は、うるう年
> D: ただし30の倍数の年は、うるう年
> E: ただし、30と4の倍数の年はうるう年ではない
> F: D, Eは2025年より適用する

をC++で書いてg++でコンパイルしてみた。

外部リンク:godbolt.org

アセンブリ言語読めないけど色分けでC++とアセンブリ言語の対応を教えてくれるので助かる。Eの判定部分に対応するアセンブリ言語が出力されてないな。g++に無駄な判定であると判断されたか。

試しに、重複してる4の倍数判定を

E: ただし、30と7の倍数の年はうるう年ではない

に変えてみると

外部リンク:godbolt.org

今度はEの判定部分に対応するアセンブリ言語は出力されるようだ。g++がashworthより賢いことは分かった。
に投稿した
外部リンク:godbolt.org

>>151
151(1): デフォルトの名無しさん [] 2024/02/17(土) 17:13:47.41 ID:M+9VD8BN(3/8) AAS
違うか。こうか。

外部リンク:godbolt.org

逆条件ややこしすぎ。

> C: ただし、400の倍数の年は、うるう年
> D: ただし30の倍数の年は、うるう年

↑の仕様バグもあるせいか早期return使って正しくコーディングできる自信おれにはないわ。
に投稿した
外部リンク:godbolt.org

で、g++が出力したアセンブリ言語の内容がぴったり一致してるのちょっと面白いw

>>151に投稿したコードに論理ミスはなかった感じでちょっと安心した。
210
(1): デフォルトの名無しさん [sage] 2024/02/26(月) 01:06:21.70 ID:u7LaXN2b(1) AAS
>プログラミングのリテラシーも(>>147)
どんなもんかと思ってのぞいてみたが確かにこれはリテラシー低いかも
Eの判定部分が出力されてないのも単にネストを間違えてるだけだね
289: デフォルトの名無しさん [sage] 2024/03/02(土) 11:50:59.70 ID:BHfB/iOz(1/2) AAS
ashworth、自分から言い出した仕様に完敗w
343: デフォルトの名無しさん [sage] 2024/03/04(月) 20:30:16.70 ID:k69OqpEV(1) AAS
>>322
322(1): デフォルトの名無しさん [sage] 2024/03/04(月) 09:41:48.67 ID:ybOgKOgD(1) AAS
>>316 >>321
1000億年後の閏年とか低能丸出し
地球も存在しないぞ
それ以前に60万年後には誤差が半年となり夏冬逆転し無意味となる
それ以前にルールが変わるため大きな数に対応する意味がない
>>315
315(12): デフォルトの名無しさん [sage] 2024/03/03(日) 21:47:18.39 ID:B4rwo5Er(1) AAS
閏年の仕様が変わったら判定関数だけ置き換えればいいのだから
判定関数の中身なんて何でもいいのよ
割り算(剰余算)と分岐はCPUにとって非常に遅いから避けるとするならば例えばこんな感じ

fn is_leap_year(year: u64) -> bool {
 let q100 = (year * 42949673) >> 32;
 ((q100 & 3 == 0) | (q100 * 100 != year)) & (year & 3 == 0)
}
のコードでおかしな結果を出す一番近い年が107374182500年だと思ってる??
368: デフォルトの名無しさん [sage] 2024/03/05(火) 20:42:06.70 ID:HwnQ5/nd(1) AAS
> あくまでも速さ優先ということならば>>315
> 「let q100 = (year * 42949673) >> 32;」が正解でいいんじゃないか

「自分は>>315じゃないけどこの人のコードが正解だと思いますよ」みたいな投稿よくできるなあ。
378: デフォルトの名無しさん [sage] 2024/03/08(金) 01:36:10.70 ID:sIorMR2i(1) AAS
>>376
376(1): デフォルトの名無しさん [sage] 2024/03/07(木) 20:58:11.23 ID:HzTOrgQG(1) AAS
>>315>>374を比べると微妙に違うんだな
q100 = (year * 42949673) >> 32
q100 = (year * 1374389535) >> 37
2^5=32倍すれば同じ
503: デフォルトの名無しさん [sage] 2024/03/22(金) 01:58:14.70 ID:8suVyaLb(1) AAS
Ruby は千回か1万回かループしたら、
C でコンパイルされる機能があるけど、

コンパイル時間の方が多くて、
最適化しても、その時間を取り返せないらしい

Ruby on Rails みたいに、多くの関数を平均的に呼ぶ場合には、最適化は効果ない。
効果があるのは、局所的なある部分を多く呼ぶ場合
789
(2): デフォルトの名無しさん [sage] 2024/04/12(金) 11:05:23.70 ID:n08kAL3W(1) AAS
>>761
761(3): デフォルトの名無しさん [sage] 2024/04/10(水) 15:48:08.18 ID:wgfIEXCO(1) AAS
jisouとか言うポエム書いてる奴ら消えて欲しいわ
無料だと思ったら金とってるし
外部リンク:qiita.com

ポエムの他にも、できないできました系があかんなあ
975: デフォルトの名無しさん [sage] 2024/04/29(月) 09:06:44.70 ID:e27xWuSf(1) AAS
qiitaの非生産性を煮詰めたようなやり取りやな
相変わらず悲しさを誘うで
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.047s