Страниц: 1 [2] 3
  Печать  
Автор Тема: Злобная задача для хитрых программистов  (Прочитано 17204 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Smith
Из мудрейших мудрейший
**
Offline Offline

Сообщений: 2950

СПАСИБО
-вы поблагодарили: 286
-вас поблагодарили: 305


PeAcE


Просмотр профиля
Ответ #15 : Июль 02, 2012, 16:06:33 �

может, я сложно выражаюсь? вот мой пример:
из суммы чисел (либо их подмножества) 1 2 3 4 10 20 30 40 100 200 300 400 (всего - 12) можно набрать любое число от 0 до 1110. если нужно еще 0 - тогда получается 13.

а теперь вы с 11 числами, пожалуйста
Записан
Um_nik
Гений-Говорун
*
Offline Offline

Сообщений: 1161

СПАСИБО
-вы поблагодарили: 277
-вас поблагодарили: 341


Любовь - дело техники

623784586
Просмотр профиля Email
Ответ #16 : Июль 02, 2012, 16:08:58 �

1 1 2 4 8 16 32 64 128 256 512

Эти пользователи сказали вам СПАСИБО :

Smith

За это сообщение 1 пользователь сказал спасибо!
Записан

"за полчаса до смерти..."
Показать скрытый текст
//текст доступен после регистрации//
Smith
Из мудрейших мудрейший
**
Offline Offline

Сообщений: 2950

СПАСИБО
-вы поблагодарили: 286
-вас поблагодарили: 305


PeAcE


Просмотр профиля
Ответ #17 : Июль 02, 2012, 16:17:25 �

1 1 2 4 8 16 32 64 128 256 512
да, спасибо. теперь понял что ты имел ввиду степени двойки, это зачетно.

ой, а можно еще одну серию? последнюю, больше не буду приставать  Embarrassed
Записан
Um_nik
Гений-Говорун
*
Offline Offline

Сообщений: 1161

СПАСИБО
-вы поблагодарили: 277
-вас поблагодарили: 341


Любовь - дело техники

623784586
Просмотр профиля Email
Ответ #18 : Июль 02, 2012, 16:21:44 �

меняешь единицу на любое другое число до 1024.

Да можешь сам придумывать)

Первое число - 1.
Любое последующее не больше суммы всех предыдущих и единицы.
Главное, чтобы все вместе давали не меньше 1024.

Любой такой набор удовлетворяет условиям.

Эти пользователи сказали вам СПАСИБО :

Smith

За это сообщение 1 пользователь сказал спасибо!
Записан

"за полчаса до смерти..."
Показать скрытый текст
//текст доступен после регистрации//
Smith
Из мудрейших мудрейший
**
Offline Offline

Сообщений: 2950

СПАСИБО
-вы поблагодарили: 286
-вас поблагодарили: 305


PeAcE


Просмотр профиля
Ответ #19 : Июль 02, 2012, 16:23:42 �

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

я не сомневался, что ответ есть... меня цифра 250 млрд. как-то усомнила...  Sad
Записан
Smith
Из мудрейших мудрейший
**
Offline Offline

Сообщений: 2950

СПАСИБО
-вы поблагодарили: 286
-вас поблагодарили: 305


PeAcE


Просмотр профиля
Ответ #20 : Июль 02, 2012, 16:30:23 �

Первое число - 1.
Любое последующее не больше суммы всех предыдущих и единицы.
Главное, чтобы все вместе давали не меньше 1024.

Любой такой набор удовлетворяет условиям.

кстати, имхо, это уже не просто перебор, здесь бы выводящую составляющую дописать, тогда и сравнивать ненужно
Записан
Um_nik
Гений-Говорун
*
Offline Offline

Сообщений: 1161

СПАСИБО
-вы поблагодарили: 277
-вас поблагодарили: 341


Любовь - дело техники

623784586
Просмотр профиля Email
Ответ #21 : Июль 02, 2012, 16:34:18 �

нет, это почти просто перебор.
Ну т.е. он будет долго работать (2^55 циклов (меньше, но все равно)), да и нет никакой задумки хорошей.
Записан

"за полчаса до смерти..."
Показать скрытый текст
//текст доступен после регистрации//
Smith
Из мудрейших мудрейший
**
Offline Offline

Сообщений: 2950

СПАСИБО
-вы поблагодарили: 286
-вас поблагодарили: 305


PeAcE


Просмотр профиля
Ответ #22 : Июль 02, 2012, 16:39:08 �

интересно, а сколько времени требуется просто на вывод 250 млрд. чисел пусть с минимальным количеством операций по расчету? это же будет, ну, как минимум даже без учета рассчета, правильно?!
Записан
Um_nik
Гений-Говорун
*
Offline Offline

