算法問題中:算法來確定一個值是否在範圍內的多個
比方說,我想確定一個值是否在範圍內(例如2)幾十多 - 所以,8- 12,18-22,28-32等
我目前的解決方案是將範圍添加到值,mod 10,然後重新減去範圍 - 從而留給我一些從-2到8的東西 - 然後檢查絕對值是否小於所需的範圍。
value = 38
range = 2
cycle = 10
tweaked_mod = ((value + range) % cycle) - range
# tweaked_mod = -2
within_range = (abs(tweaked_mod) <= range)
# within_range = True
與:
value = 37
range = 2
cycle = 10
tweaked_mod = ((value + range) % cycle) - range
# tweaked_mod = 7
within_range = (abs(tweaked_mod) <= range)
# within_range = False
它的工作原理,但它的尷尬。
我錯過了一個更直觀/簡潔的算法嗎?
爲什麼你不能只取值10,然後檢查答案是否是<範圍,如果< 5 and > 10範圍,如果> 5 –
@Ahhishek - 我暫時(本地)工作的算法本質上是做並且同意,最終解釋/評論更清楚。儘管如此,我仍然在發表這個主題的理由是,以防萬一我錯過了一些更深入/更強大的概念來完成同樣的事情,無論是一般的還是專門用Python。 – DreadPirateShawn
另外,隨時發佈您的建議作爲答案 - 如果這仍然是最明確的方法,那麼我想將其標記爲選定的答案。 – DreadPirateShawn