Задача коровы python решение

Стадо коров

У одного фермера есть интересное стадо коров, годное разве что экскурсантам показывать. Всего коров 100. Они пронумерованы, и каждая дает молоко в соответствии со своим номером. Т.е., первая корова дает 1 л молока, 2-я — 2 л, а 100-я — 100 л.

Также у этого фермера есть 10 сыновей. Он хотел бы распределить между ними коров таким образом, чтобы надои в стаде у всех сыновей были одинаковыми.

Как нам известно, i-я корова дает i литров молока. Для начала давайте посчитаем, каков общий надой в стаде. Это можно определить, посчитав сумму арифметической прогрессии: sum = n*(n+1)/2 .

Общее количество молока = 100(100+1)/2=5050 литров.

Теперь мы можем подсчитать, сколько молока должны давать коровы у каждого сына:

Теперь основная задача — распределить коров таким образом, чтобы каждая группа в целом давала 505 л молока.

Уменьшим сложность задачи и рассмотрим следующий пример.

Скажем, у нас есть 10 чисел (от 1 до 10), которые нужно распределить между 5 людьми так, чтобы у каждого сумма чисел была одинаковой. Общая сумма всех чисел — 55. Т.е., сумма чисел у каждого человека должна быть равна 11.

Распределение будет таким:

Возвращаемся к нашим коровам. У нас есть 100 номеров, которые мы должны разбить на 10 групп, чтобы каждая группа в сумме давала 505.

  • Первый сын —> 1, 2, 3, 4, 5, 96, 97, 98, 99, 100
  • Второй сын —> 6, 7, 8, 9, 10, 91, 92, 93, 94, 95
  • Третий сын —> 11, 12, 13, 14, 15, 86, 87, 88, 89, 90
  • Четвертый сын —> 16, 17, 18, 19, 20, 81, 82, 83, 84, 85
  • Пятый сын —> 21, 22, 23, 24, 25, 76, 77, 78, 79, 80
  • Шестой сын —> 26, 27, 28, 29, 30, 71, 72, 73, 74, 75
  • Седьмой сын —> 31, 32, 33, 34, 35, 66, 67, 68, 69, 70
  • Восьмой сын —> 36, 37, 38, 39, 40, 61, 62, 63, 64, 65
  • Девятый сын —> 41, 42, 43, 44, 45, 56, 57, 58, 59, 60
  • Десятый сын —> 46, 47, 48, 49, 50, 51, 52, 53, 54, 55

Источник

Задача: сколько на лугу пасется коров?

Вариант решения используя только условную конструкцию if и арифметические\логические операции.

n = int(input()) if n % 10 == 1 and n != 11: print(n, 'korova') elif 2  

Можно использовать gettext модуль, чтобы выбрать правильную форму множественного числа для текущего языка:

#!/usr/bin/env python3 from gettext import translation t = translation('messages', 'locale', fallback=True) for n in [0, 1, 2, 5, 10, 11, 21, 22, 111]: print(t.ngettext("there is %d cow", "there are %d cows", n) % n) 

Если запустить без перевода, то вывод:

$ python cows.py there are 0 cows there is 1 cow there are 2 cows there are 5 cows there are 10 cows there are 11 cows there are 21 cows there are 22 cows there are 111 cows 

Чтобы получить нужный вывод, необходимо добавить перевод, к примеру, с помощью babel модуля ( pip install babel ):

$ pybabel extract -o messages.pot . extracting messages from cows.py writing PO template file to messages.pot $ pybabel init -i messages.pot -d locale -l ru creating catalog locale/ru/LC_MESSAGES/messages.po based on messages.pot 

После добавления перевода в message.po :

msgstr[0] "На лугу пасётся %d корова" msgstr[1] "На лугу пасётся %d коровы" msgstr[2] "На лугу пасётся %d коров" 

Чтобы сделать перевод доступным, необходимо собрать messages.mo :

$ pybabel compile -d locale compiling catalog locale/ru/LC_MESSAGES/messages.po to locale/ru/LC_MESSAGES/messages.mo 

Можно запустить с русским языком:

