トップページ > プログラム > 2014年11月10日 > UPYVTgdg

書き込み順位&時間帯一覧

6 位/225 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000110001000012006



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
プログラミングのお題スレ Part5

書き込みレス一覧

プログラミングのお題スレ Part5
778 :デフォルトの名無しさん[]:2014/11/10(月) 10:45:51.93 ID:UPYVTgdg
>>776
各桁を求める(10で割る計算)が速く出来る可能性。

乗法とビットシフト  Cは2ベキとして、x/10 = (x * (C/10)) /C。

浮動小数点乗法  (x/BASE) *10 で上位順に求める。

引き算とif  x=5412だったら、1000ずつ引いていって初めて引く数より小さくなった時で最上位の数を求める。
プログラミングのお題スレ Part5
779 :デフォルトの名無しさん[]:2014/11/10(月) 11:34:11.64 ID:UPYVTgdg
x/10 = ( x * 214748365 ) >> 31に変形できるけど、64ビット演算になるし、
コンパイラが定数の割り算を似たような変形してて速度差はでないかと。
プログラミングのお題スレ Part5
780 :デフォルトの名無しさん[]:2014/11/10(月) 15:45:32.20 ID:UPYVTgdg
コンパイラの割り算に、標準的なCの範囲では太刀打ち出来ないと思った。
割り算での対抗はあきらめて、たとえば0-99999に対して各桁の数字予めを計算しておくとかだったらいいかもしれない。
プログラミングのお題スレ Part5
789 :デフォルトの名無しさん[]:2014/11/10(月) 20:59:45.27 ID:UPYVTgdg
JITがあるから速いって、実測したコードを上げてくれ。Cやアセンブラに速度が届くとおもえん。
プログラミングのお題スレ Part5
793 :デフォルトの名無しさん[]:2014/11/10(月) 21:24:35.10 ID:UPYVTgdg
それは短絡的だ。アルゴリズムは同一か。
プログラミングのお題スレ Part5
796 :デフォルトの名無しさん[]:2014/11/10(月) 21:34:32.02 ID:UPYVTgdg
10進の0-9の個数を求めるのに、6ビット*10個のビット列 ( < 64ビット、ビットシフトさせて1変数へ埋め込む)
で計算結果を蓄えておく方針で速くなった。
しかも63個以下だったら、一回の足し算で10個分の足し算が一気に出来る。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。