Функция для расчета времени связи «Вояджера-1» в оба конца

#time #communication #roundtrip

Вопрос:

«Привет всем

Я пытаюсь найти простую функцию, которую я могу использовать для оценки времени связи в оба конца космического корабля «Вояджер-1» (1, 3, 10, 100 или 300 лет спустя).

Это информация, которой я располагаю до сих пор, это должна быть простая функция, и я понимаю математику. Просто нужен язык.

Спасибо

 import time

def communication_time(days):

    distance_start = 0
    distance_now = 22944706739.083 #in km
    velocity_voy_1 = 16.9995 # in km/s
    speed_of_light = 299792 # km/s


distance = distance_start   velocity_voy_1 * time_since_start

round_trip_communication_time = (2 * distance_now/speed_of_light)

return 0

    print(abs(communication_time(0) - 146143.0) < 10)
    print(abs(communication_time(55) - 146682.0) < 10)
    print(abs(communication_time(365.25 * 6) - 167616.0) < 10)  
 

Комментарии:

1. Что это за язык? Кстати, я не думаю, что V1 так далеко.

2. Python 3, извините за упущение

3. В сутках 24*3600 секунд… distance_now не используется… с этого момента вычисляйте distance = distance_now v * days_converted_to_seconds и используйте distance в rtc_time, а затем возвращайте это rtc_time.

4. На самом деле, @Breakingnotsobad, это так далеко.

5. О да… Я читал километры, пока это были мили… Забыл, что некоторые люди все еще используют эти устройства среднего возраста…

Ответ №1:

Я думаю, что это то, что вам нужно:

 import time

distance_now = 22944706739.083 #in km
velocity_voy_1 = 16.9995 # in km/s
speed_of_light = 299792 # km/s

def where_will_voyager_be( days ):
    return distance_now   velocity_voy_1 * 86400 * days

def communication_time( distance ):
    return 2 * distance / speed_of_light

def comm_time_in_days( days ):
    dist = where_will_voyager_be( days )
    return communication_time( dist )

# How long is comm time now?

print( "Now:", comm_time_in_days(0), "s" )
print( "Next month:", comm_time_in_days(30), "s" )
print( "Next year:", comm_time_in_days(365.25), "s" )
print( "5 years:", comm_time_in_days(5 * 365.25), "s" )
print( "10 years:", comm_time_in_days(10 * 365.25), "s" )
print( "30 years:", comm_time_in_days(30 * 365.25), "s" )
 

Выход:

 Now: 153070.84071011236 s
Next month: 153364.79587902947 s
Next year: 156649.74489167825 s
5 years: 170965.3616179418 s
10 years: 188859.88252577122 s
30 years: 260437.96615708893 s
 

Комментарии:

1. можете ли вы посоветовать мне, почему следующие печатные заявления были включены в исходный вопрос. печать(abs(время общения(0) — 146143,0) < 10) печать(abs(время общения(55) — 146682,0) < 10) печать(abs(время общения(365,25 * 6) — 167616,0)

2. Требуемый выход был *Истинным, Истинным, Истинным?

3. Вы не упомянули, что у вас были другие требования. Ты только что сказал, что тебе нужен номер. Эти утверждения, по-видимому, подтверждают вашу домашнюю работу, проверяя, получили ли вы правильный ответ. Однако цифры не совпадают. С цифрами, которые вы указали, (0) — это 153070, а не 146173. Это разница в миллиард километров.

4. Привет, Тим. Большое спасибо за всю вашу помощь в этом, все оценено по достоинству.