Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/89: Рейтинг темы: голосов - 89, средняя оценка - 4.81
38 / 39 / 7
Регистрация: 13.11.2020
Сообщений: 678

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

05.01.2021, 16:39. Показов 18467. Ответов 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,317
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 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru