Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Поищу ка в ширину ка (произносить с японским акцентом)))
Ответ
 
Опции темы Опции просмотра
  (#16 (permalink)) Старый
aag aag вне форума
ушёл... не вернётся)))
 
Сообщений: 3,400
Сказал(а) спасибо: 0
Поблагодарили 82 раз(а) в 82 сообщениях
Регистрация: 29.11.2008
По умолчанию 29.03.2013, 09:42

Цитата:
Имеется стопка из п блинчиков разного размера. Вы можете вставить лопатку под любой блинчик и перевернуть всю стопку, оказавшуюся на лопатке, "вверх ногами". Задача — при помощи последовательности таких операций разложить блинчики по размерам так, чтобы самый больший из них был в самом низу.
Visual Prolog Код:
implement main
    open core, console, list

clauses
    run():-
        init(),
        Bliny = [8,1,7,2,6,3,5,4],
        FinishCond = {(sort(Bliny))},
        if Chain = shirka::chain([Bliny], FinishCond, step) then
            forAll(Chain, {(Cj) :- write(Cj), nl})
        else
            write("Фигушки....")
        end if,

        write("\n...........................................\n"),
        _ = readChar().

class predicates
    step : (integer*) -> integer* nondeterm.
clauses
    step(Stopka) = reverseFew([], Stopka).

class predicates
    reverseFew : (integer*, integer*) -> integer* nondeterm.
clauses
    reverseFew(A, B) = append(A, B) :-
        [_,_|_] = A.
    reverseFew(A, [B|C]) = reverseFew([B|A], C).

end implement main
goal
    mainExe::run(main::run).


Цитата:
[8,1,7,2,6,3,5,4]
[4,5,3,6,2,7,1,8]
[5,4,3,6,2,7,1,8]
[3,4,5,6,2,7,1,8]
[6,5,4,3,2,7,1,8]
[2,3,4,5,6,7,1,8]
[7,6,5,4,3,2,1,8]
[1,2,3,4,5,6,7,8]

...........................................
Ответить с цитированием
  (#17 (permalink)) Старый
aag aag вне форума
ушёл... не вернётся)))
 
Сообщений: 3,400
Сказал(а) спасибо: 0
Поблагодарили 82 раз(а) в 82 сообщениях
Регистрация: 29.11.2008
По умолчанию 01.06.2013, 13:25

Цитата:
Сообщение от lokiki Посмотреть сообщение
Есть поле размером 4×4. На нём расположены фишки, у которых одна сторона окрашена в белый цвет, а другая — в чёрный. Какие-то из них в данный момент лежат белой стороной вверх, какие-то вниз. За один ход можно перевернуть одну фишку и все соседние по горизонтали или вертикали с ней. Целью игры является позиция, в которой все фишки лежат одной стороной вверх (все чёрные либо все белые).

Естественно, такая игра быстро надоедает, неожиданных и нетипичных позиций становится всё меньше и меньше. Поэтому сейчас в СКБ Контур больше распространён модифицированный вариант игры. В этом варианте ход заключается в перекладывании фиксированной комбинации фишек, попадающей в квадрат 3×3. Например, ход может заключаться в переворачивании всех соседей выбранной фишки по диагонали.

Комбинация выбирается произвольной; её можно задать в виде поля 3×3, где центральная клетка соответствует той, в которую делается ход. Например на рисунке слева вверху показана комбинация для обычной игры, а внизу — для описанной в предыдущем абзаце. Заметим, что комбинация не обязана быть симметричной. Ход делается всегда в одну из клеток игрового поля (то есть центральная клетка квадрата 3×3, определяющего ход, выбирается из клеток поля). Предписания комбинации на переворачивание фишек, попадающих за пределы поля, игнорируются.
Для такой игры бывает неплохо знать, можно ли вообще перевернуть все фишки одной стороной вверх, и если можно, то за какое минимальное число ходов. Вот вам и предстоит сделать программу, которая могла бы дать ответ на эти вопросы.

Исходные данные

В первых четырёх строках описывается начальное расположение фишек. Символ 'W' — обозначает фишку, лежащую вверх белой стороной, символ 'B' — чёрной. В следующих трёх строках описывается ход — комбинация переворачиваемых фишек. '0' — фишку переворачивать не надо, '1' — надо.
Результат
Если добиться нужного расположения фишек невозможно, то выведите надпись «Impossible», иначе выведите минимальное количество ходов, за которое это расположение достигается.

Пример
WWWW
WBBW
WBWW
WWWW
101
010
101

здесь задание с изображениями
acm.timus.ru/problem.aspx?space=1&num=1122

Очень сложная задачка для меня...Помогите кто чем сможет, хотябы натолкните на мысль, в какую сторону думать.
Visual Prolog Код:
implement main
    open core, console, list

clauses
    run():-
        init(),

%WWWW
%WBBW
%WBWW
%WWWW
%        Start = [
%            tuple(1,1,1), tuple(1,1,2), tuple(1,1,3), tuple(1,1,4),
%            tuple(1,2,1), tuple(0,2,2), tuple(0,2,3), tuple(1,2,4),
%            tuple(1,3,1), tuple(0,3,2), tuple(1,3,3), tuple(1,3,4),
%            tuple(1,4,1), tuple(1,4,2), tuple(1,4,3), tuple(1,4,4) ],


%WWWW
%WWBW
%WBWW
%WWWW
        Start = [
            tuple(1,1,1), tuple(1,1,2), tuple(1,1,3), tuple(1,1,4),
            tuple(1,2,1), tuple(1,2,2), tuple(0,2,3), tuple(1,2,4),
            tuple(1,3,1), tuple(0,3,2), tuple(1,3,3), tuple(1,3,4),
            tuple(1,4,1), tuple(1,4,2), tuple(1,4,3), tuple(1,4,4) ],

        if Chain = shirka::chain([Start], finishCond, step) then
            show(Chain)
        else
            write("Фигушки....")
        end if,

        write("...........................................\n"),
        _ = readChar().

class facts
    finishCond : predicate_dt{tuple{integer, integer, integer}*} :=
        { (X) :- [_] = list::removeDuplicatesEq({(tuple(Y,_,_), tuple(Y,_,_))}, X) }.

%101
%010
%101
    stepModel : tuple{integer, integer}* := [tuple(0,0), tuple(-1,-1), tuple(-1,1), tuple(1,-1), tuple(1,1)].

class predicates
    step : (tuple{integer, integer, integer}*) -> tuple{integer, integer, integer}* nondeterm.
clauses
    step(In) = Out :-
        tuple(_,X,Y) = getMember_nd(In),
        ToTurn = map(stepModel, {(tuple(X0,Y0)) = tuple(X+X0,Y+Y0)}),
        Out = map(In, { (tuple(A,B,C)) = tuple(D,B,C) :- D = if isMember(tuple(B,C), ToTurn) then 1-A else A end if }).

class predicates
    show : (tuple{integer, integer, integer}**).
clauses
    show([A,B|C]) :-
        Turned = difference(A,B),
        Main = getMember_nd(Turned),
        tuple(_, Xm, Ym) = Main,
        [] = filter(Turned, {(tuple(_, X, Y)) :- ( tuple(Xd,Yd) = getMember_nd(stepModel), Xm = X+Xd, Ym = Y+Yd, !, fail; succeed() )}),
        !,
        write(Main),
        nl,
        show([B|C]).
    show(_).

end implement main
goal
    mainExe::run(main::run).


Цитата:
tuple(1,1,2)
tuple(0,2,1)
...........................................
Ответить с цитированием
Пользователь сказал cпасибо:
lokiki (01.06.2013)
  (#18 (permalink)) Старый
aag aag вне форума
ушёл... не вернётся)))
 
Сообщений: 3,400
Сказал(а) спасибо: 0
Поблагодарили 82 раз(а) в 82 сообщениях
Регистрация: 29.11.2008
По умолчанию 09.10.2013, 19:22

Минимум ферзей на доске, чтоб все поля были под боем.


Visual Prolog Код:
implement main
    open core, console

clauses
    run():-
        init(),
        Size = 9,

        Zero = kletka::new(),
        KletkaS = [ Kj || Kj = kletka::new(std::fromTo(1, Size), std::fromTo(1, Size)) ],

        list::forAll(KletkaS,
            {(Kj) :-
                Bj = list::filter(KletkaS,
                    {(Ki) :-
                        Ki <> Kj,
                        ( Ki:x = Kj:x or Ki:y = Kj:y or math::abs(Ki:x-Kj:x) = math::abs(Ki:y-Kj:y) ), ! }),
                Kj:kicks := Bj }),

        if Out = shirka::chain([[Zero|KletkaS]], {([_])}, step) then
            list::forAll(Out, {(A) :- if [B|_] = A and B:x > 0 then write(B:x, "/", B:y, "; ") end if })
        else
            write("фигушки...")
        end if,

        write("\n................................\n"),
        _ = readChar().

class predicates
    step : (kletka*) -> kletka* nondeterm.
clauses
    step([Last|X]) = [Next|Y] :-
        Next = Last:getNext(),
        Y = list::difference(X, Next:kicks).

end implement main

goal
    mainExe::run(main::run).


interface kletka

properties
    x : integer.
    y : integer.
    next : kletka.
    kicks : kletka*.

predicates
    getNext : () -> kletka Next nondeterm.

end interface kletka


class kletka : kletka

constructors
    new : ().
    new : (integer X, integer Y).

end class kletka


implement kletka

facts
    x : integer := 0.
    y : integer := 0.
    next : kletka := erroneous.
    kicks : kletka* := [].

clauses
    getNext() = _Failed :-
        isErroneous(next),
        !,
        fail.

    getNext() = next.

    getNext() = next:getNext().

clauses
    new() :-
        last := This.

    new(X, Y) :-
        x := X,
        y := Y,
        if not(isErroneous(last)) then
            last:next := This
        end if,
        last := This.

class facts
    last : kletka := erroneous.

end implement kletka

Цитата:
1/3; 2/2; 3/1; 5/8; 8/5;
................................

Для Size = 8 тоже 5-ти хватает, вроде:
Цитата:
1/1; 1/5; 5/4; 5/6; 6/4;
................................
Память жрёт по-дикому, конечно...
Ответить с цитированием
  (#19 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,956
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 09.10.2013, 22:15

Цитата:
Сообщение от aag Посмотреть сообщение
1/1; 1/5; 5/4; 5/6; 6/4;
Смотри-ка. Никогда не думал, что пятью ферзями можно покрыть всё поле.
Ответить с цитированием
  (#20 (permalink)) Старый
aag aag вне форума
ушёл... не вернётся)))
 
Сообщений: 3,400
Сказал(а) спасибо: 0
Поблагодарили 82 раз(а) в 82 сообщениях
Регистрация: 29.11.2008
По умолчанию 10.10.2013, 22:21

Цитата:
Сообщение от Винитарх Посмотреть сообщение
Смотри-ка. Никогда не думал, что пятью ферзями можно покрыть всё поле.
Ну, дальше больше:
10Х10
Цитата:
1/2; 1/1; 5/7; 6/5; 7/6; 6/8;
................................
11Х11
Цитата:
1/2; 1/1; 1/3; 2/9; 5/9; 8/6; 11/6;
................................

С ферзями просто - они друг другу бой не ломают. С полным комплектом фигур оно ого-го))) Да со временем кисло(((
Ответить с цитированием
Ads.
  (#21 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,956
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 10.10.2013, 23:00

Чувствуется влияние PDC - интерфейсы, конструкторы, ...

А если проще - поставил ферзя, удалил из списка все битые поля и т.д. ???
Пространство поиска сокращается быстро.
Конечно вглубь будет подольше чем вширь, наверное. Но можно эвристиками ускорить.
Ответить с цитированием
  (#22 (permalink)) Старый
aag aag вне форума
ушёл... не вернётся)))
 
Сообщений: 3,400
Сказал(а) спасибо: 0
Поблагодарили 82 раз(а) в 82 сообщениях
Регистрация: 29.11.2008
По умолчанию 12.10.2013, 17:42

Цитата:
Сообщение от Винитарх Посмотреть сообщение
Чувствуется влияние PDC - интерфейсы, конструкторы, ...
оно мне задолго до знакомства в ВИПом нравилось)))

Цитата:
Сообщение от Винитарх Посмотреть сообщение
А если проще - поставил ферзя, удалил из списка все битые поля и т.д. ???
Пространство поиска сокращается быстро.
Конечно вглубь будет подольше чем вширь, наверное. Но можно эвристиками ускорить.
Не особо то и быстро....

Насчёт эвристик право не знаю и чего тут мона придумать - 100%-ый результат только ворошить по-полной.

В ширину можно симметрии сечь.
В смысле: 1/1;1/2 ~ 1/1;2/1 ~ 1/7;1/8 ~ 1/8;2/8 ~ .......

Так, 8 ферзей никто никого не бьёт всего 92 решения, а симметрии-повороты отбросить 12-ать - числа точно не помню, но вполне себе существенно...
Ответить с цитированием
  (#23 (permalink)) Старый
aag aag вне форума
ушёл... не вернётся)))
 
Сообщений: 3,400
Сказал(а) спасибо: 0
Поблагодарили 82 раз(а) в 82 сообщениях
Регистрация: 29.11.2008
По умолчанию 21.12.2013, 23:19

Цитата:
На острове Себур в один момент насчитывалось 13 красных, 16 зеленых, 17 синих хамелеонов.
Если встречаются два хамелеона разного цвета, то они одновременно меняют свой цвет на третий
(было: красный и зеленый - стало: два синих).
Может ли случиться так, что через некоторое время все хамелеоны окажуться одного цвета?
Visual Prolog Код:
implement main
    open core, console

clauses
    run():-
        init(),
        Start = [13, 16, 17, 10, 12],
        FinishCond = {(X) :- [_]=list::removeAll(X,0)},

        if Chain = shirka::chain([Start], FinishCond, {(X) = step(0,false,X)}) then
            list::forAll(Chain, {(Cj) :- write(Cj), nl})
        else
            write("фигушки...")
        end if,

        write("\n................................\n"),
        _ = readChar().

class predicates
    step : (integer, boolean, integer*) -> integer* nondeterm.
clauses
    step(2, true, A) = A :-
        !.
    step(A,B,[C|D]) = [C-1|step(A+1,B,D)] :-
        A<2.
    step(A,B,[C|D]) = [C+2|step(A,true,D)] :-
        false = B.
    step(A,B,[C|D]) = [C|step(A,B,D)].

end implement main
goal
    mainExe::run(main::run).

Цитата:
[13,16,17,10,12]
[12,18,16,10,12]
[11,20,15,10,12]
[10,22,14,10,12]
[9,24,13,10,12]
[8,26,12,10,12]
[7,28,11,10,12]
[6,30,10,10,12]
[5,32,9,10,12]
[4,34,8,10,12]
[3,36,7,10,12]
[2,38,6,10,12]
[1,40,5,10,12]
[0,42,4,10,12]
[0,44,3,9,12]
[0,46,2,9,11]
[0,48,1,9,10]
[0,50,0,9,9]
[0,52,0,8,8]
[0,54,0,7,7]
[0,56,0,6,6]
[0,58,0,5,5]
[0,60,0,4,4]
[0,62,0,3,3]
[0,64,0,2,2]
[0,66,0,1,1]
[0,68,0,0,0]

................................
P.S. С тремя цветами совсем уж скучно: разноцветная пара меняет на какой-то другой.
Ответить с цитированием
  (#24 (permalink)) Старый
aag aag вне форума
ушёл... не вернётся)))
 
Сообщений: 3,400
Сказал(а) спасибо: 0
Поблагодарили 82 раз(а) в 82 сообщениях
Регистрация: 29.11.2008
По умолчанию 22.12.2013, 23:00

Цитата:
Сообщение от Винитарх Посмотреть сообщение
Вот решение задачи про остров Себур: Поищу ка в ширину ка (произносить с японским акцентом)))
Упс - а тут косяк)))

Visual Prolog Код:
step(A,B,[C|D]) = [C-1|step(A+1,B,D)] :-
        A<2.
C > 0 не хватает - уходит в минуса и 20 мин. жуёт и память жрёт...

Visual Prolog Код:
implement main
    open core, console

clauses
    run():-
        init(),
        Start = [13, 16, 17, 10, 12],
        Sum = list::fold(Start, {(A, B) = A + B}, 0),
        FinishCond = { (X) :- list::isMember(Sum, X) },

        if Chain = shirka::chain([Start], FinishCond, {(X) = step(0, false, X)}) then
            list::forAll(Chain, {(Cj) :- write(Cj), nl})
        else
            write("фигушки...")
        end if,

        write("\n................................\n"),
        _ = readChar().

class predicates
    step : (integer, boolean, integer*) -> integer* nondeterm.
clauses
    step(2, true, A) = A :-
        !.

    step(A, false, [C | D]) = [ C+2 | step(A, true, D)].

    step(A, B, [C | D]) = [C-1 | step(A+1, B, D)] :-
        A<2,
        C>0.

    step(A, B, [C | D]) = [C | step(A, B, D)].

end implement main
goal
    mainExe::run(main::run).
так вот в минутку-полторы укладывается)))
Ответить с цитированием
Ads
  (#25 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,781
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 23.12.2013, 00:25

В минутку-полторы - это для какой задачи??
Ответить с цитированием
  (#26 (permalink)) Старый
aag aag вне форума
ушёл... не вернётся)))
 
Сообщений: 3,400
Сказал(а) спасибо: 0
Поблагодарили 82 раз(а) в 82 сообщениях
Регистрация: 29.11.2008
По умолчанию 23.12.2013, 00:36

Хамелеоны Start = [13, 16, 17, 10, 12],

Вчера накосячил. Сегодня поправил.
Ответить с цитированием
  (#27 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,781
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 23.12.2013, 00:57

У меня универсальный решатель в ширину, абсолютно бесхитростный (ну varM есть), делает это мгновенно. Есть в пособии. Только в пособии конечное состояние фиксировано, а тут я его изменила на критерий остановки (в секунду, тип одного аргумента меняется на имя предикатного домена, и все).
Но это я генерировала списки 000...111...222...
В общем для обеих задач моментально, для 01122 тоже. Так, как я описывала в начале темы (там только не было, что состояния запоминать надо).
Ответить с цитированием
  (#28 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,781
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 25.12.2013, 13:43

Только сейчас дошло, что мы вообще-то говорили о разных задачах.
aag тут незаметно другую задачу подсунул. Когда пара разноцветных хамелеонов иногда одним образом меняет цвет, а иногда другим. И попутно ищется, как они должны менять цвет.
Для такой задачи бесхитростный решатель не подойдет, конечно. И, конечно, надо брать количества, раз никаких конкретных правил по изменению цвета нет.
Память съедается, т.к. решения ищутся по сути волной.
Ответить с цитированием
  (#29 (permalink)) Старый
aag aag вне форума
ушёл... не вернётся)))
 
Сообщений: 3,400
Сказал(а) спасибо: 0
Поблагодарили 82 раз(а) в 82 сообщениях
Регистрация: 29.11.2008
По умолчанию 05.12.2017, 23:42

О - такой ещё нету)))
Цитата:
Сообщение от uuuu Посмотреть сообщение
Рыцари и дамы
На берег реки приезжают 3 рыцаря, каждый со своей дамой. В их распоряжении имеется лодка, способная вместить не более 2-х человек. Как смогут перебраться на другой берег рыцари со своими дамами, если требуется выполнить условие: ни одна дама не может остаться без своего рыцаря в обществе других рыцарей - она тут же подвергается насилию (нравы "рыцарей" не слишком-то изменились с тех пор). Лошади переплывают реку сами, дамы гребут веслами, как и рыцари, лодка может пересекать реку сколько угодно раз.
Visual Prolog Код:
implement main
    open core, console

