Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Судоку(Sudoku) ? 
:(
    Опции темы
unkis
Дата 15.3.2006, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 802
Регистрация: 8.9.2004

Репутация: нет
Всего: 1



Ребята здраствуйте!
Тут есть одна интересна игра называется Судоку(Sudoku).
Информация о игре здесь

Предлогаю на форуме обсудить алгоритмы её решения, не просто тупой перебо, а какие-нибудь алгоритмы связаные с KI


Зарания всем благодарен.


--------------------
www.unkis.com
PM MAIL WWW   Вверх
maxim1000
Дата 15.3.2006, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



ну подобные задачи чаще всего решаются перебором с какими-нибудь модификациями
самая частая модификация - отсечение какого-нибудь множества вариантов
еще один вариант - перебор в каком-то определенном порядке

тут сразу же добавляется отсечение - проверка корректности после каждой поставленной цифры
дальше, как мне кажется, нелишним будет упорядочвание перебора: сначала искать те клетки, где количество вариантов наименьшее
если оно - 0, сразу ясно, что надо делать откат
если 1 - и перебора никакого нету
2 - перебрать два варианта

это немного замедлит рост количества вариантов по мере углубления...


--------------------
qqq
PM WWW   Вверх
unkis
Дата 15.3.2006, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 802
Регистрация: 8.9.2004

Репутация: нет
Всего: 1



Я тут в интернете почитал многие к этой проблемме подходят с матиматической точке зрения, некотыре испльзуют какой-то Sword Fish
Кто что про эти методы знает.


--------------------
www.unkis.com
PM MAIL WWW   Вверх
XbiT
Дата 20.3.2006, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 9.2.2006

Репутация: 1
Всего: 1



писал пару дней назад перебор на эту задачу, но для поля 5*5 он загибался. 4*4моментально работает.
PM MAIL   Вверх
daNick
Дата 22.8.2006, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 12.8.2006
Где: Казахстан, Астана

Репутация: нет
Всего: нет



А скажите лучьше, как генерить это самое поле 9х9?
--------------------
Долго не кончать - преимущество мужчины, а не оратора.Я так много читал о вреде курения, что решил бросить... читать.(с) Сергей Довлатов
PM MAIL ICQ   Вверх
Akina
Дата 22.8.2006, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



По-моему более разумно не заниматься перебором, а строить трехмерный массив вариантов расположения с удалением невозможных.

В случае когда решение единственное, за все решение потребуется максимум 2-3 предположения. К тому же несложно организовывать откат и, следовательно, рекурсивный поиск. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
nostromo
Дата 25.8.2006, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 194
Регистрация: 23.3.2006

Репутация: 5
Всего: 10



--------------------
На пыльных тропинках далеких планет останутся наши следы.
PM MAIL   Вверх
boevik
Дата 30.8.2006, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: нет
Всего: 35



Цитата(daNick @ 22.8.2006,  11:55)
А скажите лучьше, как генерить это самое поле 9х9?

Генерил рекурсией.
Есть даче код на Jave, отрабатывает за доли секунды.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
nickless
Дата 3.9.2006, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: нет
Всего: 181



Есть еще dancing links algorithm Кнута, смотри линк, там есть пример для судоку


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
daNick
Дата 5.9.2006, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 12.8.2006
Где: Казахстан, Астана

Репутация: нет
Всего: нет



boevik, на ВБ можешь сделать исходники?
--------------------
Долго не кончать - преимущество мужчины, а не оратора.Я так много читал о вреде курения, что решил бросить... читать.(с) Сергей Довлатов
PM MAIL ICQ   Вверх
boevik
Дата 5.9.2006, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: нет
Всего: 35



В принципе, не должно быть проблемным.
Можешь и сам попробовать, код не сложный.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
daNick
Дата 7.9.2006, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 12.8.2006
Где: Казахстан, Астана

Репутация: нет
Всего: нет



boevik, я пытался сам, но у меня нифига не вышло. Даже на сайте посвященному чисто программированию судоку исходники рабоают неправильно. Т.е. лбо по вертикали, либо по горизонтал, либо в блоках цифры повторяются.Так что, если не жалко, помоги?
--------------------
Долго не кончать - преимущество мужчины, а не оратора.Я так много читал о вреде курения, что решил бросить... читать.(с) Сергей Довлатов
PM MAIL ICQ   Вверх
boevik
Дата 7.9.2006, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: нет
Всего: 35



Выкладываю исходники на Java, будут затруднения пиши:
Код

    private int randomNumberRecursive(int cell) {
        //stop condition
        if (cell>=81) 
            return -1; 
        int row = cell/9, 
                col=cell%9;
                
        //random any number and check for correctness
        //if the digit is not correct, just check next digit
        int digit = (int)(Math.random()*9+1);
        for (int i=0; i<10; i++){
            digit = ++digit%10;
            if (digit!= 0 &&    //ignore zero digit
                    legitimateDigit(row, col, digit)){
                table[row][col]=digit;
                if (randomNumberRecursive(cell+1)!=0){
                    return digit;
                }
            }
        }
        table[row][col]=0;
        return 0;
    }


    /**
     * Verify corrections of the digit in the sudoku table
     * @param row is row position of the digit
     * @param col is column position of the digit
     * @param digit is number that checks
     */
    public boolean legitimateDigit(int row, int col, int digit){
        return legitimateInRow(row, digit) &&
                legitimateInCol(col, digit) &&
                legitimateInSquare(squareNumber(row, col), digit);
    }
    private boolean legitimateInRow(int row, int digit) {
        for(int i=0; i<9; i++)
            if (table[row][i] == digit)
                return false;
        return true;
    }
    
    private boolean legitimateInCol(int col, int digit) {
        for(int i=0; i<9; i++)
            if (table[i][col] == digit)
                return false;
        return true;
    }
    
    public int squareNumber(int row, int col) {
        if (row < 3 && col < 3) return 1;
        if (row < 3 && col < 6) return 2;
        if (row < 3 && col < 9) return 3;
        if (row < 6 && col < 3) return 4;
        if (row < 6 && col < 6) return 5;
        if (row < 6 && col < 9) return 6;
        if (row < 9 && col < 3) return 7;
        if (row < 9 && col < 6) return 8;
        if (row < 9 && col < 9) return 9;
        return 0;
    }
    
    private boolean legitimateInSquare(int square, int digit) {
        for(int i=0; i<9; i++)
            for (int j=0; j<9; j++)
                if (squareNumber(i, j) == square && table[i][j] == digit)
                    return false;
        return true;
    }




Всё начинается с запуска 
Код

randomNumberRecursive(0);

результатом является заполненое поле table.
Если надо получить поля для отгадывания, то есть другая функция которая рандомально затирает цифры в заполненом поле.

Удачи



--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
daNick
Дата 7.9.2006, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 12.8.2006
Где: Казахстан, Астана

Репутация: нет
Всего: нет



Спасибо. Попытаюсь разобраться. Хотя я в Яве не шарю, я васче кроме вб и паскаля нде ни шарю, но это дело поправимое.
--------------------
Долго не кончать - преимущество мужчины, а не оратора.Я так много читал о вреде курения, что решил бросить... читать.(с) Сергей Довлатов
PM MAIL ICQ   Вверх
daNick
Дата 25.9.2006, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 12.8.2006
Где: Казахстан, Астана

Репутация: нет
Всего: нет



Переложил на VB, ни фига не работает. Переменная digit принимает значения большее 9. Почему так?
--------------------
Долго не кончать - преимущество мужчины, а не оратора.Я так много читал о вреде курения, что решил бросить... читать.(с) Сергей Довлатов
PM MAIL ICQ   Вверх
boevik
Дата 25.9.2006, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: нет
Всего: 35



Выкладывай кодна VB, с VB я немного знаком.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
boevik
Дата 25.9.2006, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: нет
Всего: 35



Цитата(daNick @  25.9.2006,  11:34 Найти цитируемый пост)
Переложил на VB, ни фига не работает. Переменная digit принимает значения большее 9. Почему так? 

digit%10 -> digit mod 10  - это выполнил?


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
ip127001
Дата 26.12.2006, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 24.11.2006
Где: Omsk

Репутация: нет
Всего: -1



самый разумный алгоритм...сначало заполнить матрицу...потом сохранить ее в вирт массиве.

и в зависимости от сложности отчистить ее, оставив нужное количество цифер
--------------------
aqua currit et debere currere ut currere solebat
PM MAIL   Вверх
V.A.KeRneL
Дата 29.12.2006, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vadim A. Kazantsev
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 3.12.2006
Где: Moscow, Russia

Репутация: 1
Всего: 14



http://ru.wikipedia.org/wiki/Судоку
http://ru.wikipedia.org/wiki/Обобщённое_судоку

http://en.wikipedia.org/wiki/Sudoku
http://en.wikipedia.org/wiki/Mathematics_of_Sudoku

http://fr.wikipedia.org/wiki/Sudoku

Да, и не забывайте, что задача обобщённого судоку NP-полна => полиномиального решения не существует (по крайней мере, до тех пор, пока мы глобально не пересмотрим существующую теорию вычислений). Лучший здесь вариант -- это, имхо, оптимизированный «умный» перебор.


Это сообщение отредактировал(а) V_A_KeRneL - 29.12.2006, 09:42


--------------------
«C'est un pense-creux d'ici. C'est le meilleur et le plus irascible homme du monde...» © Ф.М. Достоевский, «Бесы»
---/)/)---(\.../)---(\(\
--(':'=)---(=';'=)---(=':')
(")(")..)-(").--.(")-(..(")(")

PM MAIL IM ICQ AOL YIM MSN   Вверх
Magister Y0da
Дата 1.1.2007, 05:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зелёненький
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 30.11.2004

Репутация: 2
Всего: 2



--------------------
PM MAIL ICQ   Вверх
SoWa
Дата 1.1.2007, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Код

main(int j,char**V){char*R=V[1],i=0,k=48;for(;*R>k;*++R||
puts(R-i))++i;for(;++k<58;*R&&main(*R=k,V),*R=1)for(j=81;j
--;)*R*=R[j-i]-k||i/9^j/9&&i%9^j%9&&i/27^j/27|i%9/3^j%9/3;}

Ох. С Си плохо знаком, а еще и написано нечитабельно smile
Кто нибудь в Алгол может перевести?


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Alex
Дата 6.1.2007, 03:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 162



Вот алгоритм boevik переписанный на Delphi:
Код

var
  table: array[0..8,0..8] of Integer;

function legitimateInRow(row, digit: Integer): boolean;
var
  i: Integer;
begin
  Result:= True;
  for i:=0 to 8 do if table[row][i] = digit then Result:= False;
end;

function legitimateInCol(col, digit: Integer): boolean;
var
  i: Integer;
begin
  Result:= True;
  for i:=0 to 8 do if (table[i][col] = digit) then Result:= False;
end;

function squareNumber(row, col: Integer): Integer;
begin
  if (row < 3) and (col < 3) then begin Result:= 1; Exit; end;
  if (row < 3) and (col < 6) then begin Result:= 2; Exit; end;
  if (row < 3) and (col < 9) then begin Result:= 3; Exit; end;
  if (row < 6) and (col < 3) then begin Result:= 4; Exit; end;
  if (row < 6) and (col < 6) then begin Result:= 5; Exit; end;
  if (row < 6) and (col < 9) then begin Result:= 6; Exit; end;
  if (row < 9) and (col < 3) then begin Result:= 7; Exit; end;
  if (row < 9) and (col < 6) then begin Result:= 8; Exit; end;
  if (row < 9) and (col < 9) then begin Result:= 9; Exit; end;
  Result:= 0;
end;

function legitimateInSquare(square, digit: Integer): Boolean;
var
  i, j: Integer;
begin
  Result:= true;
  for i:=0 to 8 do for j:=0 to 8 do
    if (squareNumber(i, j) = square) and (table[i][j] = digit) then
      Result:= false;
end;

function legitimateDigit(row, col, digit: Integer): Boolean;
begin
  Result:= legitimateInRow(row, digit) and
           legitimateInCol(col, digit) and
           legitimateInSquare(squareNumber(row, col), digit);
end;

function randomNumberRecursive(cell: Integer): Integer;
var
  row, col, digit, i: Integer;
begin
  //stop condition
  if (cell>=81) then begin
    Result:= -1;
    Exit;
  end;
  row:= cell div 9;
  col:= cell mod 9;

  //random any number and check for correctness
  //if the digit is not correct, just check next digit
  randomize;
  digit:= random(999999)*9+1;
  for i:=0 to 9 do begin
    digit:= (digit+1) mod 10;
    if ((digit<> 0) and legitimateDigit(row, col, digit)) then begin
      table[row][col]:=digit;
      if (randomNumberRecursive(cell+1)<>0) then begin
        Result:= digit;
        exit;
      end;
    end;
  end;
  table[row][col]:= 0;
  Result:= 0;
end;



--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Vsts
Дата 10.1.2007, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 10.1.2007

Репутация: нет
Всего: 1



Помоему прога от "boevik" много лишнего делает.
Алгоритм можно упростить.
Код

#include <stdio.h>
#include <stdlib.h>

enum 
{
    Width  = 9,
    Height = 9,
    CountSh= 100   //кол-во перемешиваний
};

//тут можно вставить любые начальные условия, главное что бы удовлетворяли правилам игры
int arr[Width][Height]  = {     {0,3,6,1,4,7,2,5,8},   
                                {1,4,7,2,5,8,0,3,6},
                                {2,5,8,0,3,6,1,4,7},
                                {3,6,0,4,7,1,5,8,2},
                                {4,7,1,5,8,2,3,6,0},
                                {5,8,2,3,6,0,4,7,1},
                                {6,0,3,7,1,4,8,2,5},
                                {7,1,4,8,2,5,6,0,3},
                                {8,2,5,6,0,3,7,1,4}};

// меняет две строки в массиве
void swapX(unsigned int x1,unsigned int x2)
{
    if(x1 >= Width ||x2 >= Width )   return;
     //проверяем что бы в пределах одного квадрата были перемещаемые строки
    unsigned int c =  (x1>x2) ? (x1-x2) : (x2-x1);
    if( c == 0 || c > 2) return;

    //если все хорошо, меняем их местами
    for(unsigned  int i=0;i<Width;++i)
    {
        int temp   = arr[i][x1];
        arr[i][x1] = arr[i][x2];
        arr[i][x2] = temp;
    }
}
// меняет два столбца в массиве
void swapY(unsigned int x1,unsigned int x2)
{
    if(x1 >= Height ||x2 >= Height )  return;
    
    // все тоже самое,только для столбцов

    unsigned int c =  (x1>x2) ? (x1-x2) : (x2-x1);
    
    if( c == 0 || c > 2) return;

    for(unsigned  int i=0;i<Height;++i)
    {
        int temp   = arr[x1][i];
        arr[x1][i] = arr[x2][i];
        arr[x2][i] = temp;
    }
}
int main()
{
     for(int i=0;i<CountSh;++i)
    {
        unsigned  int sq,x1,x2; 

        sq = rand()%3;  // выбираем что бы попали в нужный диапазон

        x1 = rand()%2 + 1;
        x2 = rand()%x1;

        if(i%2) swapX(x1 +sq *3,x2+sq *3);
        else    swapY(x1 +sq *3,x2+sq *3);
    }
        
    //вывод на экран
    printf("\n-------------------------------\n");
    for(int i=0;i<Width;++i)
    {
        for(int j=0;j<Height;++j)    
        {
            printf("%s %d ",j%3 == 0 ? "|":"",arr[i][j]);
        }
        printf("|");

        if(i%3 == 2)
            printf("\n+---------|---------|---------|\n");
        else
            printf("\n|         |         |         |\n");
    }
    return 0;
}




Пусть есть матрица  ,удовлетворяющая правилам судоку . Например А = 
-------------------------------
| 0  3  6 | 1  4  7 | 2  5  8 |
|            |            |            |
| 1  4  7 | 2  5  8 | 0  3  6 |
|            |            |            |
| 2  5  8 | 0  3  6 | 1  4  7 |
+---------|---------|---------|
| 3  6  0 | 4  7  1 | 5  8  2 |
|            |            |            |
| 4  7  1 | 5  8  2 | 3  6  0 |
|            |            |            |
| 5  8  2 | 3  6  0 | 4  7  1 |
+---------|---------|---------|
| 6  0  3 | 7  1  4 | 8  2  5 |
|            |            |            |
| 7  1  4 | 8  2  5 | 6  0  3 |
|            |            |            |
| 8  2  5 | 6  0  3 | 7  1  4 |
+---------|---------|---------|


что бы получить новую, достаточно в этой поменять две строчки (или столбца) местами,
при уловии что они обе принадлежат [ 0 , 2 ] [ 3 , 5 ] [ 6 , 8 ] .

Причем , результат от того в каком порядке их переставлять( сначала только столбцы, строки, или в перемешку).

так например меняем первую(нулевую) строку со второй(первой), 4(3) столбец с 6(5) 

---------------------------------
| 1  4  7 | 8  5  2 | 0  3  6 |
|            |            |            |
| 0  3  6 | 7  4  1 | 2  5  8 |
|            |            |            |
| 2  5  8 | 6  3  0 | 1  4  7 |
+---------|----------|---------|
| 3  6  0 | 1  7  4 | 5  8  2 |
|            |            |            |
| 4  7  1 | 2  8  5 | 3  6  0 |
|            |            |            |
| 5  8  2 | 0  6  3 | 4  7  1 |
+---------|---------|---------|
| 6  0  3 | 4  1  7 | 8  2  5 |
|            |            |            |
| 7  1  4 | 5  2  8 | 6  0  3 |
|            |            |            |
| 8  2  5 | 3  0  6 | 7  1  4 |
+---------|---------|---------|

Цитата

Предлогаю на форуме обсудить алгоритмы её решения, не просто тупой перебо, а какие-нибудь алгоритмы связаные с KI


Других елементарных преобразований я пока не нашел.Возможно ими можно все описать.
И еще не посчитал,сколько порождающих элементов есть.(Извеняюсь если это уже в статях есть,но все просматривать не было времени, да и язык буржуйский smile ...).



ПыСы : математика это хАрАшо, тока за неё не платят... smile 


Это сообщение отредактировал(а) Vsts - 10.1.2007, 22:17
PM MAIL   Вверх
boevik
Дата 11.1.2007, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: нет
Всего: 35



Цитата(Vsts @  10.1.2007,  21:13 Найти цитируемый пост)
Помоему прога от "boevik" много лишнего делает.

Совершенно врно, прога делает много лишнего - в нее уже заложены инструменты для других решений.
К примеру, 1) можно задать начальную мартицу и найти все возможные решения решения; 
2) производить проверку ввода юзером
и т.д и т.п.





--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1206 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.