Skip to content

Conversation

@uwi
Copy link
Collaborator

@uwi uwi commented Sep 23, 2020

#33

原典とコードをほぼ同じに

  • mの制約をint
  • &&でつなぐassertionは複数行のほうが引っかかったときの原因がすぐにわかるのでそうする
  • m=1を場合分け(x=1%mとしてもよい)
  • xの初期値をsafe_modで求める
  • %2, /2&1, >>>=1として2%高速化(ローカル測定)
  • AOJ/NTL_1_B, SPOJ/MODPOW, SPOJ/FASTPOW でverified. ただしどれもpow_modの引数の範囲を網羅できているわけではない。

@uwi uwi self-assigned this Sep 23, 2020
@uwi uwi requested a review from NASU41 September 23, 2020 15:52
@m1kit
Copy link
Contributor

m1kit commented Sep 23, 2020

mint型なら戻り値もint型にできると思うのですが,どちらが良いのでしょうか...?
個人的には戻り値がintでないと困るケースはほとんどないしどちらでもよいと思いますが,Javaだと配列の添え字にはintしか突っ込めない等の事情もあるので一応意見がききたいです.

@uwi
Copy link
Collaborator Author

uwi commented Sep 23, 2020

制約的にはintで良いですね。

自分のライブラリだと、この周囲に乗算があった場合、longでいたほうがキャストしなくて良いかな的なところがあります。

@m1kit
Copy link
Contributor

m1kit commented Sep 23, 2020

確かに,pow_mod(x1, y1, m) * pow_mod(x2, y2, m) % mみたいなことをする機会の方が圧倒的に多いので,longの方が良いという気持ちになりました.ありがとうございます.

@NASU41 NASU41 merged commit 55d62aa into master Sep 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants