powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Пятничный BS и лебеди
32 сообщений из 32, показаны все 2 страниц
Пятничный BS и лебеди
    #39294581
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однажды у BS была ужасная бессонница. Потому, он решил прогуляться по западной части ночного Копенгагена. На западе столицы Дании расположен комплекс из нескольких озер, к которым и пришел наш странник. BS выбрал самую удобную скамейку и сел на неё. Скамейка располагалась таким образом, что ему прекрасно были видны два озера и плавающие в каждом из них лебеди. Неожиданно Bjarne достал свой фотоаппарат и сделал фотографию двух озер. Готовился выход нового стандарта С++ 2025, потому бессонница автора продолжалась. И ещё много дней он ходил по ночам на озера, садился на самую удобную скамейку, смотрел на звезды, людей, собак и на другие вещи, но самое главное, каждый день он фотографировал два озера и лебедей. Бессонница прошла и его ночные походы прекратились. Тогда, BS решил изучить сделанные им снимки. По счастливой случайности, оказалось так, что на всех фотографиях комбинация мощностей множеств лебедей в озерах принимала всевозможные значения, при этом отсутствовали симметричные ситуации, это значит, что например двух таких дней с комбинациями (5,200) и (200,5) не было. При этом максимальное значение мощности каждого множества не превышало . Автор решил распечатать все свои фотографии. 1 лебедь занимает 1 пиксель на фотографии, других затрат - нет. Принтер заправлен таким образом, что может распечатать не более чем пикселей.
1. Хватит ли этого, чтобы распечатать все фотографии?
2. Если картриджа не хватит, то как минимум насколько должен быть он заправлен для того, чтобы все фотографии были успешно напечатаны?
3. Подготовьте код программы на С/С++, входным параметром является n, на выходе общее количество лебедей на всех фотографиях.
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39294626
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для лучшего понимания стоит уточнить: "на всех фотографиях комбинация мощностей множеств лебедей в озерах принимала всевозможные уникальные значения"
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39294637
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХУ для лучшего понимания надо ТЗ перевести с русского на понятный.
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39294701
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим n=2, в таком случае у него были следующие фотографии:
0 0
0 1
0 2
1 1
1 2
2 2

12 лебедей на всех фотографиях
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39294769
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury,
Сочиняя задачи, не используй реальных людей в условиях. Глупо смотрится.
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39294771
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то... слишком много текста в задаче.
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39294774
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryДопустим n=2, в таком случае у него были следующие фотографии:

12 лебедей на всех фотографиях
Если я правильно понял, то задача сводится к посчитать количество ноликов во всех возможных значениях n-разрядного числа в (n+1)-ричной системе счисления. т.е.
Код: plaintext
1.
n*(n+1)^n - f(n)


если n = 2, т.е. 2 разряда троичной системы счисления, то f(n) = 6 ноликов (00, 01, 02, 10, 20)
итого 2*3^2 - 6 = 12

Выводить формулу f(n) лень, но уже очевидно что возрастает она намного медленнее чем n*(n+1)^n, поэтому достаточно обсчитать до n < 10, когда итого станет больше 1.5*n 2 +501, а все остальное будет "дофига"
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39294810
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TИМХУ для лучшего понимания надо ТЗ перевести с русского на понятный.
присоединяюсь.
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39294837
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А разве

00
11
22

не являются симметричными комбинациями?
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39294838
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlSashaMercury,
Сочиняя задачи, не используй реальных людей в условиях. Глупо смотрится.

Если бы я боялся показаться глупым, я бы тут вообще не одного сообщения не отправил. А BS здесь не просто так, ибо решение задачи имеет некоторые детали связанные с языком С++
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39294839
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА разве

00
11
22

не являются симметричными комбинациями?

Нет, симметричные комбинации вида (x,y) и (y,x). Одна комбинация (x,x) не может быть симметричной
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39294840
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лебеди, хоть, не черные? )))
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39294841
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyЛебеди, хоть, не черные? )))

