С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 06.01.2019
Сообщений: 17

Ребята, где у меня ошибка Торговля акциями

09.08.2021, 10:46. Показов 2174. Ответов 5

Студворк — интернет-сервис помощи студентам
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
n,x = input().split()
n = int(n)
x = int(x)
f = 1
 
a = [int(x)for x in input().split()]
b = [int(x)for x in input().split()]
ibest = 0
jbest = 1
imin = 0
if n == 1:
    print(x)
    print(-1, -1)
    f == 0
for j in range(2, n):
    if f == 0:
        break
    if a[j-1] < a[imin]:
        imin =  j - 1
    if x//a[imin]*b[j] + x%a[imin] > x//a[ibest]*b[jbest] + x%a[ibest]:
        jbest = j
        ibest = imin
 
if f == 0:
    pass
elif x//a[ibest]*b[jbest] + x%a[ibest] < x:
    print(x)
    print(-1, -1)
 
else:
    print(x//a[ibest]*b[jbest]+(x%a[ibest]))
    print(ibest+1, jbest+1)
Торговля акциями
В настоящее время на бирже при торговле акциями активно применяются компьютерные системы, которые упрощают и автоматизируют процесс покупки и продажи акций. Некоторые из них даже позволяют вести торговлю вообще без участия человека.

Разумеется, основным критерием, по которому такие системы оцениваются, является прибыль, которую приносит торговля с их применением. Для того чтобы её повысить, при построении этих систем применяются различные математические методы и модели.

Основной трудностью при создании таких систем является то, что они должны некоторым образом учитывать изменение стоимости акций в будущем, а также его прогнозировать. Ваша задача несколько проще — курсы продажи и покупки акций за весь период из N дней уже известны, необходимо лишь разработать оптимальную стратегию продаж и покупок. При этом для простоты будем считать, что за эти N дней купить акции можно не более одного раза и продать акции можно также не более одного раза.

Кроме этого, будем считать, что продажа и покупка будет осуществляться только с акциями одного типа. На начало этого периода вы располагаете суммой в X рублей. Для каждого из дней известна цена ai (от ask — цена предложения), по которой можно купить одну акцию, и цена bi, по которой можно одну акцию продать. При этом в соответствии с действующими правилами торгов на бирже разрешается продавать и покупать только целое число акций (например, если у вас есть 5 рублей, а акция стоит 2 рубля, то вы можете купить не более двух акций). Требуется написать программу, которая по имеющимся данным о стоимости акций в каждый из дней, найдёт оптимальную стратегию покупки и продажи акций.

Входные данные

Первая строка содержит целые числа N и X (1 ≤ N ≤ 100 000,1 ≤ X ≤ 106). Вторая строка содержит N целых чисел a1, ..., aN. Третья строка содержит N целых чисел b1, ..., bN(1 ≤ bi ≤ ai ≤ 1 000).

Выходные данные

В первой строке выведите максимальную сумму, которой вы можете обладать по окончании рассматриваемого периода. Во второй строке выведите два числа — номер дня d1, в который следует купить акции, и номер дня d2, в который эти акции следует продать (должно выполняться неравенство d2 > d1). При этом подразумевается, что покупается столько акций, сколько их можно купить на X рублей, а потом они все продаются. Если в найденной вами стратегии продавать и покупать акции не требуется, то выведите во второй строке "−1 −1". Если существует несколько вариантов оптимальной стратегии, то выведите любой из них.

входные данные
5 1000
2 3 1 4 3
1 2 1 2 3
выходные данные
3000
3 5
входные данные
5 1000
10 9 8 7 6
9 8 7 6 5
выходные данные
1000
-1 -1
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.08.2021, 10:46
Ответы с готовыми решениями:

Торговля акциями
Торговля акциями В настоящее время на бирже при торговле акциями активно применяются компьютерные системы, которые упрощают и...

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

Торговля акциями
Условие В настоящее время на бирже при торговле акциями активно применяются компьютерные системы, которые упрощают и автоматизируют...

5
 Аватар для avdivo
303 / 213 / 112
Регистрация: 03.12.2016
Сообщений: 409
09.08.2021, 16:38
Kirillon_YT,
Возможно, что продать можно и в день покупки, в условии это не запрещено.
Тогда ваш код не правильно считает:

3 100
2 3 1
1 2 3

показывает:

150
1 3

Вот мой код, проверьте его

Python
1
2
3
4
5
6
7
8
9
10
11
12
n,x = map(int, input().split())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
 
res = (x, -2, -2)
for i, v in enumerate(a):
    slice = b[i:]
    max_sale = max(slice)
    tmp = (x // v) * max_sale + (x % v)
    res = (tmp, i, i + slice.index(max_sale)) if tmp > res[0] else res
print(res[0])
print(res[1]+1, res[2]+1)
0
0 / 0 / 0
Регистрация: 06.01.2019
Сообщений: 17
09.08.2021, 17:53  [ТС]
Там в условии написано что должно соблюдаться неравенство d2>d1 где d1 день покупки d2 день продажи
0
 Аватар для avdivo
303 / 213 / 112
Регистрация: 03.12.2016
Сообщений: 409
09.08.2021, 18:09
Да, есть такое, пропустил. Что же у вас не работает?
0
0 / 0 / 0
Регистрация: 06.01.2019
Сообщений: 17
09.08.2021, 20:25  [ТС]
Как я понял ошибка где-то при проверке что меньше суммы, с помощью expect try

Добавлено через 29 секунд
А так там 96/100 баллов
0
 Аватар для avdivo
303 / 213 / 112
Регистрация: 03.12.2016
Сообщений: 409
10.08.2021, 02:11
Kirillon_YT,
У вас ошибка возникает когда минимальный элемент оказывается последним в первом списке.

Вот оптимизированный код. Выполняется в разы быстрее и ошибок я не нашел. Попробуйте.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
n,x = map(int, input().split())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
 
res = (x, -2, -2)
i = len(a)
while i > 1:
    i_old, i = i, a.index(min(a[:i-1]))
    _max = b.index(max(b[i+1:i_old]), i+1, i_old) if i+1 != i_old else i_old
    tmp = (x // a[i]) * b[_max] + (x % a[i])
    res = (tmp, i, _max) if tmp > res[0] else res
print(res[0])
print(res[1] + 1, res[2] + 1)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.08.2021, 02:11
Помогаю со студенческими работами здесь

Задача "Торговля акциями"
Её условие звучит так: В настоящее время на бирже при торговле акциями активно применяются компьютерные системы, которые упрощают и...

Ребята где здесь ошибка
В архиве находится текстовый файл и код на си не хочет открыть файл не могу понять где ошибка

Где у меня ошибка
Подскажите, где у меня ошибка??не пойму пишет, или нужна скобка или где какой то знак? ЕСЛИ(x&lt;2,5; 29*(C30*C30*C30*C30)-корень...

Где у меня ошибка?
Скажите пожалуйста где у меня ошибка? Мне нужно, чтобы правильно выдавало сколько было снято из банкомата. А мне выдает, только последнее...

Где у меня ошибка?
помогите, в чем ошибка? .... 1 : print &quot;cколько всего материков?&quot; input a$ if a$=&quot;6&quot; then print &quot;правильно&quot; else print...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru