Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Alexandr787
1 / 1 / 0
Регистрация: 30.11.2010
Сообщений: 19
#1

Интересная штука на размышляловку:) - C++

08.12.2010, 14:00. Просмотров 816. Ответов 18
Метки нет (Все метки)

В каждой из 9 клеток квадрата 3 х 3 пороставлять числа 1,2,3 так, чтоб суммы чисел в каждой горизонтальной строке, в каждой вертикальной строке и в любой другой диагонали равнялось 6.
У кого какие соображения?
http://www.cyberforum.ru/cpp-beginners/thread790367.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2010, 14:00
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Интересная штука на размышляловку:) (C++):

Вот такая интересная штука на C
написать программу нахождения совершенных чисел в диапазоне от 1 до 1000000...

Странная штука
Фсё было хорошо а тут средь бело дня вот такая штука как с этим спавиться

структура странная штука
вообщем вот, и оно не работает. что не так?) #include <iostream> struct...

#pragma once кроссплатформенная штука?
Собственно эта штука будет работать под Windows/Linux/Android/iOS на...

Как называется эта штука?
Есть кусок кода. Как это называется? И что это? MediaBuffer::MediaBuffer(void...

18
Day
1159 / 964 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
08.12.2010, 14:12 #2
1 3 2
3 2 1
2 1 3
Подойдет?

Добавлено через 58 секунд
А еще можно так
2 2 2
2 2 2
2 2 2
2
lemegeton
2933 / 1362 / 467
Регистрация: 29.11.2010
Сообщений: 2,725
08.12.2010, 14:13 #3
Читерим?
Код
2 2 2
2 2 2
2 2 2
1
Alexandr787
1 / 1 / 0
Регистрация: 30.11.2010
Сообщений: 19
08.12.2010, 14:21  [ТС] #4
А если ето розвязать в С++?
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
08.12.2010, 14:56 #5
Цитата Сообщение от Alexandr787 Посмотреть сообщение
А если ето розвязать в С++?
C++
1
2
3
4
5
#include <iostream>
int main(){
  std::cout << "132\n321\n213" << std::endl;
  return 0;
}
2
Mr.X
Эксперт С++
3178 / 1705 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
08.12.2010, 15:53 #6
Можно показать, что при заданных условиях в центре может стоять только двойка. А далее, с точностью до отражений и поворотов матрицы, в левой верхней клетке либо 1, либо 2, т.е. кроме названных двух вариантов других не существует.
0
kazak
3057 / 2378 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
08.12.2010, 16:15 #7
Цитата Сообщение от Mr.X Посмотреть сообщение
Можно показать, что при заданных условиях в центре может стоять только двойка.
Непонятно на чем основан данный вывод, в центре может стоять любая цифра.
To Alexandr787, мое воспаленное воображение на ночь глядя родило такой алгоритм:
1) заполняем рандомно первую строку
2) в цикле заполняем оставшиеся строки по формуле
C++
1
a[i][j] = 6 - a[i-1][j] - a[i-1][(j-1)<0?0:(j-1)];// для неповторяющейся главной диагонали
или
C++
1
a[i][j] = 6 - a[i-1][j] - a[i-1][(j+1)<3?(j+1):0]; // для неповторяющейся побочной диагонали
Добавлено через 3 минуты
To Mr.X, да, чтобы не быть голословным
1 2 3 | 2 3 1 | 3 2 1 | 1 2 3
3 1 2 | 1 2 3 | 1 3 2 | 2 3 1
2 3 1 | 3 1 2 | 2 1 3 | 3 1 2
ну и т.д.
1
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
08.12.2010, 16:21 #8
kazak, первый вариант не катит - по диагонали три получается... а в третьем - девять...
0
kazak
3057 / 2378 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
08.12.2010, 16:29 #9
Тэксс... видимо я не так понял
Цитата Сообщение от Alexandr787 Посмотреть сообщение
в каждой горизонтальной строке, в каждой вертикальной строке и в любой другой диагонали
0
Mr.X
Эксперт С++
3178 / 1705 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
08.12.2010, 16:32 #10
Цитата Сообщение от kazak Посмотреть сообщение
Непонятно на чем основан данный вывод, в центре может стоять любая цифра.
To Alexandr787, мое воспаленное воображение на ночь глядя родило такой алгоритм:
1) заполняем рандомно первую строку
2) в цикле заполняем оставшиеся строки по формуле
C++
1
a[i][j] = 6 - a[i-1][j] - a[i-1][(j-1)<0?0:(j-1)];// для неповторяющейся главной диагонали
или
C++
1
a[i][j] = 6 - a[i-1][j] - a[i-1][(j+1)<3?(j+1):0]; // для неповторяющейся побочной диагонали
Добавлено через 3 минуты
To Mr.X, да, чтобы не быть голословным
1 2 3 | 2 3 1 | 3 2 1 | 1 2 3
3 1 2 | 1 2 3 | 1 3 2 | 2 3 1
2 3 1 | 3 1 2 | 2 1 3 | 3 1 2
ну и т.д.
Если мы поставим в верхнюю строку в первую и вторую клетки числа a и b, в среднюю клетку число c, то после вычислений в нижней строке получим числа:
a + b – c
6 – b – c
6 – a – c
Их сумма составляет 12 – 3с и должна быть равна 6, откуда c = 2.

