ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Оффтоп > Болталка
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #31  
Старый 13.09.2007, 21:15
Аватар для AL Capone
AL Capone
Познающий
Регистрация: 27.03.2007
Сообщений: 36
Провел на форуме:
1147600

Репутация: 86
По умолчанию

Цитата:
Сообщение от Knight_of_Darkness  
Я предполагал раздельчик, где будут отписываться энтузиасты... .
ну тогда уж раздельчик для всех языков...А то сторонникам других языков будет обидно.
 
Ответить с цитированием

  #32  
Старый 13.09.2007, 21:29
Аватар для Knight_of_Darkness
Knight_of_Darkness
Познающий
Регистрация: 03.02.2007
Сообщений: 94
Провел на форуме:
267066

Репутация: 165
По умолчанию

угу, релизы на хтмл рулят! %)

Последний раз редактировалось Knight_of_Darkness; 13.09.2007 в 21:37..
 
Ответить с цитированием

  #33  
Старый 13.09.2007, 21:46
Аватар для Zitt
Zitt
Познавший АНТИЧАТ
Регистрация: 07.05.2006
Сообщений: 1,031
Провел на форуме:
5885100

Репутация: 773


Отправить сообщение для Zitt с помощью ICQ
По умолчанию

давайте уже роботоф для зохвата человекоф+)
 
Ответить с цитированием

  #34  
Старый 13.09.2007, 21:52
Аватар для FuckоFF
FuckоFF
Banned
Регистрация: 15.08.2007
Сообщений: 9
Провел на форуме:
412449

Репутация: 10
По умолчанию

Terminator

надо переписать ему систему что он не убивал человекоФ,кто возьмется?
 
Ответить с цитированием

  #35  
Старый 13.09.2007, 21:58
Аватар для Ni0x
Ni0x
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
Провел на форуме:
2009677

Репутация: 472
По умолчанию

Zitt,
KeDestroyTheWorld( 0 );

Knight_of_Darkness, даже по твоему сообщению все понятно, КАК ты хочешь заниматься одним проектом в группе человек? Каждый будет писать одно и тоже? Без координации ты не сделаешь ничего, а работа с координацией и есть командная, теперь ты понимаешь, что я имел ввиду? У тебя есть только желание, но не опыт.

Последний раз редактировалось Ni0x; 13.09.2007 в 22:01..
 
Ответить с цитированием

  #36  
Старый 13.09.2007, 22:33
Аватар для Knight_of_Darkness
Knight_of_Darkness
Познающий
Регистрация: 03.02.2007
Сообщений: 94
Провел на форуме:
267066

Репутация: 165
По умолчанию

Правильно, это никак не значит, что я набираю команду. Я лишь могу предложить, отписать алгоритм, сказать, каких функций не хватает, собрать программу. А кто сказал, что человек, участвующий сегодня будет продолжать завтра?

Вобщем, сказанное тобой боян - с тобой никто не пытается спорить. Были бы люди и желание с их стороны.

Последний раз редактировалось Knight_of_Darkness; 13.09.2007 в 22:41..
 
Ответить с цитированием

  #37  
Старый 13.09.2007, 22:36
Аватар для The_HuliGun
The_HuliGun
Участник форума
Регистрация: 19.05.2007
Сообщений: 228
Провел на форуме:
4325663

Репутация: 240
Отправить сообщение для The_HuliGun с помощью ICQ
По умолчанию

Решение задачи о ферзях.
n = |1 |2 |3 |4 |5 |6 |7 |8 |9 |10 |11 |12 |13 | |
L= |1 |0 |0 |2 |10 |4 |40 |92 |352 |724 |2680 |14200 |73712|
n - сторона квадрата, L - количество решений.
Если исходить из императивного программирования, то решение задачи может оказаться очень запутанным, а если следовать засадам декларативного программирования, то решение можно найти куда легче.
Кто не понял о чем речь, читаем доки и не спрашываем ерунды.
 
Ответить с цитированием

  #38  
Старый 13.09.2007, 22:43
Аватар для Knight_of_Darkness
Knight_of_Darkness
Познающий
Регистрация: 03.02.2007
Сообщений: 94
Провел на форуме:
267066

Репутация: 165
По умолчанию

The_HuliGun, может всё-таки выложишь более развернутый алгоритм на народное обозрение? А что касается стороны L=14?
 
Ответить с цитированием

  #39  
Старый 13.09.2007, 23:00
Аватар для The_HuliGun
The_HuliGun
Участник форума
Регистрация: 19.05.2007
Сообщений: 228
Провел на форуме:
4325663

Репутация: 240
Отправить сообщение для The_HuliGun с помощью ICQ
По умолчанию

Читаем сначала о Прологе, предикатах, логическом программировании, потом уже обсуждаем код
Код:
domains
queen    = q(integer, integer)
queens   = queen*
freelist = integer*
board    = board(queens, freelist, freelist, freelist, freelist)
facts - counter
single counter(integer)
predicates
nondeterm placeN(integer,board,board)
nondeterm place_a_queen(integer,board,board)
nondeterm nqueens(integer SizeOfBoard,integer NumberOfQ)
nondeterm makelist(integer, freelist)
nondeterm findandremove(integer, freelist, freelist)
nextrow(integer, freelist, freelist)
nondeterm rows(integer, freelist, freelist)

clauses
nqueens(N,Q):- 
    makelist(N,L),
    Diagonal=N*2-1,
    makelist(Diagonal,LL),
    rows(Q,L,Rows),
    placeN(N,board([],Rows,L,LL,LL),Final),
    Final=board(Queens,_,_,_,_),
    write(Queens),nl,
    counter(I),I1=I+1,assert(counter(I1)),
    fail;
    true.

placeN(_,board(D,[],L,D1,D2),board(D,[],L,D1,D2)):- !.
placeN(N,Board1,Result):- 
    place_a_queen(N,Board1,Board2),
    placeN(N,Board2,Result).

place_a_queen(N,board(Queens,Rows,Columns,Diag1,Diag2),
         board([q(R,C)|Queens],NewR,NewC,NewD1,NewD2)):-
    nextrow(R,Rows,NewR),
    findandremove(C,Columns,NewC),D1=N+C-R,
    findandremove(D1,Diag1,NewD1),D2=R+C-1,
    findandremove(D2,Diag2,NewD2).

findandremove(X,[X|Rest],Rest).
findandremove(X,[Y|Rest],[Y|Tail]):- findandremove(X,Rest,Tail).

makelist(1,[1]).
makelist(N,[N|Rest]):- N>1,N1=N-1, makelist(N1,Rest).

nextrow(Row,[Row|Rest],Rest).

rows(0,_,[]).
rows(N,[R|L],[R|S]):- N1=N-1,rows(N1,L,S).
rows(N,[_|L],S):- N>0,rows(N,L,S).

counter(0).
goal
nqueens(4,2),counter(N),write(N),exit.
Пример взят для Visual Prolog 5.2
 
Ответить с цитированием

  #40  
Старый 14.09.2007, 02:41
Аватар для Joker-jar
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме:
4172659

Репутация: 646


Отправить сообщение для Joker-jar с помощью ICQ
По умолчанию

Вот как эту зудучу решил я, код на Делфи (о ней же все-таки тема). Для наглядности рисую и доски, хотя это не нужно, главное - число.
Код:
program Ferzi;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  Ferz = '*';
  Empty = '1';
  War = '0';
  N=4;

type
  TDoska = array[1..N, 1..N] of char;

var
  Count: word;
  Dos: TDoska;

function SetFerz(D: TDoska; i,k: word): TDoska;
var
  i1,k1: word;
begin
  result := D;
  if (i>N)or(k>N) then exit;
  if result[i,k]<>Empty then exit;
  for i1:=1 to n do
    for k1:=1 to n do
      begin
        if result[i1,k1]=Empty then
        begin
          if (i1 = i)or(k1 = k) then result[i1,k1] := War;
          if (i1-i=k1-k) then result[i1,k1] := War;
          if (k1+i1=i+k) then result[i1,k1] := War;
        end;
      end;
  result[i,k] := Ferz;
end;

procedure ShowDoska(D: TDoska);
var
  i,k: word;
begin
  for i := 1 to n do
    begin
      writeln;
      for k:=1 to n do
      write(D[i,k]:2);
    end;
 writeln;
end;

procedure Perestanovka(D: TDoska; h, c: integer);
var
  i,k: word;
begin
  if c = N then
    begin
      ShowDoska(D);
      inc(Count);
    end;
  for k := 1 to N do
    begin
      if h < N then
      if D[h+1,k]=Empty then
      Perestanovka(SetFerz(D,h+1,k),h+1,c+1);
    end;
end;

begin
  FillChar(Dos,sqr(N),Empty);
  Perestanovka(Dos, 0, 0);
  writeln(#13#10,Count);
  readln;
end.
Решал ее в прошлом году, признаюсь, поначалу никаких идей по поводу решения не было. А теперь о фактах. Эта задача была в финале чемпионата мира по программированию 1989 года
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