Сообщений: 1161

СПАСИБО
-вы поблагодарили: 277
-вас поблагодарили: 341


Любовь - дело техники

623784586
Просмотр профиля Email
Ответ #23 : Июль 02, 2012, 16:43:13 �

Зависит от языка, насколько я знаю.
Мне говорили, что на паскале 10^9 операций в секунду. т.е. 4 минуты)
Записан

"за полчаса до смерти..."
Показать скрытый текст
//текст доступен после регистрации//
Smith
Из мудрейших мудрейший
**
Offline Offline

Сообщений: 2950

СПАСИБО
-вы поблагодарили: 286
-вас поблагодарили: 305


PeAcE


Просмотр профиля
Ответ #24 : Июль 02, 2012, 16:50:44 �

Зависит от языка, насколько я знаю.
Мне говорили, что на паскале 10^9 операций в секунду. т.е. 4 минуты)

значит, у Сириона другой язык.
либо он спутал часы с минутами  Roll Eyes
Записан
Um_nik
Гений-Говорун
*
Offline Offline

Сообщений: 1161

СПАСИБО
-вы поблагодарили: 277
-вас поблагодарили: 341


Любовь - дело техники

623784586
Просмотр профиля Email
Ответ #25 : Июль 02, 2012, 16:54:04 �

Ну, я почти уверен, что Сирион пишет на чем-то покруче паскаля)
Записан

"за полчаса до смерти..."
Показать скрытый текст
//текст доступен после регистрации//
Sirion
Гений-Говорун
*****
Offline Offline

Сообщений: 1095

СПАСИБО
-вы поблагодарили: 137
-вас поблагодарили: 278



Просмотр профиля Email
Ответ #26 : Июль 02, 2012, 17:30:36 �

Сирион пишет на всём. В данном случае - на делфи) А при чём здесь вывод? Нужно посчитать количество, а не выводить все возможные комбинации (которые ещё не на всякий жёсткий диск влезут).
Записан

sirion=irion+srion+rion+siion+iion+sion+ion+siron+iron+sron+ron+sion+ion+son+on+sirin+
+irin+srin+rin+siin+iin+sin+in+sirn+irn+srn+rn+sin+in+sn+n+sirio+irio+srio+rio+siio+
+iio+sio+io+siro+iro+sro+ro+sio+io+so+o+siri+iri+sri+ri+sii+ii+si+i+sir+ir+sr+r+si+i+s
zhekas
Гений-Говорун
*
Offline Offline

Сообщений: 1035

СПАСИБО
-вы поблагодарили: 34
-вас поблагодарили: 486



Просмотр профиля Email
Ответ #27 : Июль 03, 2012, 22:08:49 �


Показать скрытый текст

Эти пользователи сказали вам СПАСИБО :

Sirion

За это сообщение 1 пользователь сказал спасибо!
Записан
Sirion
Гений-Говорун
*****
Offline Offline

Сообщений: 1095

СПАСИБО
-вы поблагодарили: 137
-вас поблагодарили: 278



Просмотр профиля Email
Ответ #28 : Июль 03, 2012, 22:37:36 �

Истинная истина. Какое было решение?
Записан

sirion=irion+srion+rion+siion+iion+sion+ion+siron+iron+sron+ron+sion+ion+son+on+sirin+
+irin+srin+rin+siin+iin+sin+in+sirn+irn+srn+rn+sin+in+sn+n+sirio+irio+srio+rio+siio+
+iio+sio+io+siro+iro+sro+ro+sio+io+so+o+siri+iri+sri+ri+sii+ii+si+i+sir+ir+sr+r+si+i+s
zhekas
Гений-Говорун
*
Offline Offline

Сообщений: 1035

СПАСИБО
-вы поблагодарили: 34
-вас поблагодарили: 486



Просмотр профиля Email
Ответ #29 : Июль 03, 2012, 22:52:47 �

Сначала был перебор. С помощью рекурсии Podgon(n,m,k) вычислялась количество для комбинаций из n - членов, которые составлют суммы до m включительно (но m+1 уже не включают) и каждый элемент не превосходит k. В процедуре суммировались Podgon(n-1,m-i,i).

Но выполнялось это долго. Тогда я подумал что функции с одним и тем же параметрами должны повторятся при вычислении. И для n=8 записал таблицу значений a8[m][k] = Podgon(8,m,k). Уже по этой таблице нашёл a9[m][k], затем a10[m][k] и a11[m][k]

Эти пользователи сказали вам СПАСИБО :

Sirion

За это сообщение 1 пользователь сказал спасибо!
Записан
Страниц: 1 [2] 3
  Печать  
 
Перейти в: