|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.03.2011, 17:28 | #1 |
Пользователь
Регистрация: 29.09.2010
Сообщений: 19
|
Загадка квадрата.
напишите пожалуйста код только для обмена местами этих четвертей. заранее спасибо! просто у меня даже мыслей нету по этому поводу. |
16.03.2011, 18:55 | #2 |
Пользователь
Регистрация: 27.01.2011
Сообщений: 48
|
Первая диагональ понятно - индексы равны. Вторая же диагональ, мне предстовляется элеметы чья сумма обоих индексов равна длине квадрата+1.
Например массив размерностью mxm: первая диагональ это: i=j; вторая диагональ это: i+j+1=m; соответственно если i>j это элементы справа вверху, если i+j+1>m это элементы справа внизу. Чередование этих условий по парно даст координаты всех нужных элементов. Не совсем понятными остаются две непонятности: элементы являющиеся границами четвертей входят в эти четверти или нет? и поменять местами зеркально, где зеркало горизонтальная линия проходящая через центр или поменять местами через цетр массива? Ну и менять элементы так: пускаем цикл в четверть колличества элементов, и прибавляем индексам элементов вверху двойное количество расстояний которые им не хватает до центра, например: имеем массив размерностью 9x9; для того чтобы переставить элемент в другую четверть берём его индекс пусть у нас будет 2;3 и если мы кидаем его через центр массива, где центром оказывается элемент округлённый в большую сторону, то (5;5)-(2;3)=(3;2) (2;3)+2*(3;2)=(2;3)+(6;4)=(8;7), если же размерность массива является чётное число, например 10x10 то: для смещения с верхней четверти в нижнюю я использовал 5x5 и вконце перевода вычел один индекс из порядкового номера элемента массива, для перевода из нижней четверти в верхнюю можно либо сохранить индекс перевода из верхнего в нижний, а можно использовать центр (ведь центром является не 5x5, а 4,5x4,5) 4x4 и в конце соответственно прибавить еденичку к индексам. Всё просто. И не забудьте всё действительно когда нумеруете яйчейки еденицей или другими НЕ чётными числами, в ином случае я ничего не знаю и меня здесь не было.
Всё написанное мной является лично моим мнением за исключением когда указан источник данных.
Последний раз редактировалось JinglsOrg; 16.03.2011 в 19:36. |
16.03.2011, 19:28 | #3 |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
|
16.03.2011, 19:36 | #4 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Опять повторю: любят на этом форуме устраивать соревнование "Кто запутаннее?"...
... Код:
|
16.03.2011, 23:57 | #5 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
Извините за флуд, но VAGO, это Perl что ли?
|
17.03.2011, 00:02 | #6 |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
питон, написано же
|
17.03.2011, 00:22 | #7 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Да, Питон. Вместо операторных скобок - отступы;
Код:
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
загадка | vostok | Microsoft Office Excel | 4 | 11.11.2010 22:58 |
загадка | NordKeeper | Помощь студентам | 0 | 01.06.2010 18:36 |
Загадка | Liones | БД в Delphi | 1 | 31.08.2009 12:33 |