Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
10 / 1 / 0
Регистрация: 14.12.2021
Сообщений: 77

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

19.10.2023, 14:19. Показов 623. Ответов 2

Студворк — интернет-сервис помощи студентам
Пример:
Есть список: main_list = [1, 2, 3, 4], есть число 6. Разбиваем 6 на четыре части (len(main_list)), да так, чтобы доли не превышали значения главного списка. Получаем new_list = [1, 1.67, 1.67, 1.67] в сумме 6.

Ещё пример:
Есть список: main_list = [1, 2, 3, 4], есть число 8. Разбиваем 8 на четыре части (len(main_list)), да так, чтобы доли не превышали значения главного списка. Получаем new_list = [1, 2, 2.5, 2.5] в сумме 8.

Как это реализовать в коде?
Примечание: На рисунке доли не превышающие значения главного списка, - обоначены в кружках.
Миниатюры
Разбить число на четыре части так, чтобы доли не превышали значения главного списка  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.10.2023, 14:19
Ответы с готовыми решениями:

Разбить элементы строк двумерного массива на три части так, чтобы разница между частями была минимальной
Задача: есть большая таблица с 24 строками и 7 столбцами. Строки нужно поделить на три части с минимальной разницей между ними и вывести в...

Разбить элементы строк двумерного массива на три части так, чтобы разница между частями была минимальной
Задача: есть большая таблица с 24 строками и 7 столбцами. Строки нужно поделить на три части с минимальной разницей между ними и вывести в...

Разбить число N на K элементов (не меньше, не больше) и записать так, чтобы множество не повторялось
Здравствуйте, задача вот в чем: требуется разбить число N на K элементов (не меньше, не больше) и записать так, чтобы множество не...

2
0 / 0 / 0
Регистрация: 07.09.2022
Сообщений: 6
19.10.2023, 15:15
Держите:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
main_list = [1, 2, 3, 4]
number = float(input())
 
if sum(main_list) < number:
    print("Разбить невозможно!")
else:
    d = 0
    arr = [number/len(main_list) for _ in main_list]
    for i in zip(arr, main_list):
        arr_, m_l = i
 
        if arr_ + d <= m_l:
            print(arr_ + d, end="  ")
            d = 0
        else:
            print(m_l, end="  ")
            d = arr_ + d - m_l
>>4
1.0 1.0 1.0 1.0
[Finished in 48ms]
>>6
1 2.0 1.5 1.5
[Finished in 34ms]
>>7.5
1 2 2.625 1.875
[Finished in 58ms]
>>11
Разбить невозможно!
[Finished in 59ms]

Добавлено через 3 минуты
*Если нужно, вместо print - new_list.append()
0
10 / 1 / 0
Регистрация: 14.12.2021
Сообщений: 77
19.10.2023, 15:48  [ТС]
Код очень хорош!

Добавлено через 18 минут
Vadim131, Вадим тут один нюанс, - недополненные значения должны быть равнораспределёнными. К примеру разбивая 7.5, в твоём случае получается (1, 2, 2.625, 1.875). А надо чтобы получилось [1, 2, 2.25, 2.25].
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.10.2023, 15:48
Помогаю со студенческими работами здесь

Разбить список на все возможные пары, так чтобы в парах не стояли значения из одной группы...
Помогите пожалуйста Написать код на python на вход дается список где 0,1,2 3,4,5 6,7,8 9,10,11 - это отдельные группы Нужно...

Заданный список произвольного уровня вложенности разбить на четыре списка
Нужно написать на muLisp программу: Заданный список произвольного уровня вложенности разбить на четыре списка: в первом – гласные, во...

Перестроить список так, чтобы значения увеличивались от головы списка к его концу
1.В файле хранятся данные в виде записей формата R. R УЗЕЛ УСТ-ВА Устройство Номер узла Кол-во узлов Вес - М ...

Объединять два списка так, чтобы в объединенном списке значения были уникальны
Всем привет!) Помогите решить задачу (SWI Prolog.), необходимо объединять два списка.Что бы в объединенном списке значения были уникальны....

Из целочисленного списка переписать все число во второй список так, чтобы сначала
Из целочисленного списка переписать все число во второй список так, чтобы сначала шли четные элементы, затем 0, затем нечетные элементы.


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru