DIỄN ĐÀN TOÁN TIN
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.



 
CỔNG ĐHQGHN  XEM ĐIỂM  Trang ChínhTrang Chính  Latest imagesLatest images  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  
Bài gửi sau cùng
Bài gửiNgười gửiThời gian
Happy new year 2013 Sat Dec 29, 2012 3:45 pm
Lâu rùi anh không thấy chú nào vào diễn đàn nữa Mon May 07, 2012 9:26 am
Happy new year 2012. Mon Jan 30, 2012 5:05 am
[color=red]Tin "Cực Hot" cho tất cả các bạn và người thân[/color] Wed Oct 05, 2011 4:44 am
Cách đổi lịch âm dương Mon Oct 03, 2011 2:24 am
lâu lâu rùi không lên diễn đàn lớp mình chém gió Fri Sep 30, 2011 9:44 am
TRIỂN LÃM DU HỌC NHẬT BẢN 2010 Vừa học vừa làm thu nhập 1700USD/1 tháng Wed Sep 28, 2011 8:00 am
Vừa đi làm, vừa làm cộng tác viên kiếm tiền... Sun Aug 07, 2011 11:37 am
:(((((((((((((((((((((((((((((((((((((((((((((((((((((((( Sat Aug 06, 2011 5:05 am
Khánh thành website học tiếng anh của Chiến Fri Aug 05, 2011 10:30 am
Funy : Counter strike =)) Mon Jul 25, 2011 10:43 am
Lịch học hè Fri Jul 08, 2011 4:11 pm
Tổng hợp ảnh 24/06/2011 - Lễ tốt nghiệp Wed Jul 06, 2011 9:17 am
Câu lạc bộ tiếng anh của Chiến - cơ hội giao lưu người bản xứ Tue Jun 28, 2011 9:41 pm
[K52A3] CÔNG BỐ TÀI CHÍNH QUỸ LỚP (10/03/2011) Thu Jun 23, 2011 5:35 pm
[VPK] DANH SÁCH TỐT NGHIỆP CHÍNH THỨC Thu Jun 23, 2011 5:31 pm
[VPK] LỄ TRAO BẰNG TỐT NGHIỆP Wed Jun 22, 2011 11:59 am
Pic 21/06 (new and hot) Wed Jun 22, 2011 10:28 am
Gameloft Hà Nội tuyển dụng Mon Jun 20, 2011 8:18 pm
[ CTCTSV ] 21 THÁNG 6 ĐI LẤY HỒ SƠ TỐT NGHIỆP Sat Jun 18, 2011 9:38 am

 

 Thuật toán 1.2 C

Go down 
2 posters
Tác giảThông điệp
pham_hanh
:)) Hàng khủng :))
:)) Hàng khủng :))
pham_hanh


Tổng số bài gửi : 167
Sinh nhật : 10/11/1989

Thuật toán 1.2 C Empty
Bài gửiTiêu đề: Thuật toán 1.2 C   Thuật toán 1.2 C EmptyThu Sep 30, 2010 4:49 am

vẫn chưa hỉu thuật toán lắm :s4 :s3 :s36
Code:
#include<conio.h>
#include<stdio.h>

int n;
int p[50];
void doicho(int i, int j)
{
    int tg;
    tg = p[i];
    p[i] = p[j];
    p[j]= tg;
 }

void dao(int m)
{
    int i, j;
    i= 1; j= m;
    while(i<j)
    {
              doicho(i, j);
              i =++i;
              j =--j;
             
    }
 }
 
 void tdnguoc(int m)
 {
      int i;
      if(m == 1)
      {
      for(i=1; i<=n; i++)
      printf("  %d", p[i]);
     
      printf("\n\n");
      }
      else
      {
          for(i = 1; i<=m; i++)
          {
                tdnguoc(m-1);
                if(i<m)
                {
                      doicho(i, m);
                      dao(m-1);
                      }
                }
      }
  }
 
  int main()
  {
      int i;
      printf("\nNhap n: ");
      scanf("%d", &n);
      for(i =1; i<=n; i++)
      p[i] = i;
      tdnguoc(n);
      getch();
  }

bác nào hỉu cái chỗ này giải thích cho em với
Code:

      else
      {
          for(i = 1; i<=m; i++)
          {
                tdnguoc(m-1);
                if(i<m)
                {
                      doicho(i, m);
                      dao(m-1);
                      }
                }
      }
Về Đầu Trang Go down
nguyenhien_hus
Quan Chi Huyện
Quan Chi Huyện
nguyenhien_hus


Tổng số bài gửi : 32
Sinh nhật : 16/10/1989

Thuật toán 1.2 C Empty
Bài gửiTiêu đề: Re: Thuật toán 1.2 C   Thuật toán 1.2 C EmptyTue Oct 26, 2010 6:02 pm

Những ai chưa hiểu rõ về thuật toán từ điển ngược
xin vui lòng liên hệ Hiên nguyenhien_hus@yahoo.com để lấy tài liệu
Về Đầu Trang Go down
nguyenhien_hus
Quan Chi Huyện
Quan Chi Huyện
nguyenhien_hus


Tổng số bài gửi : 32
Sinh nhật : 16/10/1989

Thuật toán 1.2 C Empty
Bài gửiTiêu đề: Re: Thuật toán 1.2 C   Thuật toán 1.2 C EmptyTue Oct 26, 2010 6:03 pm

[Các bước thực hiện chương trình như sau:
Với n=3.

Chương trình chính gọi TDNguoc(3);

Do m=3 khác 1 nên ta sẽ thực hiện vào vòng for với i từ 1 đến 3:
i=1 làm 2 việc theo thứ tự:
* Thứ nhất: gọi TDN(2)
do m=2 khác 1 nên vào vòng for:
i’=1 làm 2 việc:
Thứ nhất: TDNguoc(1) tức in hv: 1 2 3
Thứ hai: i’=1<2 nên:
- đổi chỗ p[1] và p[2] -> 2 1 3
- gọi DAO(1) được 2 1 3
i’=2 làm 2 việc:
Thứ nhất: TDNguoc(1) tức in hv: 2 1 3
Thứ hai: i’=2 không <2 thoát vònglặpi’
* Thứ hai: i=1<3 làm 2 việc:
Thứ nhất: đổi chỗ p[1]&p[3] -> 3 1 2
Thứ hai: gọi hàm DAO(2) được 1 3 2

i=2 làm 2 việc theo thứ tự:
* Thứ nhất: gọi TDN(2)
do m=2 khác 1 nên vào vòng for:
i’=1 làm 2 việc:
Thứ nhất: TDNguoc(1) tức in hv: 1 3 2
Thứ hai: i’=1<2 nên:
- đổi chỗ p[1] và p[2] -> 3 1 2
- gọi DAO(1) được 3 1 2
i’=2 làm 2 việc:
Thứ nhất: TDNguoc(1) tức in hv: 3 1 2
Thứ hai: i’=2 không <2 thoát vònglặpi’
* Thứ hai: i=2<3 làm 2 việc:
Thứ nhất: đổi chỗ p[2]&p[3] -> 3 2 1
Thứ hai: gọi hàm DAO(2) được 2 3 1
i=3 làm 2 việc theo thứ tự sau:
* Thứ nhất: gọi TDN(2)
do m=2 khác 1 nên vào vòng for:
i’=1 làm 2 việc:
Thứ nhất: TDNguoc(1) tức in hv: 2 3 1
Thứ hai: i’=1<2 nên:
- đổi chỗ p[1] và p[2] -> 3 2 1
- gọi DAO(1) được 3 2 1
i’=2 làm 2 việc:
Thứ nhất: TDNguoc(1) tức in hv: 3 2 1
Thứ hai: i’=2 không <2 thoát vònglặpi’
* Thứ hai: i=3 không <3 nên ta thoát khỏi vòng lặp của i và kết thúc chương trình ở màn hình ta đã in ra đủ 6 hoán vị của tập 3 phần tử theo thứ tự từ điển ngược:
1 2 3
2 1 3
1 3 2
3 1 2
2 3 1
3 2 1

]
Về Đầu Trang Go down
nguyenhien_hus
Quan Chi Huyện
Quan Chi Huyện
nguyenhien_hus


Tổng số bài gửi : 32
Sinh nhật : 16/10/1989

Thuật toán 1.2 C Empty
Bài gửiTiêu đề: Re: Thuật toán 1.2 C   Thuật toán 1.2 C EmptyTue Oct 26, 2010 6:04 pm

Chúc các bạn tuần sau thi tốt Tổ Hợp
Về Đầu Trang Go down
Sponsored content





Thuật toán 1.2 C Empty
Bài gửiTiêu đề: Re: Thuật toán 1.2 C   Thuật toán 1.2 C Empty

Về Đầu Trang Go down
 
Thuật toán 1.2 C
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» thuật toán RSA
» Thi giữa kì TKĐG Thuật Toán
» Bài tập thiết kế và đánh giá thuật toán lần 1
» Đề cương ôn tập thiết kế thuật toán
» Code Demo Thuật toán 1.1

Permissions in this forum:Bạn không có quyền trả lời bài viết
DIỄN ĐÀN TOÁN TIN :: CÁC VẤN ĐỀ CHUNG :: KÌ HỌC 1 NĂM THỨ 4 :: Tổ hợp-
Chuyển đến 
Free forum | ©phpBB | Free forum support | Báo cáo lạm dụng | Thảo luận mới nhất