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

Đề tài: giup em voi gap lam

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

    Mặc định Bài toán về toa tàu và đường ray

    Giup em bai nay voi.
    Em viet Code roi. chay dc roi. nhung khong biet Chung minh giai thuat
    anh nao giup dum voi. Do phuc tap la bao nhieu?
    de bai va bai giai o duoi. Cac anh xem co cho nao sai sua ho em nhe:
    CAM ON RAT NHIEU.

    10. Cho các toa tàu đánh số từ 1, 2, .., n ở đường ray bên phải cần được hoán vị và chuyển sang đường ray bên trái. Mỗi một toa có thể chuyển thẳng sang đường ray bên trái, hay nó có thể chuyển sang đuờng bên cạnh (có vai trò như hàng đợi) và sau này sẽ được chuyển sang đường ray bên trái.
    a. Với n = 3, tìm tất cả nhưng hoán vị nhận được bằng dãy các phép toán trên
    b. Tìm tất cả nhưng hoán vị với n=4, nhưng hoán vị nào là không thể dược
    c. Lặp lại với n=5
    d. Một cách tổng quát, nhưng hoán vị nào của dãy 1, 2, .., n có thể nhận được bằng cách dùng hàng đợi như trên.
    giai:
    câu a:
    C Code:
    1. #include "iostream.h"
    2. #include "conio.h"
    3. #include "stdio.h"
    4. int a[100],b[100],c[100];
    5. int n,dem=0;
    6. FILE *f1,*f2;
    7. int kiemtra(int c[],int m)
    8. { int i,j,k;
    9.   if (n==2) return 1;
    10.   else
    11.   {  for (i=1;i<=n-2;i++)
    12.        for (j=i+1;j<=n-1;j++)
    13.           for (k=j+1;k<=n;k++)
    14.             if (c[i]>c[j] && c[j]>c[k]) return 0;
    15.   }
    16.      return 1;
    17. }
    18. void thietlap()
    19. {int i;
    20.  for (i=1;i<=n;i++)
    21.    {
    22.       a[i]=i;
    23.       b[i]=0;
    24.       c[i]=0;
    25.    }
    26. }
    27. void inmang(int c[],int m)
    28. { int i;
    29.   for (i=1;i<=m;i++)
    30.   { //printf("%5d",c[i]);
    31.     fprintf(f2,"%3d",c[i]);
    32.   }
    33.     fprintf(f2,"%2c",'\n');
    34.     dem++;
    35.   //  cout<<endl;
    36.  
    37. }
    38. void hoanvi(int i)
    39. { int j;
    40.     if (i==n+1)
    41.     { if (kiemtra(c,n)==1)
    42.       inmang(c,n);
    43.     }
    44.     else
    45.       for (j=1;j<=n;j++)
    46.       if (b[j]==0)
    47.      {
    48.            c[i]=a[j];
    49.            b[j]=1;
    50.            hoanvi(i+1);
    51.            b[j]=0;        
    52.      }
    53. }
    54. int main()
    55. {
    56.  /* cout<<"Nhap n: ";
    57.   cin>>n; */
    58.   n=3;
    59.   f2= fopen("caua.out","w");
    60.   fprintf(f2,"Nhung hoan vi co the xay ra :\n\n");
    61.   thietlap();
    62.   hoanvi(1);
    63.   fprintf(f2,"\nCo tat ca %d ket qua !\n",dem);
    64.   fclose(f2);
    65.  // getch();
    66.   return 0;
    67. }
    C Code:
    1. [B][SIZE="6"]caub:[/SIZE][/B]
    2. #include "iostream.h"
    3. #include "conio.h"
    4. #include "stdio.h"
    5. int a[100],b[100],c[100];
    6. int n,dem=0;
    7. FILE *f1,*f2;
    8. int kiemtra(int c[],int m)
    9. { int i,j,k;
    10.   if (n==2) return 0;
    11.   else
    12.   {  for (i=1;i<=n-2;i++)
    13.        for (j=i+1;j<=n-1;j++)
    14.           for (k=j+1;k<=n;k++)
    15.             if (c[i]>c[j] && c[j]>c[k]) return 1;
    16.   }
    17.      return 0;
    18. }
    19. void thietlap()
    20. {
    21.  int i;
    22.  for (i=1;i<=n;i++)
    23.    {
    24.       a[i]=i;
    25.       b[i]=0;
    26.       c[i]=0;
    27.    }
    28. }
    29. void inmang(int c[],int m)
    30. { int i;
    31.   for (i=1;i<=m;i++)
    32.   { //printf("%5d",c[i]);
    33.     fprintf(f2,"%3d",c[i]);
    34.   }
    35.     fprintf(f2,"%2c",'\n');
    36.     dem++;
    37.   //  cout<<endl;
    38.  
    39. }
    40. void hoanvi(int i)
    41. { int j;
    42.     if (i==n+1)
    43.     { if (kiemtra(c,n)==1)
    44.       inmang(c,n);
    45.     }
    46.     else
    47.       for (j=1;j<=n;j++)
    48.       if (b[j]==0)
    49.      {
    50.            c[i]=a[j];
    51.            b[j]=1;
    52.            hoanvi(i+1);
    53.            b[j]=0;        
    54.      }
    55. }
    56. int main()
    57. {
    58.  /* cout<<"Nhap n: ";
    59.   cin>>n; */
    60.   n=4;
    61.   f2= fopen("caub.out","w");
    62.   fprintf(f2,"Nhung hoan vi ko the xay ra :\n\n");
    63.   thietlap();
    64.   hoanvi(1);
    65.   fprintf(f2,"\nCo tat ca %d ket qua !\n",dem);
    66.   fclose(f2);
    67.  // getch();
    68.   return 0;
    69. }
    cau c va d:

    C Code:
    1. #include "iostream.h"
    2. #include "conio.h"
    3. #include "stdio.h"
    4. int a[100],b[100],c[100];
    5. int n,dem=0;
    6. FILE *f1,*f2;
    7. int kiemtra(int c[],int m)
    8. { int i,j,k;
    9.   if (n==2) return 1;
    10.   else
    11.   {  for (i=1;i<=n-2;i++)
    12.        for (j=i+1;j<=n-1;j++)
    13.           for (k=j+1;k<=n;k++)
    14.             if (c[i]>c[j] && c[j]>c[k]) return 0;
    15.   }
    16.      return 1;
    17. }
    18. void thietlap()
    19. {int i;
    20.  for (i=1;i<=n;i++)
    21.    {
    22.       a[i]=i;
    23.       b[i]=0;
    24.       c[i]=0;
    25.    }
    26. }
    27. void inmang(int c[],int m)
    28. { int i;
    29.   for (i=1;i<=m;i++)
    30.   { //printf("%5d",c[i]);
    31.     fprintf(f2,"%3d",c[i]);
    32.   }
    33.     fprintf(f2,"%2c",'\n');
    34.  
    35.   //  cout<<endl;
    36.  
    37. }
    38. void hoanvi(int i)
    39. { int j;
    40.     if (i==n+1)
    41.     { if (kiemtra(c,n)==1)
    42.         {  inmang(c,n);
    43.             dem++;
    44.         }
    45.     }
    46.     else
    47.       for (j=1;j<=n;j++)
    48.       if (b[j]==0)
    49.      {
    50.            c[i]=a[j];
    51.            b[j]=1;
    52.            hoanvi(i+1);
    53.            b[j]=0;        
    54.      }
    55. }
    56. int main()
    57. {
    58.  /* cout<<"Nhap n: ";
    59.   cin>>n; */
    60.   title NHOM 2;
    61.   f1= fopen("in.inp","r");
    62.   fscanf(f1,"%d",&n);
    63.   fclose(f1);
    64.   cout<<"                       BAI TAP LON NHOM 2 "<<endl;
    65.   cout<<" LOP DH23HT02 _ KHOA CNTT _ TRUONG DH NGAN HANG Tp.HCM\n\n"<<endl;
    66.   cout<<" \n CHUONG TRINH DANG TRONG QUA TRINH THUC HIEN ...\n"<<endl;
    67.   f2= fopen("out.out","w");
    68.   fprintf(f2,"Nhung hoan vi co the xay ra :\n\n");
    69.   thietlap();
    70.   hoanvi(1);
    71.   if (n<=0) dem=0;
    72.   fprintf(f2,"\nCo tat ca %d ket qua !\n",dem);
    73.   fclose(f2);
    74.  // getch();
    75.   return 0;
    76. }

    Lưu ý :
    - Thành viên mới không được công khai tiết lộ email
    - Bỏ code vào tag
    - Tiêu đề phải đặt rõ ràng.
    Đã được chỉnh sửa lần cuối bởi meoconlongvang : 26-11-2008 lúc 09:48 PM.

Các đề tài tương tự

  1. Bài tập C++ giup em bài ney đi mấy a.chị
    Gửi bởi whitesuper1 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 8
    Bài viết cuối: 05-11-2012, 07:10 PM
  2. pro giup mình làm bài tập sắp sếp này với:
    Gửi bởi quay_92118 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 27-06-2012, 02:07 PM
  3. giup mình tìm lỗi sai với
    Gửi bởi naruto1991 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 06-05-2010, 08:24 PM
  4. đem số ki tự cua mảng bất kỳ.cac anh chi sủa giup em voi
    Gửi bởi fuji13 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 31-12-2009, 01:28 PM
  5. giup to bai ve DO HOA nhe
    Gửi bởi michiko_dangyeu911 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 0
    Bài viết cuối: 23-11-2008, 09:09 AM

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