Изначально хотел "усложнить", и написать что в одном озере черные а в другом белые, но потому подумал, что кто-нибудь придерется и скажет, что ночью черных не будет видно))

Кроме того, предполагал сделать три озера, но потому подумал, что решать её никто не станет)))
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39294842
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока Дмитрий ближе всех, однако решения в любом случае нет.


MasterZivDima TИМХУ для лучшего понимания надо ТЗ перевести с русского на понятный.
присоединяюсь.

Уже перевел, контрпример очень хороший
SSДопустим n=2, в таком случае у него были следующие фотографии:
0 0
0 1
0 2
1 1
1 2
2 2

12 лебедей на всех фотографиях
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39295003
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury, ты мне мультик напомнил "Отгадайте в каком ухе жжужит?" У тебя жжужит - ты и гадай. Телепатов тут нет, без правильно написанного ТЗ никто тебе ответ не даст.
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39295048
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо как в задачнике Перельмана. Там каждая задача - кристально понятна. И написана
прекрасным литературным языком. Кратким. Как у Хэмингуэя.
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39295052
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryДопустим n=2, в таком случае у него были следующие фотографии:
0 0
0 1
0 2
1 1
1 2
2 2

12 лебедей на всех фотографиях

С трудом представляю, что непонятного в этом примере?
Аналогично для 3:
0 0
0 1
0 2
0 3
1 1
1 2
1 3
2 2
2 3
3 3
30 лебедей на всех фотографиях.
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39295053
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SSкомбинация мощностей множеств лебедей в озерах принимала всевозможные значения, при этом отсутствовали симметричные ситуации, это значит, что например двух таких дней с комбинациями (5,200) и (200,5) не было.

Ниже я добавил, что каждая фотография уникальна, т.е. не было двух дней (x,y)
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39295080
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понял, то разряда всего два, система счисления (n+1)ричная и надо посчитать сумму значений всех разрядов где a 1 <= a 0
Тогда надо сумму всех чисел 0 ... n сложить n+2 раз, т.е. формула
Код: plaintext
1.
res = (n * (n+1) / 2) * (n+2)
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39295083
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T Тогда надо сумму всех чисел 0 ... n сложить n+2 раз, т.е. формула

Почему n+2 раза ?
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39295086
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryDima T Тогда надо сумму всех чисел 0 ... n сложить n+2 раз, т.е. формула

Почему n+2 раза ?
Потому что парные есть (11, 22 и т.д.) Если считать все комбинации, то в каждом разряде, каждое значение повторяется n+1 раз, т.е. все комбинации 2(n+1), т.к. нам надо только половину, то получаем (n+1), но так мы учли только половину из парных (1 из 11, 2 из 22 и т.д.) поэтому еще +1, т.e. итого (n+2)
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39295087
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSashaMercuryпропущено...


Почему n+2 раза ?
Потому что парные есть (11, 22 и т.д.) Если считать все комбинации, то в каждом разряде, каждое значение повторяется n+1 раз, т.е. все комбинации 2(n+1), т.к. нам надо только половину, то получаем (n+1), но так мы учли только половину из парных (1 из 11, 2 из 22 и т.д.) поэтому еще +1, т.e. итого (n+2)

Логика понятна. Остался такой вопрос: почему каждое значение должно встретиться ровно n+1 раз?
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39295089
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryDima Tпропущено...

Потому что парные есть (11, 22 и т.д.) Если считать все комбинации, то в каждом разряде, каждое значение повторяется n+1 раз, т.е. все комбинации 2(n+1), т.к. нам надо только половину, то получаем (n+1), но так мы учли только половину из парных (1 из 11, 2 из 22 и т.д.) поэтому еще +1, т.e. итого (n+2)

Логика понятна. Остался такой вопрос: почему каждое значение должно встретиться ровно n+1 раз?
Потому что (n+1)ричная система счисления. Сколько раз в десятичной встречается каждая цифра в диапазоне 0...99 ?
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39295093
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Довольно необычная точка зрения(и способ решения) на эту задачу, даже не думал в эту сторону когда решал её(тремя способами). Функция найдена верно:)

