gpt4 book ai didi

c - N个元素的所有组合

转载 作者:行者123 更新时间:2023-11-30 20:35:26 25 4
gpt4 key购买 nike

我需要算法方面的帮助:我有 N 个 AP(接入点),并且每个 AP 共享一个信道和频率

channel 从 1 到 X频率从 1 到 Y

我需要找到值的所有可能性,所以我按照这样的逻辑思考,首先进行所有频率组合,然后是所有 channel 组合,然后进行相同的整理。但我正在努力实现这个组合生成器,有人可以帮助我理解我的代码中有什么问题吗?

#include <stdio.h>
#include <math.h>

main ()
{
int j=0,key=1,cont=1,K,K2,i,AP,F;
scanf("%d",&AP); //Number of acess points
scanf("%d",&F); //Number of Frequencies
K=pow(F,AP); //F^AP = Number of possibilities
K2=K; //The same
int FREQ[AP][K]; //For save the result
for(j=0;j<AP;j++) //Repeat APs times
{
for(i=0;i<K2;i++) //Repeat Result times
{
if(cont>F) cont=1;
FREQ[j][i] = cont;
key++;
if(key==K)
{
cont++;
key=1;
}
}
cont=key=1;
K=K/2;
}
}

例如,我有 3 个 AP 和 2 个频率

这需要可能性的数量和数字的频率来设置可能性例如,如果我有 3 个 AP 和 2 个频率,它将首先运行1 1 1 1 2 2 2 2在第二个中,当我分割 F/2这将是1 1 2 2 2 1 1 2

但我不明白为什么不起作用

输出应该是:

1 1 1
1 1 2
1 2 1
1 2 2
2 1 1
2 1 2
2 2 1
2 2 2

最佳答案

我修好了:D

j=0;
key = cont = 1;
K=pow(F,AP);
K2=K;
K=K/F;
FREQ=calloc(K2,sizeof(int*));
for(i=0;i<K2;i++)
FREQ[i]=calloc(AP,sizeof(int));

for(j=0;j<AP;j++)
{
for(i=0;i<K2;i++,key++)
{
FREQ[i][j] = cont;
if(key==K)
{
if(cont==F) cont=1;
else cont++;
key=0;
}
}
cont=1;
K=K/F;
key=1;
}

关于c - N个元素的所有组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39584140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com