๑๑۩۞۩๑๑ DIỄN ĐÀN CÔNG NGHỆ THÔNG TIN ๑๑۩۞۩๑๑

Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Đăng Nhập

Quên mật khẩu

Latest topics

» █Kiếm thế Cát Tư Hãn open: 10h00 sáng CN ngày 4/2/18 – Miễn phí sét Hoàng Kim
by ciuem Thu Feb 01, 2018 1:37 pm

» █TL VÕ Thiên Long (CS) Open 10h00 sáng CN ngày 4/2/18 - Test 7h30 tối T5 ngày 1/2/2018
by ciuem Thu Feb 01, 2018 1:34 pm

» █Kiếm thế Võ Thiên open: 10h00 sáng CN ngày 28/1/2018 – Sân chơi đẳng cấp miễn phí
by ciuem Sun Jan 28, 2018 8:52 am

» █TL VÕ Thiên Long (CS) Open 7h30 tối T4 ngày 20/12/17 - Test 7h30 tối CN ngày 17/12/2017
by ciuem Mon Dec 18, 2017 6:32 pm

» █Kiếm thế Võ Thiên open: 7H30 tối T 4 ngày 20/12/2017 – Sân chơi đẳng cấp miễn phí
by ciuem Mon Dec 18, 2017 6:29 pm

» █ TL Chúa Tể(CC) open 7h30 tối T4 ngày 13/12/17 - Test game: 7h30 tối CN 10/12- Treo máy nhận ĐT
by ciuem Sun Dec 10, 2017 11:29 am

» █Kiếm Thế Quách Tĩnh - Open 7h30 tối T4 ngày 13/12/2017 - Miễn phí sét Hoàng Kim
by ciuem Sat Dec 09, 2017 2:40 pm

» █Kiếm thế Lâm Xung open: 7h30 tối T5 ngày 7/12/17 – Miễn phí sét Hoàng Kim
by ciuem Sun Dec 03, 2017 1:07 pm

» █Kiếm thế Thanh Gươm- Open 7h30 tối T4 ngày 29/11/2017 - Miễn phí 100%
by ciuem Tue Nov 28, 2017 5:08 am

» █Kiếm Thế Xích Quỷ - Open 7h30 tối T4 ngày 15/11/2017 - Miễn phí sét Hoàng Kim
by ciuem Tue Nov 14, 2017 7:10 pm

» █Kiếm thế Lỗ Trí Thâm open: 7h30 tối T4 ngày 8/11/2017 Sân chơi dành cho game thủ ít thời gian cầy cuốc
by ciuem Sun Nov 05, 2017 6:52 pm

» █Kiếm Thế Xích Quỷ - Open 10h00 sáng CN ngày 5/11/2017 - Miễn phí sét Hoàng Kim
by ciuem Tue Oct 31, 2017 2:15 pm

Top posters

natasada (272)
Giải Thuật Quay Lùi I_vote_lcapGiải Thuật Quay Lùi I_voting_barGiải Thuật Quay Lùi I_vote_rcap 
ciuem (127)
Giải Thuật Quay Lùi I_vote_lcapGiải Thuật Quay Lùi I_voting_barGiải Thuật Quay Lùi I_vote_rcap 
binhheo (114)
Giải Thuật Quay Lùi I_vote_lcapGiải Thuật Quay Lùi I_voting_barGiải Thuật Quay Lùi I_vote_rcap 
QuangPhuong (110)
Giải Thuật Quay Lùi I_vote_lcapGiải Thuật Quay Lùi I_voting_barGiải Thuật Quay Lùi I_vote_rcap 
DragonIT (101)
Giải Thuật Quay Lùi I_vote_lcapGiải Thuật Quay Lùi I_voting_barGiải Thuật Quay Lùi I_vote_rcap 
Tùng Nguyên (62)
Giải Thuật Quay Lùi I_vote_lcapGiải Thuật Quay Lùi I_voting_barGiải Thuật Quay Lùi I_vote_rcap 
Pho Minh Chu (45)
Giải Thuật Quay Lùi I_vote_lcapGiải Thuật Quay Lùi I_voting_barGiải Thuật Quay Lùi I_vote_rcap 
vanvan11 (37)
Giải Thuật Quay Lùi I_vote_lcapGiải Thuật Quay Lùi I_voting_barGiải Thuật Quay Lùi I_vote_rcap 
tuanpc (27)
Giải Thuật Quay Lùi I_vote_lcapGiải Thuật Quay Lùi I_voting_barGiải Thuật Quay Lùi I_vote_rcap 
xentoc111 (25)
Giải Thuật Quay Lùi I_vote_lcapGiải Thuật Quay Lùi I_voting_barGiải Thuật Quay Lùi I_vote_rcap 

