我有一个问题,我不知道如何解决。我有一个朱利安日数(整数)和一个距离值(浮点数),我有另一个数字,实际上是朱利安日(整数)。我想采取实际的朱利安日并将其纳入朱利安日范围(即朱利安日1-14),以便我可以确定特定朱利安日的距离值。因此,我的朱利安第10天,适合朱利安日范围或1 - 14,使距离= 0.9832。任何有关这方面的帮助将不胜感激。到目前为止我所尝试的只是使用if else,但我认为这根本不会起作用。欢迎您的想法。 (如果我不清楚我想做什么,请告诉我!)
朱利安日 距离 1 0.9832 15 0.9836 32 0.9878 46 0.9878 60 99.0900答案 0 :(得分:1)
假设您期望在多个查找中获得良好的性能,那么您可以使用binary search algorithm来实现您的目标。
事实上,只搜索“二分搜索”找到了a similar question。
如果性能不是问题,那么通过日间距离的简单循环将起作用。
无论哪种方式,我都会将日间距离放入顺序数据结构中:
day_distances = [( 1, 0.9832),
(15, 0.9836),
(32, 0.9878),
(46, 0.9878),
(60, 99.0900),
]
现在,如果它是一个我正在使用的简单循环(我根本不关心效率低下),它看起来像是:
find_day = 10
found_distance = None
for day, distance in reversed(sorted(day_distances)):
if day <= find_day:
found_distance = distance
break
答案 1 :(得分:0)
“如果”肯定有效。例如,
actual_day = 10
if a >=1 and a<=14:
distance = 0.9832
elif a>=15 and a<=31:
distance = 0.9836
....
如果朱利安日数(整数)严格增加,如1,15,32,46等,从最大到最小使用“if”会更容易:
actual_day = 10
if a >= 60:
distance = 99.0900
elif a >= 46:
distance = 0.9878
....