Есть задачка интресная. Нужно создать двух(трех)мерный действительный массив (можно не динамический) без одинаковых элементов. Плюс там еще куча всякой ерунды, но то уже не проблемма...
А вообще, зря тему закрыли (эт та, что в важных торчит ). Она, по моему, давольно таки актуальна для студентов...
Ну как , если надо, чтобы разные числа, то берёшь одно какое-то число=р, а дальше идёшь циклом по массиву и заполняешь его р n-ый*х, где х-коэффициент, нужный тебе.
В том то и загвоздка, что это не исключает повтор элементов... хотя это и мало вероятно. Вообще то задачка чуть сложнее... массив уже задан. Т.е. получается, что нужно найти два одинаковых элемента и один из них изменить так, что бы он при этом не совпадал с др. элементами.
Только что в голову пришло: ищем максимальный в массиве элемент, запоминаем. Потом идём по массиву, начиная со 2 элемента ищем одинаковые элементы среди уже просмотренных. Если находим, то присваиваем одному из них значение макс. эл-та +1. Ещё находим одинаковые - присваиваем max+2 и т. д. Таким образом, новое значение гарантированно не совпадёт с другими, потому что будет больше их.
Есть еще неплохая задачка на сортировку массивов. Никто про Конвеевскую игру жизнь не слышал ? Ну я думаю что кодеры с большим стажем должны были слышать о ней... А суть такая: есть двумерный массив, каждый элемент которого может принимать два значения 1 и 0, ну или др. какие захотите... так вот, значение ячейки изменяется в зависимости от окружающих ее элементов (примерно как в сапере), если соседних ячеек с элементом равным 1 меньше 2 (т.е. всего одна) либо больше 4, то значение выбранной ячейки обнуляется, если таких соседей 3, то ячейка приравнивается еденице.
Вот, вроде как ничего не напутал...
Хотелось бы реализовать, но проблемма с выводом результата...
Lik, слушай, я не только слышал, но и очень долго увлекался этой игрой!
Год назад пробовал написать, вроде получилось, но тоже возникли проблемы с выводом результата, а потом какой-то другой задачей заинтересовался...
Вообще - очень интересная тема. Где ты прочитал об этой игре? Я - у Мартина Гарднера в "Математических досугах", потом у него же в "Крестиках-ноликах" - там больще материала. Особо впечатлили "глайдерные ружья", которые раз в 30 ходов выстреливают из себя пятиклеточные фигурки, улетающие в бесконечность и "раэмножитель", да и вообще много дико интересного. Потом два раза видел {в энциклопедии и в компьютерном журнале} программки "Жизни", но не особо впечатлило. По-моему, можно оптимальнее сделать.
Американские программисты нашли "Сад Эдема"- конфигурацию, которая по правилам игры не может получиться ни из одной другой. Так вот , я как-то думал над немного другой задачей. Допустим, дала нам конфигурацию(не очень большую) и задали найти все конфигурации, умещающиеся в прямоугольнике MxN, из которых на следующем ходу получается данная.
То есть найти всех возможных "мам" ребёнка. Сложновато, но интересно. Самое главное - можно ли написать нерекурсивную процедуру? Можно, конечно, простым перебором, но тогда перебрирать 2^S, S - площадь прямоугольника.
Ну у меня проблема была, в общем-то, в моей лени и тогдашней неопытности.
Во-первых, хотелось сделать покрасивее, а с графикой я ещё не работал. Во-вторых, если действие игры происходит в ограниченном пространстве, то всё понятно , а вот сделать так, чтобы конфигурации могли развиваться практически бесконечно в разные стороны{пока пямяти хватит}, и к тому же их ещё было возможно нормально просматривать... Короче, я тогда так и забросил прогу, увлёкся реализацией консольного редактора таблиц... а жаль. Ну летом обязательно возьмусь, и чего-нибудь наколдую.
APAL, а как ты выводил развитие игры?
Ага, врубился... Правда, могут быть конфигурации настолько большие, что заполнят всё пространство, либо разлетающиеся на части, движущиеся в противоположные стороны(тогда они столкнутся), но для большинства случаев вполне пойдёт. И главное, интересная и нетрудная реализация. Спасибо за мысль.
А что, "Жизнь" больше никто не программировал?
Я программировал, получилось легко:
Если надо, пришлю по майлу.
Пришли, пожалуйста, если не трудно. Интересно сравнить. Вообще игрушка интересная. В 70-х она разорила США на тысячи часов машинного времени. Игры - страшная сила
Можно сделать остановку процесса по нажатию какой либо клавиши и вручную, курсором затереть ненужные точки... ;)