c# - 方程的迭代展开
问题描述
我正在尝试编写一种方法来执行方程的迭代扩展,该方程在第二次迭代之后具有定义的模式。我需要将每次迭代的结果放入 aList<T>
中,因此我需要在每个迭代中停下来。
前几个步骤如下所示:
Fraction step1 = whole + half;
Console.WriteLine(" 1: " + step1);
Fraction step2 = whole + whole / (whole * 2 + half);
Console.WriteLine(" 2: " + step2);
Fraction step3 = whole + whole / (whole * 2 + whole / (whole * 2 + half));
Console.WriteLine(" 3: " + step3);
Fraction step4 = whole + whole / (whole * 2 + whole / (whole * 2 + whole / (whole * 2 + half)));
Console.WriteLine(" 4: " + step4);
Fraction step5 = whole + whole / (whole * 2 + whole / (whole * 2 + whole / (whole * 2 + whole / (whole * 2 + half))));
Console.WriteLine(" 5: " + step5);
基本上在每次迭代之后step >= 2
,half
都会被替换为whole / (whole * 2 + half)
继续进行 n 次迭代。
不过,我不完全确定如何在 C# 中编写这样的迭代方程。
说明:至少会有 1000 次迭代。只有第 1 步不遵循模式(我猜从技术上讲,第 2 步没有建立模式)。
解决方案
尝试这个 -
List<Fraction> steps = new List<Fraction>();
for (int i = 0; i < 5; i++)
{
if (i > 0)
half = whole / (whole * 2 + half);
var step = whole + half;
steps.Add(step);
Console.WriteLine($" {i + 1}: {step}");
}
所有步骤都存储在steps
列表中。
推荐阅读
- javascript - 即使放大,mapbox-gl 聚类点也位于同一位置
- html - 在任意大小的图像周围添加边框,包括响应性 [html/css/js]
- python - Jupyter Notebook 不呈现 ipywidgets
- c# - 调用异步方法时不包含“GetAwaiter”的定义
- python - 熊猫:列之间的映射重叠
- r - 在 R 中使用 table1 显示 95% 的置信区间
- reactjs - 默认下拉值仅在初始输入后呈现
- list - vim - 如何不使用 :cn 和 :cb 自动切换缓冲区
- javascript - 当我使用 img 或 background-image 应用背景颜色时,我无法消除手机上图像周围的间隙
- node.js - TypeScript、TypeORM、@OneToMany:构造函数根本不起作用