Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 13 kết quả

Đề tài: liệt kê mọi hoán vị của từ COMPUTER

  1. #1
    Ngày gia nhập
    10 2010
    Bài viết
    38

    Mặc định liệt kê mọi hoán vị của từ COMPUTER

    liệt kê mọi hoán vị của từ COMPUTER

  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    PHP Code:
    #include "iostream"
    using namespace std;
    #include "conio.h"

    //COMPUTER
    //C E M O P T R U
    int main()
    {
        
    int a[]={'C','E','M','O','P','R','T','U'},n=8,i,j,x,y;
        
        do 
        {
            for (
    i=0;i<n;i++)
                
    cout<<char(a[i]);
            
    cout<<endl;

            
    i=n-2;
            while(
    i>=0&&a[i]>a[i+1]) i--;
            if (
    i>=0)
            {
                
    j=n-1;
                while (
    a[j]<a[i]) j--;
                
    a[i]^=a[j]^=a[i]^=a[j];

                
    x=i+1;y=n-1;
                while(
    x<ya[x]^=a[y]^=a[x]^=a[y],x++,y--;
            }

        } while (
    i>=0);

        
    getch();

    ^_,^

    Facebook : https://www.facebook.com/langmaninternet

    Bùi Tấn Quang

  3. #3
    Ngày gia nhập
    04 2010
    Bài viết
    4

    bạn ơi có thể giải thích 1 chút không, mình không hiểu lắm ý tưởng :(

  4. #4
    Ngày gia nhập
    06 2010
    Nơi ở
    Nha Trang City
    Bài viết
    495

    Hì, anh @langman "chơi" thế này thì Pó Hand rùi.
    Nhìn code khá cơ bản nhưng Logic phức tạp đấy
    Thế nào nhỉ, cho i giảm dần, mỗi lần giảm đó thì tiến hành đảo chỗ của các phần tử mảng (theo 1 quy luật nào đó) Hì, em cũng chưa Test
    bạn ơi có thể giải thích 1 chút không, mình không hiểu lắm ý tưởng :(
    Thấy có người hỏi câu này là đúng rồi

    Em có làm gì dùng Back Tracking thôi, còn như anh thì ...
    Embedded ARM

  5. #5
    Ngày gia nhập
    04 2010
    Bài viết
    4

    Trích dẫn Nguyên bản được gửi bởi hienclubvn Xem bài viết
    Hì, anh @langman "chơi" thế này thì Pó Hand rùi.
    Nhìn code khá cơ bản nhưng Logic phức tạp đấy
    Thế nào nhỉ, cho i giảm dần, mỗi lần giảm đó thì tiến hành đảo chỗ của các phần tử mảng (theo 1 quy luật nào đó) Hì, em cũng chưa Test

    Thấy có người hỏi câu này là đúng rồi

    Em có làm gì dùng Back Tracking thôi, còn như anh thì ...
    hì test và cho kết quả đi bạn,

  6. #6
    Ngày gia nhập
    10 2010
    Bài viết
    38

    Wink liệt kê mọi hoán vị của từ COMPUTER

    có bạn nào có lời giả ĐỆ QUY không?

  7. #7
    Ngày gia nhập
    06 2010
    Nơi ở
    Nha Trang City
    Bài viết
    495

    Hic, Hoa cả mắt, ko muốn Debug luôn (Để anh @langman nói vậy )
    dùng Back Track cho tiện.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. char A[8]={'C','O','M','P','U','T','E','R'};
    4. char X[8];
    5. int B[8]={0,0,0,0,0,0,0,0}; // danh dau
    6. void Print()
    7. {
    8.     int i;
    9.     for(i=0;i<8;i++) printf("%c",X[i]);
    10.     printf("\n");
    11. }
    12. void Try(int i=0)
    13. {
    14.      int j;
    15.      for(j=0;j<8;j++)
    16.      {
    17.          if(!B[j])  
    18.          {
    19.              X[i] = A[j];
    20.              B[j]=1;
    21.              if(i==7) Print();
    22.              else Try(i+1);  
    23.              B[j]=0;
    24.          }        
    25.      }
    26. }
    27. int main()
    28. {
    29.     Try();
    30.     getch();
    31. }
    Embedded ARM

  8. #8
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    @hienclubvn
    quay lui đệ quy thì ở 4rum này cỡ 30 topic hỏi về bài này rồi
    nên a cho luôn cái vòng lặp cho nhẹ nhàng
    ^_,^

    Facebook : https://www.facebook.com/langmaninternet

    Bùi Tấn Quang

  9. #9
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    đang buồn code thử kiểu C++0x xem sao
    PHP Code:
    #include <iostream>
    #include <algorithm> 
    #include <vector>
    using namespace std;
    #include "conio.h"

    void chemgio(char *xau)
    {
        
    vector<inta;
        
    int n=strlen(xau),i=0,j,x,y;
        
    for_each(xauxau+n, [&a,&i] (char c) {a.push_back(c);}); 
        
    sort(a.begin(),a.end());
        do 
        {
            
    for_each(a.begin(),a.end(),[](char c){cout<<c;});
            
    cout<<endl;
            
    i=n-2;
            while(
    i>=0&&a[i]>a[i+1]) i--;
            if (
    i>=0)
            {
                
    j=n-1;
                while (
    a[j]<a[i]) j--;
                
    swap(a[i],a[j]);
                
    x=i+1;y=n-1;
                while(
    x<yswap(a[x++],a[y--]);
            }

        } while (
    i>=0);
    }
    int main()
    {
        
    chemgio("COMPUTER");
        
    system("pause");

    ^_,^

    Facebook : https://www.facebook.com/langmaninternet

    Bùi Tấn Quang

  10. #10
    Ngày gia nhập
    09 2010
    Bài viết
    207

    Trích dẫn Nguyên bản được gửi bởi langman Xem bài viết
    PHP Code:
    #include "iostream"
    using namespace std;
    #include "conio.h"

    //COMPUTER
    //C E M O P T R U
    int main()
    {
        
    int a[]={'C','E','M','O','P','R','T','U'},n=8,i,j,x,y;
        
        do 
        {
            for (
    i=0;i<n;i++)
                
    cout<<char(a[i]);
            
    cout<<endl;

            
    i=n-2;
            while(
    i>=0&&a[i]>a[i+1]) i--;
            if (
    i>=0)
            {
                
    j=n-1;
                while (
    a[j]<a[i]) j--;
                
    a[i]^=a[j]^=a[i]^=a[j];

                
    x=i+1;y=n-1;
                while(
    x<ya[x]^=a[y]^=a[x]^=a[y],x++,y--;
            }

        } while (
    i>=0);

        
    getch();

    PHP Code:
    a[x]^=a[y]^=a[x]^=a[y],x++,y--; 
    Cái này tương đương với 3 statement.
    PHP Code:
    a[x]^=a[y]^=a[x]^=a[y];
    x++;
    y--; 
    Đúng không nhỉ.
    C++ Code:
    1. while ( ! Love(I, You) )
    2.     try { Send(I, You, ..... ); .....; } catch (LoveException lvex) { fix_error(); }
    3. Marry ( I, You );
    4. while ( true )
    5.     try { ....together; } catch (Exception ex) { remove_bad_things(); }

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

  1. Tài liệu lập trình C The Art of Computer Programming
    Gửi bởi doanlmit trong diễn đàn Tài liệu, ebooks và công cụ
    Trả lời: 15
    Bài viết cuối: 29-07-2016, 05:35 PM
  2. Thành Vinh Computer: Linh kiện vi tính cũ giá rẻ HCM
    Gửi bởi vitinhthanhvinh trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 16
    Bài viết cuối: 06-05-2013, 11:28 PM
  3. Đề xuất Có thể thêm box Computer Science ko?
    Gửi bởi chuong01 trong diễn đàn Ý kiến, đề xuất và khiếu nại
    Trả lời: 0
    Bài viết cuối: 04-05-2010, 06:53 AM
  4. [Computer graphics] Có bạn nào thích lập trình đồ họa không!
    Gửi bởi RadicalLight trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 29
    Bài viết cuối: 14-03-2008, 10:08 PM
  5. [C] Lấy Computer Name
    Gửi bởi HTS trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 22-06-2007, 09:25 PM

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