快速冪和同餘模

2022-08-03 02:18:10 字數 1047 閱讀 6763

給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。

我的最初做法:

class

solution

else}};

設定bool變數

class

solution

for(int i = 0; i < exponent; i++)

res *= base

;

if(flag)

return

res;

else

return

1/res;}};

正確做法:快速冪

class

solution

return (exponent > 0)?ans:1/ans;}};

同餘模:

同餘模定理:a*b%m = [(a%m)*(b%m)]%m

證明如下:

因此a^b%m有如下公式:

總結一下就是:(a^2)%m = [(a%m)^2]%m;

同餘模的作用就是為了防止乘法後得到的數太大,不能取模,所以把取模分散開,先把數取模然後再相乘。

快速冪和同餘模結合一下:

例如:計算a^b%1000的值?

private

static

int cifang3(int a, int

b)

a = a % 1000

; //沒有進入if條件語句的的取模

a = a *a;

b = b >> 1

; }

return s% 1000

; }

同餘模定理

定義 所謂的同餘,顧名思義,就是許多的數被乙個數d去除,有相同的餘數。d數學上的稱謂為模。如a 6,b 1,d 5,則我們說a和b是模d同餘的。因為他們都有相同的餘數1。數學上的記法為 a b mod d 可以看出當n 1 a和b是模d同餘的.2 存在某個整數n,使得a b nd 3 d整除a b....

同餘模定理

原文 同餘模定理 定義 所謂的同餘,顧名思義,就是許多的數被乙個數 d 去除,有相同的餘數。d 數學上的稱謂為模。如 a 6,b 1,d 5,則我們說 a 和 b 是模 d 同餘的。因為他們都有相同的餘數 1 數學上的記法為 a b mod d 可以看出當 n d 的時候,所有的 n 都對 d 同商...

Judge 快速冪 同餘

時間限制 1 sec 記憶體限制 128 mb 提交 1011 解決 125 統計吃了乙個放大果實 惡魔果實的一種 高呼 海賊王 俺 ocean每使用一次能力,就可以將乙個物品的價值放大 x 倍 原價值乘以 x 但是哪有這麼好的事情?物品的價值是有限度的,姑且認為物品的價值上界為 m 如果經過放大後...