2017-02-23 67 views
0

我試圖找出寫一點「算法」,這將是能夠找到一個數學這兩個數字之間的範圍的好方法之間的範圍內的元素一個不錯的量:生成兩個數字

Let's suppose maximum number is 1500 and minimum number would be 1; 

通過執行某種數學公式,方法將能夠確定這兩個數字之間的最佳範圍可以說100;

所以範圍是:

100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500

其它示例:

最大爲10,最小值1;

最佳範圍是(比方說):

2,4,6,8,10 

是否有在C#它提供這種解決方案還是有用於確定此一些巧妙的數學公式的庫?

P.S.夥計們可以在數量上有餘數...

我猜我可以將最大數字分成讓我們說7個固定組,然後只加起來分開的數字,直到我得到的最大值,不是?

好的傢伙,我已經想通了一個主意,讓我們假設最大數目是一個浮點數是:1326.44 ...,而最低爲132.5

I'm going to say that maximum range can be 7... So what I can do is divide 1326.44 with 7 and I'll get 189.49 

因此,在範圍內的第一個量:

var ranges = new[] { 132.5, 189.5 ... /*Now I just need to dynamically somehow add the rest of the range elements?*/ }; 
+0

所以基本上你想找到一個複雜的數學表達式,簡單地做一個沒有餘數的分裂? – Tinwor

+0

@Tinwor是的,可以有一個餘數,我忘了提及... Sry –

+0

我猜我可以把最大數字分成6個固定組,然後加上除數,直到我得到最大值,不是嗎? –

回答

1

這實際上是非常容易的。您有一個最小範圍值和一個最大範圍值,並且您想要範圍內的特定數量的項目。因此,您只需計算一個步驟值,然後將其遞歸添加到最小值,直到達到最大值。例如:

var min = 132.5; 
var max = 1326.44; 
var count = 7; 

var step = (max - min)/count; 

var items = new List<double>(); 
for (var i = min; i <= max; i += step) 
{ 
    items.Add(i); 
}