А в ваших примерах вы забыли про диагонали.
1
kazak
3057 / 2378 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
08.12.2010, 16:33 #11
Но если в каждой диагонали сумма должна равняться 6, тогда Mr.X отчасти прав, только вариантов четыре:
1 3 2 | 3 1 2 | 2 1 3 | 2 3 1
3 2 1 | 1 2 3 | 3 2 1 | 1 2 3
2 1 3 | 2 3 1 | 1 3 2 | 3 1 2
0
Mr.X
Эксперт С++
3178 / 1705 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
08.12.2010, 16:38 #12
Цитата Сообщение от kazak Посмотреть сообщение
Но если в каждой диагонали сумма должна равняться 6, тогда Mr.X отчасти прав, только вариантов четыре:
1 3 2 | 3 1 2 | 2 1 3 | 2 3 1
3 2 1 | 1 2 3 | 3 2 1 | 1 2 3
2 1 3 | 2 3 1 | 1 3 2 | 3 1 2
Ну почему же отчасти, я же сказал с точностью до отражений и поворотов матрицы.
0
kazak
3057 / 2378 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
08.12.2010, 16:42 #13
Что-то я к словам цепляться начал

Цитата Сообщение от Mr.X Посмотреть сообщение
в левой верхней клетке либо 1, либо 2, т.е. кроме названных двух вариантов других не существует.
0
Day
1159 / 964 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
08.12.2010, 22:14 #14
kazak, В 1-м, 3-м и 4-м результате диагонали не дают сумму = 6. А все потому, что посередке не двоечка.

Добавлено через 3 минуты
Извиняюсь, этот момент уже был обсужден. Не заметил сгоряча.
А с точностью до изоморфизма вариантов и правда всего 2.
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
08.12.2010, 23:09 #15
Цитата Сообщение от Day Посмотреть сообщение
А все потому, что посередке не двоечка.
Мало того, во всех правильных вариантах "двоечка" по диагонали...
0
Day
1159 / 964 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
09.12.2010, 00:22 #16
Если эта штука так всех заинтересовала, предлагаю обсудить вариант 4 х 4.
Или уж сразу - N x N
0
kazak
3057 / 2378 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
09.12.2010, 09:41 #17
Только надо уточнить, в отдельной строке/столбце/диагонали цифры могут повторяться или нет.
0
Day
1159 / 964 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
09.12.2010, 16:15 #18
kazak, а кто мешает рассмотреть оба варинта?
0
Japanese
9 / 9 / 1
Регистрация: 14.11.2010
Сообщений: 128
09.12.2010, 16:48 #19
Цитата Сообщение от lemegeton Посмотреть сообщение
Читерим?
Код
2 2 2
2 2 2
2 2 2
кору смаял
0
09.12.2010, 16:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2010, 16:48
Привет! Вот еще темы с решениями:

вот такая штука у меня _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
я знаю что здесь что-то с деструктором но я новичок поэтому сам никак не могу...

Стивен Прата Язык программирования C++ лекции и упражнения (6-е издание). Листинг 6.8 - странная штука
Извиняюсь заранее, если было уже где-то - я не нашел( Штудирую Прату 6-е...

Как работает эта штука, и как сделать нечто подобное ?
Я хочу сделать такие же блоки с линиями Какой алгоритм тут используется...

Интересная конструкция
хотелось бы уточнить по поводу int(*a)(); это массив указателей на ф-ии (an...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru