C ++

 Computer >> コンピューター >  >> プログラミング >> C ++
  1. シーザー暗号を実装するC++プログラム

    これは、平文の各文字が別の文字に置き換えられて暗号文を形成するモノアルファベット暗号です。これは、換字式暗号方式の最も単純な形式です。 この暗号システムは、一般にシフト暗号と呼ばれます。コンセプトは、各アルファベットを、0から25の間の固定数で「シフト」された別のアルファベットに置き換えることです。 このタイプのスキームでは、送信者と受信者の両方がアルファベットをシフトするための「秘密のシフト番号」に同意します。この0から25までの数字が暗号化の鍵になります。 「シーザー暗号」という名前は、「3シフト」が使用されている場合のシフト暗号を表すために使用されることがあります。 プロセス

  2. Playfair暗号を使用してメッセージをエンコードするC++プログラム

    このスキームでは、単純な換字式暗号の場合のように1文字ではなく、文字のペアが暗号化されます。 プレイフェア暗号では、最初にキーテーブルが作成されます。キーテーブルは、平文を暗号化するためのキーとして機能するアルファベットの5×5グリッドです。 25個のアルファベットはそれぞれ一意である必要があり、26個ではなく25個のアルファベットしか必要ないため、アルファベットの1文字(通常はJ)は表から省略されています。プレーンテキストにJが含まれている場合は、Iに置き換えられます。 送信者と受信者は、「チュートリアル」などの特定のキーをディーサイドします。キーテーブルでは、テーブルの最初の文字(左か

  3. Playfair暗号を使用してエンコードされたメッセージをデコードするC++プログラム

    このスキームでは、単純な換字式暗号の場合のように1文字ではなく、文字のペアが暗号化されます。 プレイフェア暗号では、最初にキーテーブルが作成されます。キーテーブルは、平文を暗号化するためのキーとして機能するアルファベットの5×5グリッドです。 25個のアルファベットはそれぞれ一意である必要があり、26個ではなく25個のアルファベットしか必要ないため、アルファベットの1文字(通常はJ)は表から省略されています。プレーンテキストにJが含まれている場合は、Iに置き換えられます。 送信者と受信者は、「チュートリアル」などの特定のキーをディーサイドします。キーテーブルでは、テーブルの最初の文字(左か

  4. RSAアルゴリズムを実装するためのC++プログラム

    RSAは、公開鍵と秘密鍵の2つの鍵で機能する非対称暗号化アルゴリズムです。 アルゴリズム Begin    1. Choose two prime numbers p and q.    2. Compute n = p*q.    3. Calculate phi = (p-1) * (q-1).    4. Choose an integer e such that 1 < e < phi(n) and gcd(e, phi(n)) = 1; i.e., e and phi(n) are copri

  5. ヒルサイファーを実装するためのC++プログラム

    線形代数に基づくヒル暗号は、暗号化におけるポリグラフィック換字式暗号です。 メッセージを暗号化するには: キー文字列とメッセージ文字列は、マトリックス形式で表されます。次に、それらはモジュロ26に対して乗算されます。メッセージを復号化するには、キー行列に逆行列が必要です。 メッセージを復号化するには: 暗号化されたメッセージに、モジュロ26に対する暗号化に使用される逆キーマトリックスを掛けて、復号化メッセージを取得します。 例 キーマトリックス 1 0 1 2 4 0 3 5 6 マトリックス形式のメッセージ文字列「ABC」- 0 1 2 暗号化用 上記の2つの行列を乗算すると、次のよ

  6. ヴィジュネル暗号を実装するためのC++プログラム

    Vigenere Cipherは、アルファベットのテキストを暗号化する一種の多表式置換方法です。 この方法での暗号化と復号化には、AからZまでのアルファベットが26行で書き込まれるVigenereCipherTableが使用されます。 暗号化 キー: ようこそ メッセージ: Thisistutorialspoint ここでは、指定されたキーの長さが元のメッセージの長さと等しくなるまで、そのキーを繰り返してキーを取得する必要があります。 暗号化の場合は、メッセージの最初の文字とキー(TとW)を取得します。V行とW列が一致するVigenere Cipher Tableのアルファベ

  7. アフィン暗号を実装するためのC++プログラム

    アフィン暗号では、アルファベットの各文字が同等の数値にマップされ、モノアルファベットの換字式暗号の一種です。暗号化は単純な数学関数を使用して行われ、文字に変換されます。 サイズmのアルファベットの文字は、最初に、アフィン暗号で0…m-1の範囲の整数にマップされます。 アフィン暗号の「キー」は、aとbの2つの数字で構成されます。 aはmに対して互いに素になるように選択する必要があります。 暗号化 整数を変換するには、各平文文字が対応するモジュラー演算を使用して、暗号文文字に対応する別の整数に変換します。 1文字の暗号化機能は E ( x ) = ( a x + b ) mod m modu

  8. Kadaneのアルゴリズムを実装するためのC++プログラム

    Kadaneのアルゴリズムは、整数の配列から最大のサブ配列の合計を見つけるために使用されます。ここでは、このアルゴリズムを実装するためのC++プログラムについて説明します。 アルゴリズム Begin Function kadanes(int array[], int length):    Initialize    highestMax = 0    currentElementMax = 0    for i = 0 to length-1       currentElement

  9. シーケンスのセット内のすべてのシーケンスに共通する最長のサブシーケンスを見つけるためのC++プログラム

    ここでは、一連のシーケンス内のすべてのシーケンスに共通する最長のサブシーケンスを見つけるためのC++プログラムについて説明します。 アルゴリズム Begin Take the array of strings as input. function matchedPrefixtill(): find the matched prefix between string s1 and s2 :    n1 = store length of string s1.    n2 = store length of string s2.    f

  10. サブシーケンスとして2つ以上のシーケンスを含む最短のスーパーシーケンスを見つけるためのC++プログラム

    ここでは、サブシーケンスとして2つ以上のシーケンスを含む最短のスーパーシーケンスを見つけるためのC++プログラムについて説明します。 アルゴリズム Begin    function ShortestSubSeq() returns supersequence of A and B:    1) Declare an array ss[i][j] which contains length of shortest supersequence for A[0 .. i-1] and B[0 .. j-1].    2) Find the

  11. 与えられたシーケンスの最長プレフィックス一致を見つけるためのC++プログラム

    ここでは、一連のシーケンス内のすべてのシーケンスに共通する最長のサブシーケンスを見つけるためのC++プログラムについて説明します。 アルゴリズム Begin Take the array of strings as input. function matchedPrefixtill(): find the matched prefix between string s1 and s2 :    n1 = store length of string s1.    n2 = store length of string s2.    f

  12. 各単語が回文であるように単語を分割する方法の数を見つけるためのC++プログラム

    ここでは、各単語が回文になるように単語を分割するいくつかの方法を見つけるためのC++プログラムについて説明します。 アルゴリズム Begin    Take the word as input.    Function partitionadd(vector<vector<string> > &u, string &s, vector<string> &tmp, int index):    if (index == 0)       tmp.c

  13. Trieを実装するC++プログラム

    ここでは、Trieを実装するためのC++プログラムについて説明します。これはツリーベースのデータ構造であり、文字列の大規模なデータセット内のキーを効率的に取得するために使用されます。 関数と擬似コード Begin function insert() :    If key not present, inserts key into trie. If the key is prefix of trie node, just mark leaf node. End Begin function deleteNode()    If tree is empty

  14. Cのqsort()のコンパレータ関数

    Cでは、qsort()関数を取得します。これは、クイックソート手法を使用して配列をソートするために使用されます。この関数では、コンパレータ関数を渡す必要があります。このコンパレータ関数は2つの引数を取ります。次に、それらを比較し、それらの間の相対的な順序を取得します。これらの2つの引数はポインターであり、constvoid*にキャストされた型です。構文は次のようになります- int comparator(const void* p1, const void* p2); 戻り値には3つのタイプがあります- 0未満。p1が指す要素は2番目の要素の前に配置されます。 0に等しい。2つの値は同じで

  15. C /C++のエラー

    CまたはC++では、さまざまな種類のエラーに直面します。これらのエラーは、5つの異なるタイプに分類できます。これらは以下のようなものです- 構文エラー 実行時エラー リンカーエラー 論理エラー セマンティックエラー これらのエラーを1つずつ見てみましょう- 構文エラー この種のエラーは、C++の記述手法または構文の規則に違反した場合に発生します。この種のエラーは通常、コンパイル前にコンパイラーによって示されます。これらは、コンパイル時エラーと呼ばれることもあります。 この例では、1行の後にセミコロンを付けないと構文エラーが発生する方法を示します。 例 #include<stdi

  16. コマンドライン引数を解析するためのCのgetopt()関数

    getopt()は、コマンドラインオプションを取得するために使用される組み込みのC関数の1つです。この関数の構文は次のようになります- getopt(int argc, char *const argv[], const char *optstring) opstringは文字のリストです。それぞれが1文字のオプションを表しています。 この関数は多くの値を返します。これらは以下のようなものです- オプションが値をとる場合、その値はoptargによってポイントされます。 処理するオプションがなくなると、-1が返されます 「?」を返し、これが認識されないオプションであることを示し、optop

  17. C / C ++のmbrtowc()関数

    このmbrtowc()関数は、マルチバイトシーケンスをワイド文字列に変換するために使用されます。これは、マルチバイト文字の長さをバイト単位で返します。構文は次のようになります。 mbrtowc (wchar_t* wc, const char* s, size_t max, mbstate_t* ps) 引数は-です wcは、結果のワイド文字が格納される場所を指すポインタです。 sは、入力としてのマルチバイト文字列へのポインタです maxは、調べることができるs単位の最大バイト数です psは、マルチバイト文字列を解釈するときに変換状態を指します。 例 #include <b

  18. CおよびC++でセグメンテーションエラーを見つける方法は? (GDBを使用)

    セグメンテーションエラーは、無効な配列インデックスへのアクセス、制限されたアドレスの指定など、メモリアクセス違反が原因で発生するランタイムエラーの1つです。この記事では、GDBツールを使用してこのタイプのエラーを検出する方法を説明します。 。 エラーを見つけるためのコードとそれぞれの手順を見てみましょう。 例 #include <stdio.h> main() {    int* ptr = NULL;    *ptr = 1; //trying to access unknown memory location    

  19. C /C++で高精度に実行時間を測定

    高精度タイマーを作成するには、クロノライブラリを使用できます。このライブラリには高解像度の時計があります。これはナノ秒単位で数えることができます。 このプログラムでは、実行時間がナノ秒単位で表示されます。最初に時間値を取り、最後に別の時間値を取り、その差を見つけて経過時間を取得します。ここでは、空白のループを使用して、エフェクトを一時停止することがあります。 例 #include <iostream> #include <chrono> typedef std::chrono::high_resolution_clock Clock; main() {  

  20. Cの範囲で乱数を生成する

    ここでは、Cを使用して特定の範囲で乱数を生成する方法を説明します。この問題を解決するには、srand()関数を使用します。現在の時刻は、srad()関数のシードに使用されます。 この関数は、どの範囲の乱数も生成できません。0からある値までの数値を生成できます。したがって、そのためには、1つのトリックに従う必要があります。 0から(上–下+ 1)の間に乱数を生成し、オフセットの下限を追加します。 例 #include <stdio.h> #include <stdlib.h> #include <time.h> void generate_random(in

Total 5992 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:58/300  20-コンピューター/Page Goto:1 52 53 54 55 56 57 58 59 60 61 62 63 64