2016-11-20 37 views
0

我想到了一種算法,並且希望將它放入C++中,如果不是,則在Python中放入。它需要用戶輸入三個變量,即圓的直徑,他們在該圓的周長上想要的唯一點的數量,以及他們想要查看的圓的多少。最後,我想讓它更加複雜,並且隨着我們向上旅行而逐漸減小寬度,因爲所有聖誕樹都是多層的(儘管我會從頂部開始往下走,因爲頂部的旅行路徑較少底部),但需要更多的思考,而不是我現在可以給予的。一個例子和公式如下。查找聖誕樹周邊唯一點間距的算法

實施例:

如果我有一個聖誕樹是直徑8英尺,有4分獨特的有色飾掛起,並且只有樹的2/3表示(因爲它是在房子的一角),每件裝飾品之間的等長度是多少?

初始間隔S是4.2英尺

S1 =1.05英尺

S2 =0.2英尺



**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等等上?

+1

那麼......問題是什麼?在整個「問題」中我找不到一個問號。 – Paul

回答

0

我們來調用直徑d,半徑爲r = d/2,可見部分的比例爲p,裝飾物的數量爲n。例如。 p = 0.5表示樹的一半是可見的。

首先,我們需要圓弧的長度,實際上是可見:

l = PI * d * p 

現在我們需要計算每個飾品之間的空間:

s = l/(n - 1) 

的第一裝飾件將被放置在0 ,最後一個在l,其餘的在中間。

現在對於第二部分:
這樣計算下來,在整個樹:
讓我們假設你想放置與h的距離玦HIGHT和整個樹HIGHT而言是H

放置飾物的弧的長度可以計算爲

d(h) = (d/H) * h 

例如在H = 6d = 2的高度3處,我們將獲得d(3) = 1

把這個在一起,我們從高度功能飾物之間的距離:

s(h) = PI * (d/H) * h * p/(n - 1) 

就遍歷上,你要放置裝飾品的高度,你就大功告成了。