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

Đề tài: Lập trình C | Dùng đệ quy để In ra các hoán vị

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    4

    Mặc định Lập trình C | Dùng đệ quy để In ra các hoán vị

    Các bác giúp em bài này với:
    Dùng hàm đệ quy để in ra các hoán vị của tập {1,2,3,....n}

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

    Bạn tìm đọc thuật toán sinh kế tiếp hoặc thuật toán quay lui đi nhé. Đọc đi cũng không khó lắm đâu.
    Núi vẫn cứ sống mà không cần đến mây
    Sông vẫn cứ chảy mà lòng em đã đổi thay

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

    đọc ở đâu hả anh.Cho em link được ko ạ

  4. #4
    Ngày gia nhập
    10 2008
    Bài viết
    14

    Cậu không bik cách search trên mạng àh. Ít ra cũng phải có tinh thần học tập đi chứ. Thuật toán cơ bản của phép liệt kê không biết thế mà lại đi làm một bài liệt kê. Có mạng thì phải tự đi mà tìm tài liệu đi chứ sao lại cứ chờ người khác mang đến thế nhỉ.
    Bạn bật trình duyệt web lên và gõ google.com sau đó gõ vào đó cụm từ nào đó đến khi tìm thấy cái bạn mún. Bạn có hiểu không. Trước khi hỏi thì phải xem trong 4rum có không cái đã nhé.
    Chưa đọc nội quy.
    Mod del dùm
    Núi vẫn cứ sống mà không cần đến mây
    Sông vẫn cứ chảy mà lòng em đã đổi thay

  5. #5
    Ngày gia nhập
    11 2007
    Bài viết
    6

    Code này mình tự viết thôi,đệ quy còn cách khác nữa.
    còn cách không đệ quy http://forums.congdongcviet.com/showthread.php?t=17489
    Code:
     void findSwap(int a[],int index,int length,int list[],int iList,FILE* file)
     {
           if (length > 0)
           {
               list[iList++] = a[index];
               length--;       //delete a[index]
               int b[length];
               int i = 0,j = 0;            
               while (j < length)
               {         		
                   	if (i == index) i++; 
                    b[j++] = a[i++];
               }
    		   for (int k = 0; k <length; k++)
             	   findSwap(b, k, length, list, iList, file);
           }
           if(length == 0)
           {      	
           		list[iList] = a[0];
           		for(int t=0 ; t< iList ; t++)
           			fprintf(file,"%d",list[t]);		
    			fprintf(file,"\n");       	
           }
     }
     void main()
     {
    	FILE* file;
    	int a[]={1,2,3,4,5,6,7,8};
    	file = fopen("D:\\Hoanvi.txt","w");
     	int length =9;
    	int list[length];
     	int iList = 0;
       	for (int i = 0; i < length ; i++)
               findSwap(a, i, length, list, iList, file);  
        fclose(file);
        cout<<"cac so hoan vi da duoc luu vao D:\\hoanvi.txt \n\n\n";
     }

  6. #6
    Ngày gia nhập
    03 2009
    Bài viết
    4

    Mặc định Lập trình C | Dùng đệ quy để In ra các hoán vị

    Trích dẫn Nguyên bản được gửi bởi p.o.l Xem bài viết
    Cậu không bik cách search trên mạng àh. Ít ra cũng phải có tinh thần học tập đi chứ. Thuật toán cơ bản của phép liệt kê không biết thế mà lại đi làm một bài liệt kê. Có mạng thì phải tự đi mà tìm tài liệu đi chứ sao lại cứ chờ người khác mang đến thế nhỉ.
    Bạn bật trình duyệt web lên và gõ google.com sau đó gõ vào đó cụm từ nào đó đến khi tìm thấy cái bạn mún. Bạn có hiểu không. Trước khi hỏi thì phải xem trong 4rum có không cái đã nhé.
    Chưa đọc nội quy.
    Mod del dùm
    Nói thế thì ông bạn này có hiểu quy tắc search trong forum hay google ko mà nói.Có khi mình gõ y nguyên 1 đoạn trong dấu " " vừa lấy từ 1 trang web mà ko có được nữa là.Tương tự với forum thôi.Cái gì cũng chém là tìm được trên mạng nhưng thực ra ko biết gì thì đừng có nói

  7. #7
    Ngày gia nhập
    03 2009
    Bài viết
    4

    Trích dẫn Nguyên bản được gửi bởi Tranduchung Xem bài viết
    Code này mình tự viết thôi,đệ quy còn cách khác nữa.
    còn cách không đệ quy http://forums.congdongcviet.com/showthread.php?t=17489
    Code:
     void findSwap(int a[],int index,int length,int list[],int iList,FILE* file)
     {
           if (length > 0)
           {
               list[iList++] = a[index];
               length--;       //delete a[index]
               int b[length];
               int i = 0,j = 0;            
               while (j < length)
               {         		
                   	if (i == index) i++; 
                    b[j++] = a[i++];
               }
    		   for (int k = 0; k <length; k++)
             	   findSwap(b, k, length, list, iList, file);
           }
           if(length == 0)
           {      	
           		list[iList] = a[0];
           		for(int t=0 ; t< iList ; t++)
           			fprintf(file,"%d",list[t]);		
    			fprintf(file,"\n");       	
           }
     }
     void main()
     {
    	FILE* file;
    	int a[]={1,2,3,4,5,6,7,8};
    	file = fopen("D:\\Hoanvi.txt","w");
     	int length =9;
    	int list[length];
     	int iList = 0;
       	for (int i = 0; i < length ; i++)
               findSwap(a, i, length, list, iList, file);  
        fclose(file);
        cout<<"cac so hoan vi da duoc luu vao D:\\hoanvi.txt \n\n\n";
     }
    cám ơn bạn nhiều

  8. #8
    Ngày gia nhập
    05 2008
    Bài viết
    224

    đúng là ko phải cái gì cũng search là ra nhưng những bài này thuộc loại đơn giản , không phải tìm trên mạng , gần như sách nào cũng có , dạy về đệ quy quay lui thầy nào cũng dậy bài này . vậy thì daitavuong92 cần xem lại , người ta khuyên bạn search cũng là muốn giúp bạn thôi .
    các bạn có thể tham khảo 1 số bài tại blog của mình :
    http://yume.timnhanh.com/cafelanh
    Em có thấy nắng vàng kỷ niệm
    Hạ ngồi ru thanh thản những môi cười
    Thuở ngồi ngóng tay choàng tay nỗi nhớ
    Vin tay vào tháng năm chơi vơi...

  9. #9
    Ngày gia nhập
    02 2009
    Bài viết
    3

    Code:
    #include<iostream>
    using namespace std;
    int phantu[10];
    int n;
    int kt[10];
    void hoanvi(int step, int phantu[]){
    	if(step==n){
    		for(int i=0;i<n;i++){
    			cout<<phantu[i]<<" ";
    		}
    		cout<<endl;
    	}
    	
    	else{
    		for(int i=0; i<n; i++){
    			if(kt[i]){
    				phantu[step]= i+1;
    				kt[i] =0;
    				hoanvi(step+1, phantu);
    				kt[i]= 1;
    			}
    		}	
    	}
    }
    	int main(){
    		cin>>n;
    		for(int i=0; i<n;i++){
    			kt[i] =1;
    		}
    		hoanvi(0, phantu);
    		system("pause");
    	}

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

  1. Bán MT Hoàng Diệu 4x21 8,3 tỷ
    Gửi bởi nadareal trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 16-11-2012, 04:07 PM
  2. Bán MT Hoàng Diệu 4x21 8,3 tỷ
    Gửi bởi nadareal trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 16-11-2012, 09:38 AM
  3. Bán MT Hoàng Diệu 4x21 8,3 tỷ
    Gửi bởi nadareal trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 05-11-2012, 10:28 AM
  4. Bán MT Hoàng Diệu 4x21 8,3 tỷ
    Gửi bởi nadareal trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 03-11-2012, 11:03 AM
  5. Sự cố Không nhận được mail kích hoạt
    Gửi bởi bang.nguyen47 trong diễn đàn Ý kiến, đề xuất và khiếu nại
    Trả lời: 3
    Bài viết cuối: 25-04-2011, 02:21 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