gpt4 book ai didi

c# - 帮助创建递归函数 C#

转载 作者:太空宇宙 更新时间:2023-11-03 17:36:59 24 4
gpt4 key购买 nike

我正在创建一个预测应用程序,它将针对生产工厂能够运行的各种“模式”运行模拟。该工厂每天可以在一种模式下运行,因此我正在编写一个函数,将每天选择的不同模式相加,以最大限度地提高工厂的产量,并与提供的销售预测数字保持最佳一致。该数据将加载到模式对象数组中,然后用于计算工厂的预测输出。

我已经创建了执行此操作的函数,但是,我需要使它们递归,以便我能够处理任何数量(在合理范围内)的模式和工作日(根据生产需要而变化)。下面列出的是我使用 for 循环模拟我想做的事情的代码。有人可以指出我正确的方向以创建递归函数来代替对多个 for 循环的需要吗?

当有四种模式时,方法 GetNumbers4 将在其中,而 GetNumbers5 将是 5 种模式。 Int start 将是工作日数。

  private static void GetNumber4(int start)
{
int count = 0;
int count1 = 0;

for (int i = 0; 0 <= start; i++)
{
for (int j = 0; j <= i; j++)
{

for (int k = 0; k <= j; k++)
{
count++;

for (int l = 0; l <= i; l++)
{
count1 = l;
}

Console.WriteLine(start + " " + (count1 - j) + " " + (j - k) + " " + k);
count1 = 0;
}

}
start--;

}
Console.WriteLine(count);

}

private static void GetNumber5(int start)
{
int count = 0;
int count1 = 0;

for (int i = 0; 0 <= start; i++)
{
for (int j = 0; j <= i; j++)
{

for (int k = 0; k <= j; k++)
{

for (int l = 0; l <= k; l++)
{
count++;
for (int m = 0; m <= i; m++)
{
count1 = m;
}
Console.WriteLine(start + " " + (count1 - j) + " " + (j - k) + " " + (k - l) + " " + l);
count1 = 0;
}

}

}
start--;

}
Console.WriteLine(count);

}

已编辑:

我认为,如果我举例说明我正在尝试做的事情会更有帮助。例如,如果工厂可以在“A”、“B”、“C”三种模式下运行并且有三个工作日,那么代码将返回以下结果。

3  0  0
2 1 0
2 0 0
1 2 0
1 1 1
1 0 2
0 3 0
0 2 1
0 1 2
0 0 3

这一系列数字代表三种模式 A B C。我会将这些结果加载到具有相应生产率的模式对象中。这样做可以让我快捷地创建一个包含所有可能组合的列表;相反,它给了我出现的频率。

基于已经提供的解决方案之一,我想做这样的事情。

    //Where Modes is a custom classs
private static Modes GetNumberRecur(int start, int numberOfModes)
{
if (start < 0)
{
return Modes;

}

//Do work here
GetNumberRecur(start - 1);
}

感谢所有已经提供意见的人。

最佳答案

调用 GetNumber(5, x) 应该产生与 GetNumber5(x) 相同的结果:

static void GetNumber(int num, int max) {
Console.WriteLine(GetNumber(num, max, ""));
}
static int GetNumber(int num, int max, string prefix) {
if (num < 2) {
Console.WriteLine(prefix + max);
return 1;
}
else {
int count = 0;
for (int i = max; i >= 0; i--)
count += GetNumber(num - 1, max - i, prefix + i + " ");
return count;
}
}

关于c# - 帮助创建递归函数 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1313969/

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