Oblivion 0 11 декабря, 2008 Опубликовано 11 декабря, 2008 · Жалоба Народ, давайте серьезную задачу сформулируем. Например, "8 ферзей". Найти все возможные варианты расстановки 8 ферзей на шахматной доске, при которой ни один из них не бьет других. Никакой графики, варианты выдавать в виде строк типа "а3 b7 e8 ..." Это чистая алгоритмика, интересно будет сравнить Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aesthete Animus 0 11 декабря, 2008 Опубликовано 11 декабря, 2008 · Жалоба неожиданно наталкиваешься на давно забытые штуки типа режима консольного ввода :) Что значит забытые??? ( :laughing: А теперь понаблюдаем за холиваром GUI vs CLI) Народ, давайте серьезную задачу сформулируем. Например, "8 ферзей". Ага... Сурьезная задача ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oblivion 0 11 декабря, 2008 Опубликовано 11 декабря, 2008 · Жалоба Ага... Сурьезная задача ;) Ну всяко интереснее, чем ввод-вывод строк мусолить ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Goodefine 0 11 декабря, 2008 Опубликовано 11 декабря, 2008 · Жалоба ...давайте серьезную задачу сформулируем. Например, "8 ферзей"... Эту задачу люди на МК-61 (микрокалькулятор такой, кто помнит) решали. Вариантов программ было множество, включая вариант, учитывающий "зеркальность" некоторых расстановок... А память команд МК-61 была шагов на 102, если склероз не изменяет... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbinger 10 11 декабря, 2008 Опубликовано 11 декабря, 2008 · Жалоба А память команд МК-61 была шагов на 102, если склероз не изменяет... 105. У 54-го 98 (это если склероз не изменяет мне). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oblivion 0 11 декабря, 2008 Опубликовано 11 декабря, 2008 · Жалоба Эту задачу люди на МК-61 (микрокалькулятор такой, кто помнит) решали. Вариантов программ было множество, включая вариант, учитывающий "зеркальность" некоторых расстановок... А память команд МК-61 была шагов на 102, если склероз не изменяет... Ну и здорово. Я же не предлагаю написать шахматную программу уровня Deep Blue Для сравнительного теста в самый раз будет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 11 декабря, 2008 Опубликовано 11 декабря, 2008 · Жалоба Например, "8 ферзей". Это чистая алгоритмика, интересно будет сравнить По двум критериям? размер исходника/размер ехешника ? Вот нагуглил program ferz; uses crt; var s,i:integer; a:array[1..8] of boolean; b:array[2..16] of boolean; c:array[-7..7] of boolean; x:array[1..8]of integer; procedure print; var k:integer; begin s:=s+1; write('Решение номер ',s:2,' : '); for k:=1 to 8 do write(x[k]:4); writeln; write('Press <Enter>'); readln; end;{of print} procedure try(i:integer); var j:integer; begin for j:=1 to 8 do if a[j]and b[i+j]and c[i-j] then begin x[i]:=j; a[j]:=false;b[i+j]:=false;c[i-j]:=false; if i<8 then try(i+1) else print; a[j]:=true;b[i+j]:=true;c[i-j]:=true; end; end;{of try} begin{of main} clrscr; for i:=1 to 8 do a[i]:=true; for i:=2 to 16 do b[i]:=true; for i:=-7 to 7 do c[i]:=true; s:=0; try(1) end. Рекурсия. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 1 11 декабря, 2008 Опубликовано 11 декабря, 2008 (изменено) · Жалоба задача о ферзях для доски N*N, критерий - максимальное N для времени счета не более 1 мин. Или 10 мин. Изменено 11 декабря, 2008 пользователем Leka Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
forever failure 0 11 декабря, 2008 Опубликовано 11 декабря, 2008 · Жалоба Казалось бы, причём тут микроконтроллеры Atmel AVR.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 6 11 декабря, 2008 Опубликовано 11 декабря, 2008 · Жалоба Казалось бы, причём тут микроконтроллеры Atmel AVR.... +1! Вот и я удивляюсь... Мало того, что спорщики уже давно спорят "ради спора", признавая, что переубедить их нереально в любом случае... Мало того, что скатились, как обычно, до взаимных обвинений... Мало того, что аргументов на всём 20-страничном сражении так и не встретилось... Кажется, и сам предмет спора вот-вот будет забыт... Господа! Вспомните хоть название темы! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oblivion 0 11 декабря, 2008 Опубликовано 11 декабря, 2008 · Жалоба Вот зануды... Если бы все посты во всех темах были по делу, Электроникс ужался бы раз в 10 :) Сейчас проверим, как Пашин вариант в Дельфях фунциклирует Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
forever failure 0 11 декабря, 2008 Опубликовано 11 декабря, 2008 · Жалоба Твёрдое окончательное Тьфу. Шумный, бурлящий слифф засчитан. Расчёт окончен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oblivion 0 11 декабря, 2008 Опубликовано 11 декабря, 2008 · Жалоба Вольно, Вечный Облом Exe-шник получился 374 Кб в Дельфи 7. Найдены все 92 варианта, ура! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 11 декабря, 2008 Опубликовано 11 декабря, 2008 · Жалоба Мало того, что аргументов на всём 20-страничном сражении так и не встретилось... Гы! Автор спросил, какие есть паскалевские компиляторы, и все началось - что мол нафиг оно надо, итд. Господа! Вспомните хоть название темы! А чего вспоминать? Ну нет нормальных паскалей для АВР! Уже ж все выяснили... задача о ферзях для доски N*N, критерий - максимальное N для времени счета не более 1 мин. Или 10 мин. Не согласен. А как избавиться от оси? Она ж тормозить станет... результаты случайные получатся Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 6 11 декабря, 2008 Опубликовано 11 декабря, 2008 · Жалоба Кстати, о ферзях и различиях между С и Паскалем ======== Г. С. Цейтин, Алгол-68 рrос Ферзи = (int k, proc(int, int) bool Можно, proc void Печать) void: if k = 8 then Печать else int p = k+1; for q to 8 do if Можно (p,q) then proc МожноHовое = (int x,y) bool: if у = q or x-p = abs(y-q) then false else Можно(x,y) fi; proc ПечатьHовое = void: (Печать; print((",", "abcdefgh"[p], "12345678"[q]))); Ферзи(p, МожноHовое, ПечатьHовое) fi od fi; proc МожноHачальное = (int x, y) bool: true; proc ПечатьHачальная = void: print(newline); Ферзи(О, МожноHачальное, ПечатьHачальная); ======== Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться