Trang 1 / 2 12 LastLast
Hiển thị kết quả từ 1 đến 10 / 18
  1. #1
    Tham gia
    26-06-2006
    Bài viết
    4
    Like
    0
    Thanked 0 Times in 0 Posts

    Ngạc nhiên thuật toán quay lùi------>

    em đang giải bài toán liệt kê các tổ hợp chập k của n phần tử
    dùng thuật toán quay lùi nhưng mà vẫn chưa ra kết quả
    các anh có thuật toán giúp giùm em
    em cảm ơn !
    Quote Quote

  2. #2
    Tham gia
    18-01-2007
    Bài viết
    4
    Like
    0
    Thanked 0 Times in 0 Posts
    anh cũng đang bí ne`

  3. #3
    Tham gia
    18-01-2007
    Bài viết
    4
    Like
    0
    Thanked 0 Times in 0 Posts
    hôm nào anh làm xong thì share cho
    đợi nghe

  4. #4
    Tham gia
    04-10-2007
    Bài viết
    2
    Like
    0
    Thanked 0 Times in 0 Posts

    Thông tin Tham khảo nhé

    Đây là thuật toán chung chung, từ đây bạn phát triển theo bài tập của bạn nhé. (hy vọng ko bị sai chỗ nào )
    void Try(i){
    for(j = cận dưới đến cận trên){
    if (chấp nhận j){
    Lưu trạng thái cũ và chuyển sang trạng thái mới.
    xi được tính theo trạng thái j
    if (x1..xi là nghiệm)
    In kết quả.
    else
    Try(i+1)
    Trả lại trạng thái cũ.
    }
    }
    }

  5. #5
    Tham gia
    27-08-2007
    Bài viết
    30
    Like
    0
    Thanked 0 Times in 0 Posts
    cách làm như sau (ko đệ quy)
    vd tìm tổ hop cap 3 cua 12345
    liet ke theo thứ tự tăng dần
    123
    124
    125
    134
    135
    ....
    bạn tự viet source nhen (viet 1 hàm tim cấu hình tiep theo)

  6. #6
    Tham gia
    26-08-2007
    Bài viết
    87
    Like
    0
    Thanked 0 Times in 0 Posts

    Nói nhỏ nè ! Share code

    [ Thanhhuy191188@gmail.com]

    Quote Được gửi bởi blackart_vn View Post
    Đây là thuật toán chung chung, từ đây bạn phát triển theo bài tập của bạn nhé. (hy vọng ko bị sai chỗ nào )
    void Try(i){
    for(j = cận dưới đến cận trên){
    if (chấp nhận j){
    Lưu trạng thái cũ và chuyển sang trạng thái mới.
    xi được tính theo trạng thái j
    if (x1..xi là nghiệm)
    In kết quả.
    else
    Try(i+1)
    Trả lại trạng thái cũ.
    }
    }
    }
    Minh co CODE muon share cho các bạn cùng tham khảo . nhưng cái chính là đoạn hướng dẫn bên trên. dựa vào đó ta có thể giải quyết được nhiều bài toán khác ,...

    /////////////////////////////
    // chinh hop lap chap k phan tu n mu k
    #include<stdio.h>
    #include<conio.h>
    void write();
    void try1(int i);
    int x[30];
    int n,k;

    void write()
    {
    int i;
    FILE *f2;
    f2=fopen("nchapk.out","a");
    for(i=1;i<=k;i++)
    {
    fprintf(f2,"%d",x[i]);
    }
    fprintf(f2,"\n");
    fclose(f2);
    }
    void try1(int i)
    {
    int j;
    for(j=0;j<=n;j++)
    {
    x[i]=j;
    if(i==k)
    write();
    else try1(i+1);
    }
    }
    void main()
    {
    FILE *f1;
    f1=fopen("nchapk.inp","r");
    fscanf(f1,"%d %d",&n,&k);
    try1(1);
    fclose(f1);
    }
    //////////////////////////////////////////

  7. #7
    Tham gia
    28-06-2007
    Location
    HCM
    Bài viết
    270
    Like
    0
    Thanked 9 Times in 9 Posts
    đệ quy way lui...
    chẳng khác với đệ qyu đâu...
    nói chung nó là zậy...
    procedure try (...);
    var...;
    begin
    if (đk) then exit (đúng thì thoát)
    else
    begin
    try(..);
    try(..);
    (đoạn này để đệ quy vô lần nữa)
    (trả lại thiết lập ban đầu trước khi đệ quy vô);
    end;
    end;

    ý nghĩa
    khi gặp một lối đúng thì thoát;
    không thì đệ quy vô
    gặp đướng cụt thì way ra bằng cách trả thiết lập lại

    Ví dụ: bài mã đi tuần

  8. #8
    Tham gia
    09-07-2004
    Location
    nơi tui ở!
    Bài viết
    303
    Like
    0
    Thanked 2 Times in 2 Posts
    Bài toán tìm tổ hợp chập k trong n phần tử theo phương pháp quay lui:
    try(i):=
    for (j = 1; j <= n; j++)
    if(x[i-1] + 1 <= j <= n - k + i)
    {
    x[i] = j;
    if (i < k)
    try(i + 1);
    else
    Xuất(x);
    }

  9. #9
    Tham gia
    30-03-2009
    Location
    BR_VT
    Bài viết
    5
    Like
    0
    Thanked 0 Times in 0 Posts
    Viết chương trình trò chơi cờ vua mà dùng thuật toán quay lui thì viết sao mọi người! Giúp mình với nha!
    Được sửa bởi knattanwar lúc 18:02 ngày 11-04-2009

  10. #10
    Tham gia
    01-03-2009
    Bài viết
    220
    Like
    0
    Thanked 0 Times in 0 Posts
    Quote Được gửi bởi ilu2009 View Post
    cách làm như sau (ko đệ quy)
    vd tìm tổ hop cap 3 cua 12345
    liet ke theo thứ tự tăng dần
    123
    124
    125
    134
    135
    ....
    bạn tự viet source nhen (viet 1 hàm tim cấu hình tiep theo)
    đấy là phương pháp sinh mà ko phải phương pháp quay lui.

Trang 1 / 2 12 LastLast

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •