Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Liệt kê dãy nhị phân thỏa mãn điều kiện ....

  1. #1
    Ngày gia nhập
    12 2008
    Bài viết
    7

    Mặc định Liệt kê dãy nhị phân thỏa mãn điều kiện ....

    nhờ các anh chị và các bạn giúp đỡ về thuật toán sau đây .tôi xin chân thành cảm ơn
    bài toán : liệt kê dãy nhị phân có chiêu dài n>=4 bằng phương pháp sinh hoăc thuât toán quay lui thỏa mãn điều kiện : không xuất hiên chuỗi "1000"

  2. #2
    Ngày gia nhập
    11 2008
    Bài viết
    12

    bạn có thể nói rõ hơn hay là cho mọi người ví dụ đê hiểu hơn đi

  3. #3
    Ngày gia nhập
    12 2008
    Bài viết
    7

    mình xin nói cụ thể hơn như sau :
    ví dụ nguơi dùng nhập vào n=5
    thì chương trình sẽ xuất ra các dãy nhị phân có chiều dài là 5
    nhưng không xuất ra chuỗi "X1000" và "1000X" vì nhưng chuỗi số này có chứa chuỗi con "1000"
    với x là 0 hoặc 1
    nhờ mọi người giúp đỡ
    Đã được chỉnh sửa lần cuối bởi lycaphe8x : 21-12-2008 lúc 02:46 PM.

  4. #4
    Ngày gia nhập
    11 2008
    Nơi ở
    Neverland
    Bài viết
    48

    Thêm một hàm kiểm tra dãy "1000" có xuất hiện trong kết quả hay không nếu không xuất hiện trong cấu hình kết quả thì in cấu hình đó ra ngược lại thì không .
    I'm superman

  5. #5
    Ngày gia nhập
    12 2008
    Bài viết
    7

    tôi đang khó khăn trong việc viết code cho hàm kiểm tra nhờ bạn có thể cho code được không
    đây là bài tôi làm nhưng mà chưa cho kết quả đúng nhờ bạn sửa dùm
    bài toán viết bằng phương pháp sinh[RIMG][CODE]#include<stdio.h>
    Đã được chỉnh sửa lần cuối bởi lycaphe8x : 21-12-2008 lúc 03:48 PM.

  6. #6
    Ngày gia nhập
    11 2008
    Nơi ở
    Neverland
    Bài viết
    48

    Mặc định Liệt kê dãy nhị phân thỏa mãn điều kiện ....

    Cho Code vào Tag Code đi bạn nếu không bị xóa bài đó . Code bạn nhìn hơi rối mình Code lại một bài cho bạn xem :
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. int n,i,b[100],count,stop;
    5.  
    6. void init() {
    7.     printf("Enter length of bit string:");
    8.     scanf("%d",&n);
    9.     stop = 0;
    10.     count = 0;
    11.     for (i = 0;i < n;i++) b[i] = 0;
    12. }
    13. void next_Bit_String() {
    14.     int i;
    15.     i = n-1;
    16.     while (i >= 0 && b[i] == 1) {
    17.         b[i] = 0;
    18.         i--;
    19.     }
    20.     if (i < 0) stop = 1;
    21.     else b[i] = 1;
    22. }
    23. int checkBitString(int b[],int n) {
    24.     int i;
    25.     for (i = 0;i < n - 3;i++)
    26.         if (b[i] == 1 && b[i+1] == 0 && b[i+2] == 0 && b[i+3] == 0) return 1;
    27.     return 0;
    28. }
    29. int main() {
    30.     int i;
    31.     init();
    32.     while (!stop) {
    33.         if (!checkBitString(b,n)) {
    34.             count++;
    35.             printf("%d:",count);
    36.             for (i = 0;i < n;i++)
    37.                 printf("%d",b[i]);
    38.             putchar('\n');
    39.         }
    40.         next_Bit_String();
    41.     }
    42. }
    I'm superman

  7. #7
    Ngày gia nhập
    12 2008
    Bài viết
    7

    cảm ơn bạn nhiều !

Quyền hạn của bạn

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