0

我有一个问题我不知道如何解决。我有一个儒略日数(整数)和一个距离值(浮点数),我还有另一个数字,它是实际感兴趣的儒略日(整数)。我想取实际的儒略日并将其放入儒略日范围(即儒略日 1-14),以便我可以确定该特定儒略日的距离值。所以我的儒略日第 10 天,适合儒略日范围或 1 - 14,使距离 = 0.9832。对此的任何帮助将不胜感激。到目前为止,我所尝试的只是使用 if else,但我认为这根本行不通。欢迎您的想法。(如果我不清楚我要做什么,请告诉我!)

儒略日距离 1 0.9832 15 0.9836 32 0.9878 46 0.9878 60 99.0900

4

2 回答 2

1

假设您期望在多个查找中具有良好的性能,那么您可以使用二分搜索算法来实现您想要做的事情。

其实只要搜索“二分查找”就发现了一个类似的问题

如果性能不是问题,则可以通过您的日间距离进行简单的循环。

无论哪种方式,我都会首先将日距离放入顺序数据结构中:

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
于 2013-07-11T03:40:54.823 回答
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
....
于 2013-07-11T03:19:22.373 回答