Было бы интересно увидеть другие решения, и, код на С/С++ :)
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39298752
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. Выкладываю решение:
1. - достаточно было реализовать двойной цикл
2. Однако, небольшой анализ данного цикла и использование формулы суммы арифметической прогрессии приводит нас к следующему тождеству: . Собственно таким образом я эту задачу и решил первым делом.
3. Кроме того, данную формулу можно получить как , при к=2. Если кому-то интересно, попробуйте самостоятельно объяснить то, как она получается.

Дмитрий предложил 4 вариант рассуждений, о котором я даже не думал.

Что мне хотелось сказать относительно С++ и опять в контексте типизации. Только через несколько минут понял, почему мой код для аналогичной задачи не работает. При этом условная n была инициализирована и объявлена намного ранее чем вычисление результата.
Код: plaintext
1.
2.
3.
	int n = 7000;
	long long res = n*n*n + 3 * n*n + 2 * n;
	std::cout << res;



Этот пример вероятно является классической ошибкой, которой не было бы, если бы С++ был действительно сильно типизированным языком. Возможно этот язык силно типизирован, но только в сравнении с какими-то другими конкретными языками
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39298804
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КМК тут тема С++ не раскрыта. Есть математическая задачка.
И есть некий логический вывод ее формулы.

Вот если-б она попала в класс задач наподобие Eight queens puzzle - то да. Язык был-бы интересен
как способ выражения или способ доказательства существования решения.
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39298865
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury, 7000 в кубе уходит далеко за разрядность int (int32_t) Я знаю что ты математик, но на землю иногда спускайся, учитывай формальные ограничения. Ты наступил на обычные грабли переполнения.
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39298876
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, он понимал факт переполнения. Заложил в результат разрядность long long.
Но КМК не в том месте.
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39298879
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonDima T, он понимал факт переполнения. Заложил в результат разрядность long long.
Но КМК не в том месте.
Итого: значит не понимает
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39298907
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSashaMercury, 7000 в кубе уходит далеко за разрядность int (int32_t) Я знаю что ты математик, но на землю иногда спускайся, учитывай формальные ограничения. Ты наступил на обычные грабли переполнения.

Уходит, и что? С точки зрения логики всё было корректно, Результат имел тип long long. Аргумент имел тип int. С точки зрения программирования возникают ошибки. Язык позиционирующий себя как язык с сильной типизацией, должен был оградить любого программиста от такой ошибки
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39298916
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryDima TSashaMercury, 7000 в кубе уходит далеко за разрядность int (int32_t) Я знаю что ты математик, но на землю иногда спускайся, учитывай формальные ограничения. Ты наступил на обычные грабли переполнения.

Уходит, и что? С точки зрения логики всё было корректно, Результат имел тип long long. Аргумент имел тип int. С точки зрения программирования возникают ошибки. Язык позиционирующий себя как язык с сильной типизацией, должен был оградить любого программиста от такой ошибки
Саш. Ты не прав.

Типизация это одно. А проблема переполнения в общем случае не имеет эффективного workaround.
...
Рейтинг: 0 / 0
Пятничный BS и лебеди
    #39298961
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryDima TSashaMercury, 7000 в кубе уходит далеко за разрядность int (int32_t) Я знаю что ты математик, но на землю иногда спускайся, учитывай формальные ограничения. Ты наступил на обычные грабли переполнения.

Уходит, и что? С точки зрения логики всё было корректно, Результат имел тип long long. Аргумент имел тип int. С точки зрения программирования возникают ошибки. Язык позиционирующий себя как язык с сильной типизацией, должен был оградить любого программиста от такой ошибки
Логика просто неправильная. Не смотри на выражение как на одну операцию, тут много операций и только последняя сохранение результата в long long.
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Пятничный BS и лебеди
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]