Chủ đề: Đệ quy phi tuyến
-
26-08-2008, 11:35 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Đệ quy phi tuyến
Mã:long TinhXn (int n) { if(n==0) return 1; long s = 0; for (int i=1; i<=n; i++) s = s + i * i * TinhXn(n-i); return s; }
với: Xo = 1; Xn = n*n*Xo + (n-1)*(n-1)*X1 +...+ 1*1*X(n-1).View more random threads:
- Giúp Giải bài C++ áp dụng hàm dựng ,định nghĩa toán tử !!
- pro giup mình làm bài tập sắp sếp này với:
- Tìm lỗi sai trong bài tập mảng
- Ý tưởng và giải thuật in sinh viên theo MSSV nằm trong file nhi phân?
- Thuật toán ShakerSort
- lỗi ATM Case study code trong C++ How to program
- Bài tập trắc nghiệm C++. Xin giúp đỡ?
- Hỏi về cách truyền dữ liều từ Form vào UserControl trong C#
- hiển thị form thông báo
- Vấn đề về sử dụng DSLK với các class trong C++
-
26-08-2008, 12:26 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
chạy debug đi bạn ơi.
có gì gặp vấn đề nếu chưa hiểu thì đưa lên đây, mọi người trả lời cho.
theo mình chạy debug là cách tốt nhất để học lập trình. bạn sẽ thấy rõ nó chạy ra sao luôn.
-
26-08-2008, 01:23 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi fire_dragon14988Gửi bởi zkday2686
đây là đệ quy phi tuyến
mẫu chung của 1 đệ quy phi tuyến :
Mã nguồn PHP:void ten(...) { for (i=1;i<=n;i++) { //lam 1 viec gi do if <dieu kien dung> { //lam 1 viec gi do } else { goi de quy } } }
Mình chỉ muốn góp ý : đệ quy phi tuyến là 1 phương pháp hay nhưng lại là 1 giải pháp tồi.
Đệ quy nói chung là 1 phương pháp giải bài tập hay nhưng trên khía cạnh chương trình thì là 1 giải pháp tồi .
Hay : lời giải rút gọn và dễ hiểu
Tồi : Nhược điểm của đệ quy : dễ bùng nổ bộ nhớ tạm thời gây ra over head ........và dễ gây ra lỗi do điều kiện chủ chốt.
Ct đệ quy chạy ko tối ưu về bộ nhớ .
trở về bài toán :
Mã nguồn PHP:s = s + i * i * TinhXn(n-i);
trước .
Trong tinhxn(n-i) lại có tinhxn(..) nên nó lại tạm dừng công việc tại đó và tính cái tinhxn() trước cái bên trên.
ok????
-
26-08-2008, 03:48 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mã:void Nhap(int a[], int n) { if(n==0) return; //lệnh return này sẽ trả về giá trị cho hàm là gì vậy? Nhap(a, n-1); printf("Nhap phan tu cho mang: "); scanf("%d",&a[n-1]); }
-
26-08-2008, 04:02 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi fire_dragon14988
-
27-08-2008, 11:31 AM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi fire_dragon14988
bài này là đệ quy tuyến tính.
Để hay hơn nên chuyển điều kiện dừng là :
if (n<=0 )...
tại sao vậy : ?????
để chẳng may do 1 lỗi nào đó ( quá trình nhập chẳng hạn ) ta lại đem sử dụng với n<0 =>>>>>>>>> sẽ gây ra treo máy .
-
27-08-2008, 11:53 AM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Great! Thanks
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...