べき乗剰余アルゴリズムを実装するC++プログラム
これは、べき乗剰余アルゴリズムを実装するためのC++プログラムです。
アルゴリズム
Begin function modular(): // Arguments: base, exp, mod. // Body of the function: initialize res = 1 while (exp > 0) if (exp mod 2 == 1) res= (res * base) % mod exp = exp left shift 1 base = (base * base) % mod return res. End
例
#include <iostream> using namespace std; long long modular(long long base, long long exp, int mod) { long long res = 1; while (exp > 0) { if (exp % 2 == 1) res= (res * base) % mod; exp = exp >> 1; base = (base * base) % mod; } return res; } int main() { long long b, e; int mod; cout<<"Enter Base : "; cin>>b; cout<<"Enter Exponent: "; cin>>e; cout<<"Enter Modular Value: "; cin>>mod; cout<<modular(b, e , mod); return 0; }
出力
Enter Base : 7 Enter Exponent: 6 Enter Modular Value: 26 25
-
補間検索アルゴリズムを実装するC++プログラム
二分探索手法の場合、リストは等しい部分に分割されます。補間検索手法の場合、プロシージャは補間式を使用して正確な位置を見つけようとします。推定位置を見つけた後、その位置を使用してリストを分離できます。毎回正確な位置を見つけようとするため、検索時間が短縮されます。この手法では、アイテムが均一に分散されている場合、アイテムを簡単に見つけることができます。 補間検索手法の複雑さ 時間計算量:O(log 2 (log 2 n))平均的な場合、O(n)は最悪の場合(アイテムが指数関数的に分散される場合) スペースの複雑さ:O(1) Input − A sorted li
-
配列シャッフリング用のFisher-Yatesアルゴリズムを実装するC++プログラム
Fisher-Yatesアルゴリズムは、配列要素のランダムな順列を生成します。つまり、配列のすべての要素をランダムにシャッフルします。フィッシャー-イェーツアルゴリズムは偏りがないため、配列のすべての順列は同じように発生する可能性があります。 C++で配列シャッフルするためのFisher-Yatesアルゴリズムを実装するプログラムは次のとおりです- 例 #include <iostream> #include <t;stdlib.h> using namespace std; int main() { int n;