理想情况下,“S” 应该趋于无穷大。 以下变量在我之前的文章中并未讲述。 我将在此处提供相关说明,从而能全面了解如何运用通用公式来得到特殊情况。 分形是根据链式反应原理工作的函数,就像在原子弹中一样。 如果设置的连锁反应太深,计算机可能无法应对如此庞大的计算。 如果情况不是特别严重,它简单地花费很长时间来计算 — 几分钟、几小时、甚至几天。 若要在分形中正确启动链式反应,我们应该找到两个基础值:
-
Half - 通道宽度的一半
-
Middle - 对应于中线的 “U” 值
针对我们在上一篇文章中判定的所有三种情况,可以轻松计算出 Half 值:它是 m 和 n 的算术平均值:
-
Half = ( n + m ) / 2
为了实现第二个值,我们将不得不用到三个逻辑变体。 不过,第一个和第二个变体可以合并为一个。 因此,我们有两个变体:
-
n >= m
-
n < m
接下来,假设 “U” 轴向上,n 值是通道的上边界,而 m 是下边界,我们得到两种可能情况的两个比率所对应的 m 和 n:
-
Middle = Half - m
-
Middle = - ( Half - n )
这些值将传递给分形函数,供其内部使用,因为没有它们就无法实现上一篇文章中讲述的内部分支逻辑。 函数原型如下:
-
double Fractal(double Half, double Middle, int m, int n, int s,double p,int S, int U, double P)
因此,为了调整分形起点,我们需要传递三个强制值:
-
Half - 通道宽度的一半
-
Middle - 对应于中线的 “U” 值
-
m - 到下边界的步阶数
-
n - 到上边界的步阶数
-
s - 单个链在任何方向上允许的最大步阶数
其它值用大写字母表示,表明这些值是动态的,并且在不同的分形层上会有所不同。 这是它们的定义:
-
S - 当前概率链中累积的步阶数; 要被传递到下一个分形层
-
U - 链起点和终点之间的当前距离; 传递到下一个分形层
-
P - 基于伯努利规划案的完整概率链的累积乘积; 需要传递到下一个分形层