Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Заполнить двумерный массив
Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010
Помог: 3 раз(а)
Как проще заполнить двумерный массив 7х7 числами от 1 до 7, но чтоб они в столбцах и строках не повторялись (как в судоку)?
Если не затруднит, то алгоритм заполнения с комментариями, пожалуйста.
SAD
Отправлено: 21 Ноября, 2010 - 16:18:06
Постоянный участник
Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009 Откуда: Днепропетровск, Украина
Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010
Помог: 3 раз(а)
В принципе, как вариант неплохо. Только хотелось бы, чтоб заполнение происходило случайным образом. Т.е. чтоб каждый раз генерировались разные матрицы.
Мелкий
Отправлено: 21 Ноября, 2010 - 17:42:04
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
demot пишет:
Т.е. чтоб каждый раз генерировались разные матрицы.
Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010
Помог: 3 раз(а)
Мелкий пишет:
Если не наврал
Если просто перемешивать элементы строк массива, то будут повторяющиеся значения в столбцах, чего быть не должно. Значения элементов массива не должны повторятся ни в строках, ни в столбцах.
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
demot пишет:
Значения элементов массива не должны повторятся ни в строках, ни в столбцах
Решение предполагаемой вами задачи не может обеспечиться посредством осуществлением единичной случайной перестановки строк и столбцов в таблице - в общем случае небходимо производить последовательность случайных перенесений до получения целевого результата Однако при решении вашей задачи на практипе испльзование такого способа не является приемлемым в силу его достаточной вычислительной сложности - в качестве оптимального решения возможно проведение установки случайных компонетов в первой строке - в то время как в оставшихся строках обеспечивается выбор несовпадающих значений и проведения рандомизации исключительно в их списке - таким образом при осуществлении заполнения последней строки вызов случайной функции уже не используется
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
demot
Отправлено: 21 Ноября, 2010 - 20:38:33
Частый гость
Покинул форум
Сообщений всего: 143
Дата рег-ции: Окт. 2010
Помог: 3 раз(а)
JustUserR пишет:
в качестве оптимального решения возможно проведение установки случайных компонетов в первой строке - в то время как в оставшихся строках обеспечивается выбор несовпадающих значений и проведения рандомизации исключительно в их списке - таким образом при осуществлении заполнения последней строки вызов случайной функции уже не используется
Благодарю за ответ! Конечно заумно написано, но общий принцип понятен, буду мучаться
Еще раз спасибо!
SAD
Отправлено: 21 Ноября, 2010 - 20:42:58
Постоянный участник
Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009 Откуда: Днепропетровск, Украина
Помог: 75 раз(а)
У меня знакомый писал судоку. спрошу как он делал. отпишусь
JustUserR
Отправлено: 21 Ноября, 2010 - 20:49:06
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
demot пишет:
Благодарю за ответ! Конечно заумно написано, но общий принцип понятен, буду мучаться
Еще раз спасибо!
На здоровье! Рассморение приведенной вами задачи по осуществлению заполнения матрицы случайными числами с условием неповторяемости элементов по заданому критерию - обеспечивается основным принципом включает в себя следующей правило - заполнение каждой последующей строки матрицы производится при условии фиксации одного дополнительного элемента по сравнению с предыдущей итерацией
В качестве возможной программной реализации алгоритма - применимо создание первой строки матрцы в соответсвии со случайным заполнение - в то время как для каждого j-ого элемента i-ой строки обеспечивается вертикальный просмотр элементов подлежащих возможному включению - и выбора одной из допустимых комбинаций посредством указанного алгоритма фиксации элемента
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Byxou
Отправлено: 16 Июля, 2014 - 11:59:56
Новичок
Покинул форум
Сообщений всего: 1
Дата рег-ции: Июль 2014
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.