$ LANGUAGE=ru python cows.py На лугу пасётся 0 коров На лугу пасётся 1 корова На лугу пасётся 2 коровы На лугу пасётся 5 коров На лугу пасётся 10 коров На лугу пасётся 11 коров На лугу пасётся 21 корова На лугу пасётся 22 коровы На лугу пасётся 111 коров 

Это работает, потому что в ru/LC_MESSAGES/messages.po автоматически добавлено:

"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10=20) ? 1 : 2)\n" 

При изменении текста, который нужно перевести в cows.py , следует обновить каталоги:

$ pybabel update -i messages.pot -d locale updating catalog locale/ru/LC_MESSAGES/messages.po based on messages.pot 

И заново переводы собрать:

$ pybabel compile -d locale compiling catalog locale/ru/LC_MESSAGES/messages.po to locale/ru/LC_MESSAGES/messages.mo 

Чтобы добавить новый язык, к примеру французский:

$ pybabel init -i messages.pot -d locale -l fr creating catalog locale/fr/LC_MESSAGES/messages.po based on messages.pot 

Добавить сам перевод для единственного и множественного числа:

msgstr[0] "Sur la prairie de pâture %d vache" msgstr[1] "Sur la prairie de pâture %d vaches" 

(для примера, фразы из Яндекс.Переводчика взяты)

$ pybabel compile -d locale compiling catalog locale/fr/LC_MESSAGES/messages.po to locale/fr/LC_MESSAGES/messages.mo compiling catalog locale/ru/LC_MESSAGES/messages.po to locale/ru/LC_MESSAGES/messages.mo 

После этого можно запусить на французском:

$ LANGUAGE=fr python cows.py Sur la prairie de pâture 0 vache Sur la prairie de pâture 1 vache Sur la prairie de pâture 2 vaches Sur la prairie de pâture 5 vaches Sur la prairie de pâture 10 vaches Sur la prairie de pâture 11 vaches Sur la prairie de pâture 21 vaches Sur la prairie de pâture 22 vaches Sur la prairie de pâture 111 vaches 
n = int(input()) base = 'korov' suffix = '' if (n % 10 == 1) and n != 11: suffix = u'a' elif n % 10 in ([2, 3, 4]) and n not in range(10, 21): suffix = u'y' print(str(n), "<><>".format(base, suffix)) 

Для любителей "однострочников", вариант без ветвлений if :

print 'korov' + .setdefault(1, '') #44 #korovy 

Источник

ПОМОГИТЕ, ПОЖАЛУЙСТА, ПИТОН.

задача 9. Коровы
Для коров есть 10 стойл. В каждом стойле разные условия для животных, поэтому и молока они дают по-разному. В первом стойле производят 2 литра в день, во втором 4, в третьем - 6, потом 8, 10, 12, 14, 16, 18, 20. но коровы стоят не во всех стойлах. Свободные и занятые обозначаются строкой из букв a и b, где a - свободное стойло, b - занятое.
Пользователь вводит строку из 10 символов a и b. Необходимо определить, сколько в итоге будет произведено молока за день..

# Переменная для ввода а-свободно или б занято.
# вводим значение в таком виде: ababababa(на английском языке)
free_busy = input()
# Счетчик молока.
count_milk = 0

# Перебираю стойла от 1 до 10.
for i in range(1, 11):
# Перебираю строку со значениями 'a,b'
for fb in free_busy:
# Если символ = 'b'
if fb == 'b':
# Выходит стойло занято, и там есть молоко.
count_milk += 2

print('Всего молока за день:', count_milk)

Переделал, вот теперь правильно: https://pastebin.com/6SiMKFj0

CK@304HuK, Добрый день, как это можно без квадратных скобок написать? не догоняю, по курсу еще не проходили [ ] скобки, заранее спасибо.

cows = input('Введите размещение коров: ')
print()
milk = 0
count =0

for symbol in cows:
count += 1
if symbol == 'a':
milk = milk + count * 2
else:
milk = milk + count * 0
print('Всего литров молока за день:', milk)

