gpt4 book ai didi

c - 查找 n 组 k 个元素的所有组合

转载 作者:行者123 更新时间:2023-11-30 19:48:53 25 4
gpt4 key购买 nike

我有一个结构数组

typedef struct st1
{
double start;
double step;
double stop;
} ST;

我需要找到这些优化参数从开始到停止的所有可能组合。

例如:

array[0].start = 0
array[0].step = 1
array[0].stop = 2

array[1].start = 5
array[1].step = 1
array[1].stop = 6

组合如下:

0,5 0,6 1,5 1,6 2,5 2,6

如何在 C 中实现 N 大小的选项数组?

for(i=0; i<n; i++){
....
}

最佳答案

一些伪代码(实际上是 Kalkulon 代码),可以简单地转换为 C 代码:

::array={{0,1,2},{5,1,6}},
::N=Size(array),
::combination={0,0},

comb()=
(
n=0,
do(
finishCtr = 0,
i = n,
for(j = 0; j < N; j++; // do
maxsteps=(array[j,2] - array[j,0]) / array[j,1] + 1,
steps = i % maxsteps, // modulo
i = ip(i / maxsteps), // integer division
elem = array[j,0] + steps * array[j,1],
if(i > 0 && steps == 0; finishCtr++),
combination[j] = elem
),
// print result if not already all combinations are done
if(finishCtr < N; PrintLn((string)combination)),
n++
; // do-while
finishCtr < N
)
);

输出:

{0, 5}
{1, 5}
{2, 5}
{0, 6}
{1, 6}
{2, 6}

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

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