Какой loop использовать?

akd

dive now, work later
Команда форума
Tom_Alba, если ты еще не понял, решать ее за тебя никто не собрается.
 

Tom_Alba

Новичок
Как запускать функцию снова и снова, пока указанное условие false?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
на какое равенство? Зачем?
 

Вурдалак

Продвинутый новичок
Tom_Alba, точно, моя ошибка.

Но всего матриц 3x3 > 300K, из них 1 магический. Будешь ждать этого невероятного случая?
 

dimagolov

Новичок
Вурдалак, ну почему же 1? с точностью до вращения и отображения да, но вообще как минимум 8 или даже 16
 

Вурдалак

Продвинутый новичок
dimagolov, да, я расположение не учёл. Ситуацию, по-моему, всё равно не меняет ;)
 

Tom_Alba

Новичок
Парни, что касается, мягко говоря, неоптимальности алгоритма, то я, конечно, все понимаю. Примите во внимание другое: мне 34 года, я кое-чего достиг профессионально как экономист и теперь решил приобрести навыки программирования. Это правда непросто. Мозги не те, да и не технарь я. Однако, вот что получилось для первого раза:

<?php
function fucksq ()
{
$sq=range(1,9);
shuffle ($sq);
return $sq;
}
$h1=$sq[0]+$sq[1]+$sq[2];
$h2=$sq[3]+$sq[4]+$sq[5];
$h3=$sq[6]+$sq[7]+$sq[8];
$v1=$sq[0]+$sq[3]+$sq[6];
$v2=$sq[1]+$sq[4]+$sq[7];
$v3=$sq[2]+$sq[5]+$sq[8];
$d1=$sq[0]+$sq[4]+$sq[8];
$d2=$sq[2]+$sq[4]+$sq[6];

do
{
fucksq ();
}
while ($h1==$h2 && $h1==$h3 && $v1==$v2 && $v1==$v3 && $d1==$d2 && $h1==$v1 && $h1==$d1);
echo $sq[4];
?>
 

Tom_Alba

Новичок

Tom_Alba

Новичок
Общее впечатление - на русских форумах часто переходят на "сам дурак". Это когда из 10 ответов только 1 по делу. Остальное шлак. Азиатская болтовня. Еще раз спасибо тем, кто мне помогал подсказками и дельной критикой )) Для остальных - against stupidity the gods themselves contend in vain...
 

AmdY

Пью пиво
Команда форума
отредактировал пост.
ой, какую хрень я написал. Tom_Alba, извини, спросонья не рассмотрел алгоритм что ли.
 

dimagolov

Новичок
AmdY, мне вообще интересна логика тех, кто составлял такие задачи. Какой подход они ожидают к решению задачи? Или энциклопедическое знание подобных занятных математических фактов, или хотя-бы умение их гуглить?
Хотя даже перебор, вернее расстановку по дереву вариантов можно вполне заметно оптимизировать.
По логике надо начинать с того, что вычислять магическую сумму, если числа по порядку, то это просто: (1 + n^2) * n^2 / (2 * n) = (1 + n^2) * n / 2, n - порядок матрицы. После этого находить все возможные расстановки длинны n, которые дают эту сумму, кроме того, надо учитывать, что не-диагональные ячейки участвуют в 2-х суммах, а диагональные в 3-х.
 

AmdY

Пью пиво
Команда форума
там нельзя использовать рандом, нужен хотя бы алгоритм перестановок, а так один и тот же порядок будет проверяться несколько раз
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Парни, что касается, мягко говоря, неоптимальности алгоритма, то я, конечно, все понимаю. Примите во внимание другое: мне 34 года, я кое-чего достиг профессионально как экономист и теперь решил приобрести навыки программирования. Это правда непросто. Мозги не те, да и не технарь я.
welcome to the club :)
ты не 1й, и ничего особенного в этом нет, и студенты ноют, и комменты не отличаются от реакции экономистов, если бы ты спросил, как рассчитать и нарисовать график эффективности использования трудовых ресурсов (который никому в реальности нафиг не нужен).

Только в русских форумах тебе не холодную ссылку в ответ напишут, а объяснят, как реально дела обстоят в этом мире, и о чем надо думать!
 

Tom_Alba

Новичок
welcome to the club :)
ты не 1й, и ничего особенного в этом нет, и студенты ноют, и комменты не отличаются от реакции экономистов, если бы ты спросил, как рассчитать и нарисовать график эффективности использования трудовых ресурсов (который никому в реальности нафиг не нужен).

Только в русских форумах тебе не холодную ссылку в ответ напишут, а объяснят, как реально дела обстоят в этом мире, и о чем надо думать!
Спасибо! Очень приятно оказаться в вашем клубе )) Насчет "холодных ссылок" и "теплых душ" мои наблюдения говорят мне что это заблуждение. В данном случае. И вообще когда сравнивают нашу "широкую" душу и "холодных" европейцев и американцами. Кстати, мануал пхп.нет просто замечательный ))))
 
Сверху