|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
07.09.2008, 18:53 | #1 |
Новичок
Джуниор
Регистрация: 07.09.2008
Сообщений: 2
|
помогите с массивами!!!
здравствуйте помогите пожалуйста решить задачу
Задано 121 натуральное число - 1,2,3, . . ., 121. Составить программу, которая располагает эти числа в 11 групп так, что одновременно будут выполняться следующие условия: 1) каждая группа содержит точно 11 чисел; 2) каждое число принадлежит только одной группе; 3) сумма чисел в каждой отдельной группе одинакова для всех групп. |
07.09.2008, 23:54 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Прежде всего - не уверен, что решение вообще существует ;-) Хотя возможно, что и существует...
исходя из заданных условия (сумма всех чисел от 1 до 121 = 7381. Делим на 11 (т.к. 11 групп) получается, что сумма в каждой группе должна быть ровно 671. и, судя по тому что все числа различны и все без исключения должны войти в группы, то решение (если оно есть) - единственное! Заводим массив на 121 элемент (индекс массива - это число), а значение массива = номеру группы, в которую данное число входит. Дальше - перебором находим 11 элементов массива, сумма которых строго равна 671 (вот в этом переборе и заключена основная сложность задачи!) всем найденным элементам проставляем номер группы. Наращиваем номер группы на единицу и перебираем оставшиеся элементы массива (которые ещё не входят ни в одну группу). |
08.09.2008, 01:15 | #3 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Почесал голову и попробовал провести мат анализ.
1) Предположим что чисел не 121, а 11, тогда получим такое 01 02 03 04 05 06 07 08 09 10 11 2) Теперь добавим диапазон 12-33, получим 01 02 03 04 05 06 07 08 09 10 11 22 21 20 19 18 17 16 15 14 13 12 23 24 25 26 27 28 29 30 31 32 33 Вторые и третьи элементы каждого из столбцов дают в сумме одинаковое число, но первый элемент каждого столбца портит дело. Единственная возможная операция (имеющая цель изменить сумму чисел в столбцах) - обмен числами между разными столбцами. Так как расхождение суммы столбца от нормы = i div 2 + 1, где i - номер столбца, то при обмене на внутри одной строки произойдёт следующее: S1 := S1 - i div 2 + 1 + j div 2 + 1 (*) S2 := S2 + i div 2 + 1 - j div 2 + 1 (**) где S2 = S1 - (j - i) где S1, S2 - суммы i-того и j-того столбцов. Всё сделато в предположении j>i, иначе просто переименуем переменные. Вычислив выражения, видим, что варианты сумм столбцов неизменились. 3) При обмене элементов столбцов принадлежащих разным строкам просто к суммам будет прибавляться/отниматься константа 4) Далее добавляем диапазон 34-55 и повторяем рассуждения (мат индукция). Получаем вывод - для подобной задачи с нечётным количеством строк решения нет. Хотя я мог где-то ошибиться... |
08.09.2008, 07:37 | #4 | |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Решение есть, т.к. это упрощенный вариант магического квадрата ( в нем суммы равны не только по строкам, но и по столбцам и главной и побочной диагонали), а квадраты со стороной 3, 5, 7 точно существуют, когда-то решал, правда для 11 не решал. Помню что решение трудное, но полностью сейчас не помню.
Сейчас прочитал в Википедии, что такие квадраты существуют для всех n>=1, кроме n=2. Вот принципы построения магического квадрата, должно пригодиться. Цитата:
Последний раз редактировалось puporev; 08.09.2008 в 07:45. |
|
08.09.2008, 11:35 | #5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
я тоже глянул статейку на Википедии...
puporev, Вы абсолютно правы - это реальный способ решения задачи!! если вечерком будет полчасика - обязательно решу! (если смогу ;-)) ) Цитата:
для N=3 какой квадрат у Вас получается по этомй формуле? или даже проще - задачка для устного счёта до 4-х: если в эту формулу подставить i=1 (первая строка) j=3 (третий столбец) и N=3 — чему будет равняться значение выражения?? |
|
08.09.2008, 12:59 | #6 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Я всегда был плохим математиком
Вот выявил последовательность размещения чисел - каждый i-тый элемент группы может заполняться по порядку 1, 2, 3, ... n, а следующая группа начинается заполняться так n+1+k, n+2+k, ... n+(n-k), n+1,... n+k, где k - номер группы минус один. Тогда получим исходный код Код:
|
08.09.2008, 14:55 | #7 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Я решение от Eoln не видел, у меня интернета не было, решил по другому, правда менее изящно. На всякий случай выложу.
Код:
Последний раз редактировалось puporev; 08.09.2008 в 21:36. |
09.09.2008, 21:43 | #8 |
Новичок
Джуниор
Регистрация: 07.09.2008
Сообщений: 2
|
Serge_Bliznykov ,eoln ,puporev спасибо большое всё работает.Классс!!!!
|
24.06.2009, 02:47 | #9 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Если у вас установлен Паскаль, выложите этот квадрат — интересно же!
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
24.06.2009, 06:36 | #10 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Вот оба варианта. Но это не магический квадрат, это решение данной по условию задачи.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите с массивами пожалуйста | neomaximus | Помощь студентам | 5 | 08.07.2008 17:48 |
помогите с массивами | Ibmsystem | Помощь студентам | 1 | 21.04.2008 08:10 |
Помогите с массивами | Юль_кА | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 10.04.2008 08:39 |
Помогите новичку с массивами | alexei | Общие вопросы Delphi | 9 | 11.09.2007 22:19 |