>>628
可変参照は関係あるのかな?
どちらもbit処理を下から順にするアルゴリズムで変わりなく
>>613はbitマスクを大きく(左シフト)していく方法
>>617はbitマスクは常に1で本体を小さく(右シフト)していく方法の違いだけだよね
だから後者の方式でもRustでコーディングできて動くよね
両者の差分
fn calc(num: usize, pow: usize, m: usize) -> usize {
- let mut bit: usize = 1;
+ let mut bit: usize = pow;
let mut res: usize = 1;
let mut tmp_pow: usize = num;
- while pow >= bit {
- if pow & bit > 0 {
+ while bit > 0 {
+ if bit & 1 > 0 {
res = (res * tmp_pow) % m;
}
- bit = bit << 1;
+ bit = bit >> 1;
tmp_pow = (tmp_pow * tmp_pow) % m;
}
res
}
Rust part12
■ このスレッドは過去ログ倉庫に格納されています
630デフォルトの名無しさん
2021/10/10(日) 21:23:34.82ID:XwgBItsn■ このスレッドは過去ログ倉庫に格納されています
