38 / 39 / 7
Регистрация: 13.11.2020
Сообщений: 678

Предсказание погоды с памятью

05.01.2021, 16:39. Показов 18480. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Самый простой случай в статистике — это когда нужно определить вероятность появления одного из равновероятных событий. Например, выпадения орла или решки при броске монеты. Если бросать монету несколько раз, то вероятность не изменится, монета ничего не знает о результатах наших предыдущих экспериментов.
Но так бывает не всегда. Замечено, что после пасмурного дня скорее всего будет тоже пасмурный, а после ясного — ясный. Допустим, что мы много лет наблюдали за погодой и накопили большой объем статистики и определили вероятность ясного дня после ясного как p, соответственно, пасмурного после ясного как 1 — p; пасмурного после пасмурного как q, тогда ясного после пасмурного 1 — q.
Мы хотим узнать, с какой вероятностью через несколько дней будет определенная погода. Пусть сегодня ясно. Тогда завтра ясно будет с вероятностью p, а пасмурно — 1 — p. А послезавтра?

Остается только определить максимальную вероятность интересующей нас погоды из полученных. Так можно попытаться предсказать погоду на любой день после сегодняшнего. Напишите для этого программу.
Формат ввода
Строка — какая погода сегодня.
Вещественное число — вероятность ясного дня после ясного.
Вещественное число — вероятность пасмурного дня после пасмурного.
Целое число — через сколько дней нам нужен прогноз.
Формат вывода
Вывести прогноз на интересующий нас день — ясно или пасмурно, а также полученную вероятность. Если вероятность одинакова, вывести — равновероятно.
Миниатюры
Предсказание погоды с памятью  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.01.2021, 16:39
Ответы с готовыми решениями:

Предсказание погоды с памятью
Самый простой случай в статистике — это когда нужно определить вероятность появления одного из равновероятных событий. Например, выпадения...

Предсказание погоды с памятью
Самый простой случай в статистике — это когда нужно определить вероятность появления одного из равновероятных событий. Например, выпадения...

Предсказание погоды с памятью
Самый простой случай в статистике — это когда нужно определить вероятность появления одного из равновероятных событий. Например, выпадения...

6
38 / 39 / 7
Регистрация: 13.11.2020
Сообщений: 678
06.01.2021, 00:26  [ТС]
Python
1
2
3
4
5
6
7
8
9
cur, prob = [1.0, 0.0] if input() == 'ясно' else [0.0, 1.0], [float(input()), float(input())]
for i in range(int(input())):
    cur = [cur[0] * prob[0] + cur[1] * (1.0 - prob[1]), cur[1] * prob[1] + cur[0] * (1.0 - prob[0])]
if cur[0] > cur[1]:
    print('ясно', cur[0], sep='\n')
elif cur[1] > cur[0]: 
    print('пасмурно', cur[1], sep='\n')
else:
    print('равновероятно')
Номер теста
1
Ввод
ясно
0.9
0.75
2
Ожидаемый результат
ясно
0.81
Вывод
ясно
0.8350000000000001

Составители задач Яндекс лицея видимо решили поиздеваться над нами.Даже если тупо подставить значения вероятностей первого примера в нарисованное дерево, 0.81 мы получим только в левом нижнем углу (все дни ясные). Но второе справа значение в нижнем ряду это тоже ясно с вероятностью 0.025. Потому общая вероятность ясной погоды - 0.835, но никак не 0.81.

Добавлено через 19 минут

Не по теме:

можно меня поздравить я первый на этом форуме кто написал хотя бы какие то вычисления и задумки по поводу этой задачи:yahoo::D



Добавлено через 3 минуты

Не по теме:

буду благодарен, кто исправит вычисления, чтобы заработало верно

1
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,318
06.01.2021, 06:25
Лучший ответ Сообщение было отмечено Ychenyi как решение

Решение

Ychenyi, похоже в 3-й строчке вместо сложения вероятностей берется максимум из двух...
1
38 / 39 / 7
Регистрация: 13.11.2020
Сообщений: 678
06.01.2021, 09:47  [ТС]
Gdez,
Python
1
2
3
4
5
6
7
8
9
10
from decimal import Decimal
zero, one = Decimal(0), Decimal(1)
cur, prob = [one, zero] if input() == 'ясно' else [zero, one], [Decimal(input()), Decimal(input())]
for i in range(int(input())):
   cur = [cur[0] * prob[0] + cur[1] * (one - prob[1]), cur[1] * prob[1] + cur[0] * (one - prob[0])]
   if cur[0] > cur[1]: cur[1] = zero
   elif cur[1] > cur[0]: cur[0] = zero
