取最接近零的分段(或整個圖表,如果零不在該範圍內) - 例如,如果您有某個範圍[-5,1],取[-5,0 ]。
找出該段的大概時間,以蜱爲單位。這只是將長度除以勾號的寬度。所以假設該方法說我們可以在-5到0之間插入11個滴答。這是我們的上限。對於較短的一面,我們只是將結果反映在較長的一面。
現在嘗試放入儘可能多的(最多11個)刻度,以便每個刻度的標記形式爲i * 10 * 10^n,i * 5 * 10^n,i * 2 * 10^n,其中n是一個整數,i是刻度的索引。現在,這是一個優化問題 - 我們希望最大限度地增加可以放入的刻度數量,同時最小化最後一個刻度與結果之間的距離。因此,爲得到儘可能多的滴答聲而設定一個分數,小於我們的上限,併爲最後滴答滴答接近n分配一個分數 - 您必須在這裏進行實驗。
在上例中,嘗試n = 1。我們得到1個刻度(在i = 0時)。 n = 2給我們1滴答,我們離下限越遠,所以我們知道我們必須走另一條路。在每個整數點處,n = 0給我們6個滴答聲。 n = -1給我們12個刻度(0,-0.5,...,-5.0)。 n = -2給我們24個滴答聲,依此類推。評分算法會給他們每個分數 - 更高意味着更好的方法。
再次爲i * 5 * 10^n和i * 2 * 10^n做這個,並拿出最好的分數。 (作爲一個計分算法的例子,說分數是最後一次滴答時間到滴答的最大數量減去所需數量的距離,這可能是不好的,但它可以作爲一個體面的起點) 。
這看起來不錯,我可以買這本書。 – Nick 2008-10-28 23:17:49