Ngôn ngữ

November 2024

MonTueWedThuFriSatSun
    123
45678910
11121314151617
18192021222324
252627282930 

Calendar Calendar

Poll

Bạn thích nhất tên miền nào của Diễn Đàn 06CNTT ?
Giải Thuật Quay Lùi I_vote_lcap0%Giải Thuật Quay Lùi I_vote_rcap 0% [ 0 ]
Giải Thuật Quay Lùi I_vote_lcap14%Giải Thuật Quay Lùi I_vote_rcap 14% [ 1 ]
Giải Thuật Quay Lùi I_vote_lcap71%Giải Thuật Quay Lùi I_vote_rcap 71% [ 5 ]
Giải Thuật Quay Lùi I_vote_lcap0%Giải Thuật Quay Lùi I_vote_rcap 0% [ 0 ]
Giải Thuật Quay Lùi I_vote_lcap14%Giải Thuật Quay Lùi I_vote_rcap 14% [ 1 ]
Giải Thuật Quay Lùi I_vote_lcap0%Giải Thuật Quay Lùi I_vote_rcap 0% [ 0 ]

Tổng số bầu chọn : 7

Đai Học Đà Nẵng

Thống Kê

Hiện có 74 người đang truy cập Diễn Đàn, gồm: 0 Thành viên, 0 Thành viên ẩn danh và 74 Khách viếng thăm

Không


[ View the whole list ]


Số người truy cập cùng lúc nhiều nhất là 289 người, vào ngày Mon Oct 28, 2024 12:20 am

RSS feeds


Yahoo! 
MSN 
AOL 
Netvibes 
Bloglines 

Keywords


5 posters

    Giải Thuật Quay Lùi

    binhheo
    binhheo
    Admin


    Tổng số bài gửi : 114
    Age : 37
    Địa chỉ : Lớp 06CNTT- Đại học sư phạm - Đại học Đà Nẵng
    Điểm thưởng cho đóng góp :
    Giải Thuật Quay Lùi Left_bar_bleue100 / 100100 / 100Giải Thuật Quay Lùi Right_bar_bleue

    Registration date : 18/09/2008

    Giải Thuật Quay Lùi Empty Giải Thuật Quay Lùi

    Bài gửi by binhheo Mon Sep 22, 2008 9:16 pm

    Bài Toán Xếp 8 Quân Hậu
    Đây là bài toán hay: cho bàn cờ 8*8 với 8 quân hậu, hãy xếp các quân hậu lên bàn cờ sao cho chúng không ăn được lẫn nhau.
    Bài này có mấy thuật toán sau có thể làm:
    1.Duyệt đệ quy
    2.Duyệt theo thuật toán quay lui.
    3.Duyệt theo thuật toán nhánh cận
    ...
    Sau đây là code theo thuật toán quay lui:
    Code:
    //#include <stdio.h>
    #include <stdlib.h>
    //#include <conio.h>

    #define KICHTHUOC 8                    // Kich thuoc cua ban co
    #define SODUONGCHEO (2*KICHTHUOC-1)    // So duong cheo cua ban co
    #define SOGIA (KICHTHUOC-1)            // so gia
    #define TRUE 1
    #define FALSE 0

    // prototypes
    void hoanghau(int);
    void inloigiai(int loigiai[]);

    int cottrong[KICHTHUOC];          // mang cac cot co the dat hoang hau
    int cheoxuoitrong[SODUONGCHEO];  // mang cac duong cheo xuoi co the dat hhau
    int cheonguoctrong[SODUONGCHEO];  // mang cac duong cheo nguoc co the dat hhau

    int loigiai[KICHTHUOC];        /* mang loigiai cho biet cot dat cac hoang
                                      hau tren ban co. Vi du cac phan tu cua mang
                                      la: 7  3  0  2  5  1  6  4
                                      cho biet hoanghau0 dat o cot 7, hoanghau1
                                      dat o cot 3, ..., hoanghau7 o cot 4      */

    int SoLoiGiai = 0;

    void T_HAU(void)
    {
      int i;

      /* Khoi dong tat ca cac cot duong cheo xuoi, duong cheo nguoc deu co the
          dat hoang hau */
      for(i = 0; i < KICHTHUOC; i++)
          cottrong[i] = TRUE;
      for(i = 0; i < SODUONGCHEO; i++)
      {
          cheoxuoitrong[i] = TRUE;
          cheonguoctrong[i] = TRUE;
      }

      // Goi ham de qui de bat dau dat HoangHau0 (hoang hau o hang 0)
      hoanghau(0);
    }

    // Ham hoanghau giup dat hoang hau i (i tu 0 den KICHTHUOC-1) tren hang i
    void hoanghau(int i)
    {
      int j;
      for(j = 0; j < KICHTHUOC; j++)
          if(cottrong[j] && cheoxuoitrong[i-j+SOGIA] && cheonguoctrong[i+j])
          {
             // Dat hoang hau vao o (i, j) tren ban co
             loigiai[i] = j;
             cottrong[j] = FALSE;
             cheoxuoitrong[i-j+SOGIA] = FALSE;
             cheonguoctrong[i+j] = FALSE;

             if(i == KICHTHUOC-1)  // Dkien dung, dat duoc con hoang hau cuoi
               inloigiai(loigiai);
             else                  // Buoc de qui, goi dat hoang hau i+1
               hoanghau(i + 1);

             // lan nguoc
             cottrong[j] = TRUE;
             cheoxuoitrong[i-j+SOGIA] = TRUE;
             cheonguoctrong[i+j] = TRUE;
          }
    }

    void inloigiai(int *loigiai)
    {
      int i, j;
      char c;
      randomize();
      textmode(C80);
      textbackground(BLACK);
      clrscr();
      textcolor(1 + random(15));
      cprintf("\n                          CHUONG TRINH 8 HOANG HAU\n  ");
      cprintf("\n Loi giai %d", ++SoLoiGiai);
      printf("\n\n                      0    1    2    3    4    5    6    7");
      printf("\n                    ÚÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄ¿");
      printf("\n                  0³    ³²²²²³    ³²²²²³    ³²²²²³    ³²²²²³");
      printf("\n                    ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´");
      printf("\n                  1³²²²²³    ³²²²²³    ³²²²²³    ³²²²²³    ³");
      printf("\n                    ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´");
      printf("\n                  2³    ³²²²²³    ³²²²²³    ³²²²²³    ³²²²²³");
      printf("\n                    ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´");
      printf("\n                  3³²²²²³    ³²²²²³    ³²²²²³    ³²²²²³    ³");
      printf("\n                    ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´");
      printf("\n                  4³    ³²²²²³    ³²²²²³    ³²²²²³    ³²²²²³");
      printf("\n                    ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´");
      printf("\n                  5³²²²²³    ³²²²²³    ³²²²²³    ³²²²²³    ³");
      printf("\n                    ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´");
      printf("\n                  6³    ³²²²²³    ³²²²²³    ³²²²²³    ³²²²²³");
      printf("\n                    ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´");
      printf("\n                  7³²²²²³    ³²²²²³    ³²²²²³    ³²²²²³    ³");
      printf("\n                    ÀÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÙ");
      for(i = 0; i < KICHTHUOC; i++)
      {
          gotoxy(24+5*loigiai[i], 8+2*i);
          textcolor(1 + random(15));
          cprintf("Q");
      }
      gotoxy(13, 25);
      printf("Nhan phim <ESC> de thoat, nhan phim bat ky de tiep tuc ...");
      c = getche();
      if(c == 27)
          //return;
          exit(1);
    }
    binhheo
    binhheo
    Admin


    Tổng số bài gửi : 114
    Age : 37
    Địa chỉ : Lớp 06CNTT- Đại học sư phạm - Đại học Đà Nẵng
    Điểm thưởng cho đóng góp :
    Giải Thuật Quay Lùi Left_bar_bleue100 / 100100 / 100Giải Thuật Quay Lùi Right_bar_bleue

    Registration date : 18/09/2008

    Giải Thuật Quay Lùi Empty Mã Đi Tuần

    Bài gửi by binhheo Mon Sep 22, 2008 9:17 pm

    Ngoài bài toán 8 hậu, mình còn có mã nguồn của bài toán mã đi tuần, mình post code lên cho mọi người tham khảo nhé, bài này cũng áp dụng backtracking đó:
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>

    #define KICHTHUOC 5 // Kich thuoc cua ban co
    void nuocdi(int, int, int);
    void innuocdi(int BanCo[][KICHTHUOC]);
    void vebanco(void);

    // To chuc ban co la mang hai chieu

    int BanCo[KICHTHUOC][KICHTHUOC];

    // 8 cach di cua con ma
    int a[8] = {2, 2, 1, -1, -2, -2, -1, 1};
    int b[8] = {1, -1, -2, -2, -1, 1, 2, 2};

    int SoLoiGiai = 0;

    int main(void)
    {
    int i, j, m, n;

    clrscr();
    vebanco();

    for(i = 0; i < KICHTHUOC; i++)
    for(j = 0; j < KICHTHUOC; j++)
    {
    // Khoi dong tat ca cac o tren ban co deu chua di
    for(m = 0; m < KICHTHUOC; m++)
    for(n = 0; n < KICHTHUOC; n++)
    BanCo[m][n] = 0;

    // Chon nuoc di dau tien va goi ham de qui de di nuoc thu hai
    BanCo[i][j] = 1;
    nuocdi(2, i, j);
    }
    return 0;
    }

    // Ham NuocDi giup di nuoc thu n xuat phat tu o(x, y)
    void nuocdi(int n, int x, int y)
    {
    int i;
    char c;
    for(i = 0; i < 8; i++)
    {
    if(BanCo[x+a[i]][y+b[i]] == 0 && x+a[i] >= 0 && x+a[i] < KICHTHUOC
    && y+b[i] >= 0 && y+b[i] < KICHTHUOC)
    {
    // Di nuoc thu n
    BanCo[x+a[i]][y+b[i]] = n;

    if(n == KICHTHUOC*KICHTHUOC) // Dkien dung, di duoc nuoc cuoi
    {
    innuocdi(BanCo);
    gotoxy(43, 4);
    printf(" Loi giai thu %d", ++SoLoiGiai);
    gotoxy(13, 25);
    printf("Nhan <ENTER> de tiep tuc tim loi giai ke. Nhan <ESC> de thoat");
    if(c = getch() == 27)
    exit(1);
    }
    else // Buoc de qui, goi di nuoc n+1
    nuocdi(n+1, x+a[i], y+b[i]);

    // lan nguoc
    BanCo[x+a[i]][y+b[i]] = 0;
    innuocdi(BanCo);
    gotoxy(43, 4);
    printf("Dang tim loi giai thu %d", SoLoiGiai+1);
    gotoxy(13, 25);
    printf(" Xin vui long cho doi, nhan phim <Ctrl-Break> de thoat... ");
    }
    }
    }

    void innuocdi(int BanCo[][KICHTHUOC])
    {
    int i, j;
    char c;
    randomize();
    textmode(C80);
    textbackground(BLACK);
    textcolor(1);
    for(i = 0; i < KICHTHUOC; i++)
    for(j = 0; j < KICHTHUOC; j++)
    {
    gotoxy(23+5*j, 8+2*i);
    textcolor(1 + random(15));
    if(BanCo[i][j] == 0 ? printf(" ") : cprintf("%2d", BanCo[i][j]));
    }
    }

    void vebanco()
    {
    printf("\n\t\t\t CHUONG TRINH MA DI TUAN\n");
    printf("\n\t\tKich thuoc ban co %dx%d", KICHTHUOC, KICHTHUOC);
    printf("\n\n\t\t 1 2 3 4 5 6 7 8");
    printf("\n\t\t ÚÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄ¿");
    printf("\n\t\t 1 ³ ³ ³ ³ ³ ³ ³ ³ ³");
    printf("\n\t\t ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´");
    printf("\n\t\t 2 ³ ³ ³ ³ ³ ³ ³ ³ ³");
    printf("\n\t\t ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´");
    printf("\n\t\t 3 ³ ³ ³ ³ ³ ³ ³ ³ ³");
    printf("\n\t\t ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´");
    printf("\n\t\t 4 ³ ³ ³ ³ ³ ³ ³ ³ ³");
    printf("\n\t\t ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´");
    printf("\n\t\t 5 ³ ³ ³ ³ ³ ³ ³ ³ ³");
    printf("\n\t\t ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´");
    printf("\n\t\t 6 ³ ³ ³ ³ ³ ³ ³ ³ ³");
    printf("\n\t\t ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´");
    printf("\n\t\t 7 ³ ³ ³ ³ ³ ³ ³ ³ ³");
    printf("\n\t\t ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´");
    printf("\n\t\t 8 ³ ³ ³ ³ ³ ³ ³ ³ ³");
    printf("\n\t\t ÀÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÙ");
    QuangPhuong
    QuangPhuong
    Admin


    Tổng số bài gửi : 110
    Age : 37
    Địa chỉ : Lớp 06CNTT- Đại học sư phạm - Đại học Đà Nẵng
    Điểm thưởng cho đóng góp :
    Giải Thuật Quay Lùi Left_bar_bleue99 / 10099 / 100Giải Thuật Quay Lùi Right_bar_bleue

    Registration date : 18/09/2008

    Giải Thuật Quay Lùi Empty Có bài sắp xếp quicksort kô?

    Bài gửi by QuangPhuong Mon Sep 22, 2008 9:33 pm

    Có bài sắp xếp quicksort kô? mình đang cần nó. Ai có post lên đi. Thank Very Happy :bounce: Very Happy
    DragonIT
    DragonIT
    Admin


    Tổng số bài gửi : 101
    Age : 36
    Địa chỉ : Hoà Thọ Tây - Cẩm Lệ - Đà Nẵng
    Điểm thưởng cho đóng góp :
    Giải Thuật Quay Lùi Left_bar_bleue80 / 10080 / 100Giải Thuật Quay Lùi Right_bar_bleue

    Registration date : 20/09/2008

    Giải Thuật Quay Lùi Empty Hay

    Bài gửi by DragonIT Mon Sep 22, 2008 10:29 pm

    cố gắng phát huy Very Happy
    binhheo
    binhheo
    Admin


    Tổng số bài gửi : 114
    Age : 37
    Địa chỉ : Lớp 06CNTT- Đại học sư phạm - Đại học Đà Nẵng
    Điểm thưởng cho đóng góp :
    Giải Thuật Quay Lùi Left_bar_bleue100 / 100100 / 100Giải Thuật Quay Lùi Right_bar_bleue

    Registration date : 18/09/2008

    Giải Thuật Quay Lùi Empty Re: Giải Thuật Quay Lùi

    Bài gửi by binhheo Tue Sep 23, 2008 9:59 am

    chỉ hay thui sao>>phải nói là pro chứ>>hâhhahhah :P
    avatar
    lacloi007
    Thành viên mới
    Thành viên mới


    Tổng số bài gửi : 4
    Điểm thưởng cho đóng góp :
    Giải Thuật Quay Lùi Left_bar_bleue5 / 1005 / 100Giải Thuật Quay Lùi Right_bar_bleue

    Registration date : 27/09/2008

    Giải Thuật Quay Lùi Empty Chà cũng được.

    Bài gửi by lacloi007 Sat Sep 27, 2008 11:48 am

    Thế có ai định tham gia thi chuyên tin kô..
    Với kiến thức cơ bản về BackStracking là đủ rùi đó
    avatar
    hongtuyentc
    Thành viên mới toe
    Thành viên mới toe


    Tổng số bài gửi : 1
    Điểm thưởng cho đóng góp :
    Giải Thuật Quay Lùi Left_bar_bleue0 / 1000 / 100Giải Thuật Quay Lùi Right_bar_bleue

    Registration date : 11/11/2009

    Giải Thuật Quay Lùi Empty Re: Giải Thuật Quay Lùi

    Bài gửi by hongtuyentc Wed Nov 11, 2009 7:09 pm

    anh chi nao giup em thuat toan tim tu chuan voi.e doc cac giao trinh ma ko thay!thank nhiu!

    Sponsored content


    Giải Thuật Quay Lùi Empty Re: Giải Thuật Quay Lùi

    Bài gửi by Sponsored content


      Hôm nay: Sat Nov 02, 2024 10:40 pm