取模方程解的個數 (迴圈節)

2021-08-21 20:48:20 字數 952 閱讀 1135

時間限制: 1 sec  記憶體限制: 128 mb

提交: 346  解決: 9

[提交][狀態][討論版][命題人:cyh]

給定x和m,問在區間[a,b]上存在多少個i,使得x^i % 1000 = m。

輸入由多組資料構成。

每組資料一行,由四個空格分開的整數x、m、a和b組成。

0 <= x, m <= 1000000000

1 <= a <= b <= 1000000000

每組輸入資料產生一行輸出,即使得上述等式成立的i的個數。

13 13 1 100

13 12 1 100

13 13 1 1000000000

1

010000000

迴圈節,即第一次出現和第二次出現之間的間隔。有可能m只出現一次,而且由於【a,b】非常大,可以控制一下迴圈次數,避免超時,比如說200以內都沒有出現迴圈節,那麼之後也不會再出現迴圈節。

#includeusing namespace std;

typedef long long ll;

ll quickpow(ll x,ll i,ll m)

return ans;

}int main()

ll l,r,cnt=0,ans=0;

for(ll i=a;i<=b;)

if(quickpow(x,i,1000)==m&&cnt==0)

cnt++,l=i;

else if(quickpow(x,i,1000)==m&&cnt==1)

cnt++,r=i;

i++;

}if(cnt<=1) printf("%lld\n",cnt);

else printf("%lld\n",ans+2);

}}

牛頓迭代法求方程解

牛頓迭代法 newton s method 又稱為牛頓 拉夫遜方法 newton raphson method 它是牛頓在17世紀提出的一種在實數域和複數域上近似求解方程的方法。多數方程不存在求根公式,因此求精確根非常困難,甚至不可能,從而尋找方程的近似根就顯得特別重要。方法使用函式f x 的泰勒級...

正規方程解多變數線性回歸

梯度下降解法 正規方程方法 使用正規方程解法的時候注意矩陣不可逆的情況 用np.linalg.det 求解矩陣a的行列式 a 如果行列式為0,不可逆,否則可逆。import numpy as np import pandas as pd data pd.read csv ex1data2.txt n...

hdu 1496 hash 方程解的情況

題意 根據題中所給的方程,輸出a,b,c,d,輸出滿足方程的解的方案的個數 思路 hash x1,x2 和 x3,x4 如果兩個狀態儲存的位置相同那麼方案數加一,最後求出的方案乘以2 4,因為四個未知數是平方項,正負對其沒有影響。includeusing namespace std int hash...