clauses
    run() :-
        capacity := 2,
        Start = tuple(true, [ tuple(true, true), tuple(true, true), tuple(true, true) ]),
        Finish = {(tuple(false, [ tuple(false, false), tuple(false, false), tuple(false, false) ]))},
        if Out = shirka::chain([Start], Finish, step) then list::forAll(Out, {(X):- write(X, "\n")}) end if,
        write("\n................................\n"),
        _ = readChar().

class facts
    capacity : integer := 0.

class predicates
    step : (tuple{boolean Boat, tuple{boolean Knight, boolean Dame}*}) -> tuple{boolean, tuple{boolean, boolean}*} nondeterm.
clauses
    step(tuple(Boat, Persons)) = tuple(BoatMoved, PersonsMoved) :-
        BoatMoved = boolean::logicalNot(Boat),
        PersonsMoved = move(capacity, BoatMoved, Persons),
        not(( tuple(A, B) = list::getMember_nd(PersonsMoved), A<>B, tuple(B, _) = list::getMember_nd(PersonsMoved) )).

class predicates
    move : (integer, boolean, tuple{boolean, boolean}*) -> tuple{boolean, boolean}* nondeterm.
clauses
    move(0, _, _) = _ :- !, fail.
    move(Count, Boat, [ tuple(Knight, Dame) | Tail ] ) = Out :-
        ( Knight<>Boat, H = tuple(Boat, Dame) or Dame<>Boat, H = tuple(Knight, Boat) ),
        ( Out = [H|Tail] or Out = move(Count-1, Boat, [H|Tail]) ).
    move(A, B, [C|D]) = [ C | move(A, B, D) ].

end implement main

goal
    console::runUtf8(main::run).


Цитата:
tuple(true,[tuple(true,true),tuple(true,true),tuple(true,true)])
tuple(false,[tuple(false,false),tuple(true,true),tuple(true,tru e)])
tuple(true,[tuple(true,false),tuple(true,true),tuple(true,true )])
tuple(false,[tuple(true,false),tuple(true,false),tuple(true,fal se)])
tuple(true,[tuple(true,true),tuple(true,false),tuple(true,fals e)])
tuple(false,[tuple(true,true),tuple(false,false),tuple(false,fa lse)])
tuple(true,[tuple(true,true),tuple(true,true),tuple(false,fals e)])
tuple(false,[tuple(false,true),tuple(false,true),tuple(false,fa lse)])
tuple(true,[tuple(false,true),tuple(false,true),tuple(false,tr ue)])
tuple(false,[tuple(false,false),tuple(false,false),tuple(false, true)])
tuple(true,[tuple(false,true),tuple(false,false),tuple(false,t rue)])
tuple(false,[tuple(false,false),tuple(false,false),tuple(false, false)])

................................
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в ширину (миссионеры и людоеды) на SWI-Prolog Alenkakiss Prolog 14 10.11.2013 11:51
Поиск в ширину lisper:( Lisp 3 24.12.2011 17:04
Поиск в ширину lollipop Prolog 3 21.10.2011 19:13
Обход дерева в ширину. Kenguru Prolog 2 13.06.2011 04:02
Граф - поиск в ширину Chummy Prolog 36 28.10.2010 18:10
Как определить ширину текста в пикселях imported_s_corp Java 8 08.08.2010 12:49
Обход дерева в ширину frikorsar Prolog 1 16.01.2009 14:39
Как поменять ширину строки usik Delphi 1 09.04.2008 08:29
Обход дерева в глубину и ширину L Вопросы начинающих программистов 0 12.12.2005 10:06
Как обозначить поиск в ширину acronim Prolog 1 10.11.2004 00:11
Как правильно произносить С++ Mak С/С++ 4 28.10.2003 16:30



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов