我们一直在研究计算理论中的密码学,课堂上出现了紊乱的想法让我感兴趣,所以我想对这个主题做一些调查。
为此我一直在尝试制定一个可以计算任意设定大小的紊乱的c程序,但是遇到了一些麻烦。
我已经能够编写一些可以计算特定集合大小的紊乱的内容,例如。 4:
#include <stdio.h>
#include <stdlib.h>
#define SET_SIZE 4
int main(void)
{
int i, j, k, l, counter = 0;
for (i = 0; i < SET_SIZE; i++)
{
for (j = 0; j < SET_SIZE; j++)
{
for (k = 0; k < SET_SIZE; k++)
{
for (l = 0; l < SET_SIZE; l++)
{
if (i != j && i != k && i != l && j != k && j != l && k != l)
{
if (i != 0 && j != 1 && k != 2 && l != 3)
counter++;
}
}
}
}
}
printf("number of derangements for size %d: %d\n", SET_SIZE, counter);
}
但我希望能够只将set size的值作为程序的参数输入,并计算该组大小的紊乱次数。
我认为使用递归可能是一种解决问题的方法,但我真的不能考虑如何去做这件事
任何人都有任何想法吗?
答案 0 :(得分:2)
答案 1 :(得分:1)