if cur[0] > cur[1]: print('ясно', cur[0], sep='\n')
elif cur[1] > cur[0]: print('пасмурно', cur[1], sep='\n')
else: print('равновероятно')
работающий код
1
0 / 0 / 0
Регистрация: 09.05.2021
Сообщений: 3
31.05.2021, 15:29
Здравствуйте, у вас получилось решить задачу?

Добавлено через 19 минут
У меня есть решение, но оно работает только для 3 тестов
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
a = input()
p = float(input())
q = float(input())
p1 = 1 - p #пасмурный после ясного
q1 = 1 - q #ясный после пасмурного
D = {'пасмурно': [], 'ясно': []}
n = int(input())
m = [q, p]
d1 = []
d2 = []
m1 = []
T = True
for i in range(n - 1):
    for j in m:
        if T:
            m1.append(round(q * j, 4))
            d1.append(round(q * j, 4))
            m1.append(j * q1)
            d1.append(j * q1)
            T = False
        else:
            m1.append(j * p1)
            m1.append(round(p * j, 4))
            d2.append(round(p * j, 4))
            d2.append(j * p1)      
            T = True
    m = m1
    m1 = []
D['пасмурно'] = d1
D['ясно'] = d2
M = max(m)
if M in D['пасмурно'] and M in D['ясно']:
    print('равновероятно')
    print(max(m))    
elif M in D['ясно']:
    print('ясно')
    print(max(m))
 
else:
    print('пасмурно')
    print(max(m))
0
3 / 3 / 0
Регистрация: 30.12.2021
Сообщений: 1
30.12.2021, 17:42
Вот код, который засчитали. Измените его, иначе дадут бан за списывание:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
now = input()
 
if now == 'ясно':
    yasno = 1
    pasmurno = 0
else:
    yasno = 0
    pasmurno = 1
p = float(input())
q = float(input())
count = int(input())
 
for i in range(count):
    yasno, pasmurno = (max(yasno * p, pasmurno * (1 - q)),
                       max(pasmurno * q, yasno * (1 - p)))
if yasno > pasmurno:
    print('ясно')
    print(yasno)
elif pasmurno > yasno:
    print('пасмурно')
    print(pasmurno)
else:
    print('равновероятно')
    print(yasno)
Дело в том, что учитывается только максимальная вероятность.
3
1 / 1 / 0
Регистрация: 11.01.2022
Сообщений: 1
11.01.2022, 18:58
с божьей помощью но ходит
просто брала максимальные значения go погоды (вероятность в степени количество дней) и оставшейся погоды (вероятность второй погоды в степени (колво дней минус один) умножить (1 - вероятность go после go). какое больше, то идёт в принт

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
go = input()
p, q = float(input()), float(input())
rr = int(input())
flag = False
if p < p - 1:
    n1 = 1 - p
else:
    n1 = p
if q < q - 1:
    n2 = 1 - q
else:
    n2 = q
if go == 'пасмурно':
    n1, n2 = n2, n1
    flag = True
na1 = n1 ** rr
na2 = n2 ** (rr - 1) * (1 - n1)
if flag:
    na1, na2 = na2, na1
if na1 > na2:
    print('ясно')
    print(na1)
elif na2 > na1:
    print('пасмурно')
    print(na2)
else:
    print('равновероятно')
    print(na1)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.01.2022, 18:58
Помогаю со студенческими работами здесь

Предсказание погоды с памятью
Самый простой случай в статистике — это когда нужно определить вероятность появления одного из равновероятных событий. Например, выпадения...

Предсказание погоды.
Хочу сделать погодную станцию, которая будет предсказывать погоду. Температуру, влажность и давление мерить я могу. Вести лог изменений...

Предсказание погоды
Всем привет! Я работаю на ТЭЦ. Встал вопрос предсказания погоды. Пробовал сам написать подсказчик - плохая точность (r2 = 0.95, MAPE =...

Предсказание погоды с изменениями
Самый простой случай в статистике — это когда нужно определить вероятность появления одного из равновероятных событий. Например, выпадения...

Организация и управление памятью. Написать программу, моделирующую процесс управления памятью
Ребята пожалуйста, вопрос жизни и смерти. Ну не могу я в ассемблер, пугает он 1. Написать программу, моделирующую процесс управления...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru