我想到了一个算法,并且想把它放在C ++中,如果不是,那么在Python中。它需要用户输入三个变量,圆的直径,他们想要在该圆的周长上的唯一点的数量,以及他们想要查看的圆的多少。最后我想让它变得更复杂并且随着我们向上行进而减少宽度,因为所有的圣诞树都是多层的(虽然我从顶部开始然后往下走,因为顶部的旅行路径比但是这需要更多的思考,而不是我现在可以给予的。一个例子和公式如下。
示例:的
如果我有一棵直径为8英尺的圣诞树,那么有4个独特的彩色饰物可以悬挂,只有2/3的树正在展示(因为它在房子的角落里),是什么每件饰品之间的长度相等?
初始间距S为4.2英尺
S1 = 1.05英尺
S2 = .2 ft
**Variable Explanation User Input**
Pi The number Pi N
D Diameter Y
C Number of colors (or number of unique points you want on the circle) Y
X 0-1; how much of the tree or circle will be viewed (two decimals) Y
式
S =(X pi D)/ C
S1 S/C
S2 S1/C
广义公式
SN SN-1/C
问题:循环算法的代码是什么?
找到答案的最佳方法似乎是让用户输入X,D和C等于S.但是你怎么写S1 = S / C,S2 = S1 / C,依此类推?
答案 0 :(得分:0)
让我们调用直径d
,半径r = d / 2
,可见部分p
的比例和饰品n
的数量。例如。 p = 0.5
表示树的一半可见。
首先,我们需要实际可见的弧的长度:
l = PI * d * p
现在我们需要计算每个装饰品之间的空间:
s = l / (n - 1)
第一个饰品将放在0,最后一个放在l,其余的放在中间。
现在是第二部分:
在整棵树上计算:
我们假设您想要以高度为h
的距离放置饰品,整个树高为H
:
摆放饰物的弧的长度可以计算为
d(h) = (d / H) * h
E.g。在H = 6
和d = 2
的高度3处,我们将获得d(3) = 1
。
把它们放在一起,我们得到了从高度到饰物之间距离的功能:
s(h) = PI * (d / H) * h * p / (n - 1)
只需在您想要放置饰品的高度上循环就可以了。