基于ai+b mod n的交换功能

Swap function based on ai+b mod n

本文关键字:交换 功能 ai+b mod 基于      更新时间:2023-10-16

我需要一个交换函数,它将根据计算ai+b mod n 后得到的结果进行交换

例如,我有一个文本:"TEST",我想基于ai+b mod n进行交换假设我得到的结果ai+b mod n为2,4,1,3,即我的文本在交换后将是"ETTS",我第一个位置的字母将在位置3,位置2将是位置1,位置3将是4,4将是2。

以下代码将生成ax+b mod n的值,需要一些关于如何交换文件中单词的帮助。提前谢谢。感谢

int main ()
{
    cout << "Enter values of a and b." << endl;
    cin >> a >> b;
    cout << "Enter input file name." << endl;
    cin >> inputfile;
    FILE * pFile;
    pFile = fopen (inputfile, "rb");
    if (pFile == NULL) perror ("Error opening file");
    else
    {
        fseek (pFile, 0, SEEK_END);   // non-portable
        sizeoffile = ftell (pFile);
        cout << sizeoffile << "n";
        fclose (pFile);
    }
    n = sizeoffile / 32;
    cout << n << endl;
    for (i = 1; i <= n; i++)
    {
        int message1 = ((a * i + b) % n);
        int c = message1;
        cout << c << endl;
    }
    return c;
}

创建与第一个字符串相同长度的第二个字符串,并将第一个字符串的第(ai+b)个字符复制到输出的第i个位置。

请记住,C++从0开始计数。