# Не благодарите говнокодеры
cow = input('Введите a/b: ')
Sum,index = 0,1
for i in cow:
if i == 'b':
Sum += 2 * index
index += 1
print('Количество молока:', Sum)

for i in range(10):
count = input('Стойло свободно?(a-да/b-нет): ')
if count == 'a':
a += 2 * (i + 1)
if count == 'b':
a += b * 0
print()
print('Произведено молока за день: ', a)

Источник

Коровы в стойла

На прямой расположены стойла, в которые необходимо расставить коров так, чтобы минимальное расcтояние между коровами было как можно больше.

Выведите одно число — наибольшее возможное допустимое расстояние.

Примеры
Ввод
Вывод
6 3
2 5 7 11 15 20
9

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
n, k = map(int, input().split()) coords = list(map(int, input().split())) def check(x): cows = 1 lastcow = coords[0] for i in coords: if i - lastcow >= x: cows += 1 lastcow = i return cows >= k def solve(): left = 0 right = coords[-1] - coords[0] + 1 m = (left + right) // 2 if check(m): left = m else: right = m return left print(solve())

Коровы в стойла
Коровы в стойла На прямой расположены стойла, в которые необходимо расставить коров так, чтобы.

Коровы в стойла
На прямой расположены стойла, в которые необходимо расставить коров так, чтобы минимальное.

Коровы — в стойла
На прямой расположены стойла, в которые необходимо расставить коров так, чтобы минимальное.

Коровы
По данному числу n закончите фразу «На лугу пасется. » одним из возможных продолжений: «n коров».

Быки и коровы
Доброго времени суток. Не могу реализовать человеческий поиск коров в Delphi. Имеется массив цифр.

Источник

Стадо коров

У одного фермера есть интересное стадо коров, годное разве что экскурсантам показывать. Всего коров 100. Они пронумерованы, и каждая дает молоко в соответствии со своим номером. Т.е., первая корова дает 1 л молока, 2-я — 2 л, а 100-я — 100 л.

Также у этого фермера есть 10 сыновей. Он хотел бы распределить между ними коров таким образом, чтобы надои в стаде у всех сыновей были одинаковыми.

Как нам известно, i-я корова дает i литров молока. Для начала давайте посчитаем, каков общий надой в стаде. Это можно определить, посчитав сумму арифметической прогрессии: sum = n*(n+1)/2 .

Общее количество молока = 100(100+1)/2=5050 литров.

Теперь мы можем подсчитать, сколько молока должны давать коровы у каждого сына:

Теперь основная задача — распределить коров таким образом, чтобы каждая группа в целом давала 505 л молока.

Уменьшим сложность задачи и рассмотрим следующий пример.

Скажем, у нас есть 10 чисел (от 1 до 10), которые нужно распределить между 5 людьми так, чтобы у каждого сумма чисел была одинаковой. Общая сумма всех чисел — 55. Т.е., сумма чисел у каждого человека должна быть равна 11.

Распределение будет таким:

Возвращаемся к нашим коровам. У нас есть 100 номеров, которые мы должны разбить на 10 групп, чтобы каждая группа в сумме давала 505.

  • Первый сын —> 1, 2, 3, 4, 5, 96, 97, 98, 99, 100
  • Второй сын —> 6, 7, 8, 9, 10, 91, 92, 93, 94, 95
  • Третий сын —> 11, 12, 13, 14, 15, 86, 87, 88, 89, 90
  • Четвертый сын —> 16, 17, 18, 19, 20, 81, 82, 83, 84, 85
  • Пятый сын —> 21, 22, 23, 24, 25, 76, 77, 78, 79, 80
  • Шестой сын —> 26, 27, 28, 29, 30, 71, 72, 73, 74, 75
  • Седьмой сын —> 31, 32, 33, 34, 35, 66, 67, 68, 69, 70
  • Восьмой сын —> 36, 37, 38, 39, 40, 61, 62, 63, 64, 65
  • Девятый сын —> 41, 42, 43, 44, 45, 56, 57, 58, 59, 60
  • Десятый сын —> 46, 47, 48, 49, 50, 51, 52, 53, 54, 55

Источник

Читайте также:  Javascript this attr src
Оцените статью