def search(begins, ends)
puts "Searching for #{begins}- #{ends}"
temp = ((begins + ends)/2).to_i
if is_valid? temp
if (ends - begins).abs < 3 # the result is between a and 2 digits than b
return temp # recursion ends
else
search(begins, temp)
end
else
search(temp, ends)
end
end
代碼有0和千萬該傳遞函數is_valid之間的數字的範圍。我想找到使用此代碼通過這項功能,第一和最後一個元素,但它不工作,它甚至沒有close.It進入無限循環,這裏是
Searching for 0- 14981245
Searching for 0- 7490622
Searching for 3745311- 7490622
Searching for 3745311- 5617966 # good result
Searching for 3745311- 4681638
Searching for 3745311- 4213474
Searching for 3745311- 3979392
Searching for 3745311- 3862351
Searching for 3745311- 3803831
Searching for 3745311- 3774571
Searching for 3759941- 3774571
Searching for 3759941- 3767256
Searching for 3759941- 3763598
Searching for 3759941- 3761769
Searching for 3759941- 3760855
Searching for 3760398- 3760855
Searching for 3760626- 3760855
我真的不明白你的代碼。如果你解釋了你正在嘗試實現的算法或者澄清你的變量名稱(可能使用了名詞),那麼我最好能夠提供幫助。 – Tom 2011-03-21 23:11:28
我想找到其他範圍內的相同範圍。我知道開始是介於例如0和1000之間(我用第一次調用的這個參數函數在範圍開始時結束時開始平均值)。比我想在這個範圍(1000 + 0 /)2找到中間數字,並檢查這個數字是否合格。如果是,那麼意味着我的第一個號碼範圍號碼位於0和500(在左側站點od劃分的範圍內)。如果不是,它必須在500和1000(劃分的範圍的右邊)。我想掃描和分割這個,直到我得到了第一個通過我的有效函數的數字。 – John 2011-03-22 09:30:13
而我想要函數返回這個數字temp(我正在搜索的範圍的第一個數字)。對不起,不解釋此前 – John 2011-03-22 09:31:11