01/10/2018, 08:43
Hỏi về hàm đệ quy
sử dụng hàm đệ quy để kiểm tra tính chẵn lẽ của 1 mảng.
Mấy bác giúp em với. thanks
Bài liên quan
sử dụng hàm đệ quy để kiểm tra tính chẵn lẽ của 1 mảng.
Mấy bác giúp em với. thanks
là cho 1 mảng.các phần tử trong mảng phải là các số chẵn, số lẽ liên tiếp nhau. như 1 2 3 2 1
còn nếu như 1 2 3 3 2 thì k phải mảng chẵn lẽ
Thường mình chẳng viết hàm đệ quy bao giờ, khó đọc. Về lý thuyết thì viết bằng vòng for còn vừa dễ nghĩ vừa dễ hiểu hơn.
Đây là code C# mình mới viết, bạn đọc hiểu thuật toán rồi chuyển sang C++ nhé:
thanks bác nhiều…
Bạn tham khảo xem sao
Không up code lời giải @_@!
I am so sorry ~ em lỗi đại ka @@!
Mọi người có thể giải thích cho em các khái niệm khử đệ quy, quay lui,…( mọi người có thể giới thiệu thêm) được không ạ?
Khử đệ quy là loại bỏ đệ quy.
Quy lui là quay lại. @_@!
Khử đệ quy tức là thấy nó viết dưới dạng đệ quy thì tìm một công thức mới, viết lại dưới dạng không đệ quy. Kiểu như hàm kiểm tra chuỗi chẵn lẻ, mình viết được hàm đệ quy là xuất phát từ ý tưởng thông thường (thường là biến vòng for thành đệ quy)
Còn quay lui, giống như là nhiều vòng for lồng nhau chẳng hạn, tức là chạy hết hàng đơn vị thì tăng hàng chục lên 1 rồi hàng đơn vị về 0, chạy hết hàng chục thì tăng hàng trăm lên 1 rồi đưa chục, đơn vị về 0, đảm bảo duyệt hết các trường hợp
Ý em khử là khử như thế nào, quay lui là quay như thế nào đó ạ!
1 Khử đệ quy thì không có cách làm tổng quát.
Tuy nhiên theo mình thì có thể khử bằng cách dùng công thức tương đượng. dùng vòng lặp. hoặc dùng stack. Một số trường hợp nên khử một số nên để yên.
2 Kỹ thuật quay lui thì có lưu đồ rồ bạn có thể tự tìm.
Đại khái có bước khởi tạo trạng thái. Cập nhật trạng thái. Kiểm tra trạng thái. Khôi phục trạng thái.
Gọi đệ quy,
Quay lui chính là đệ quy n-phân (không có suy biến) hiểu được cái đó đã. Khi chạy đệ quy tức là bạn đang duyệt một cây n-phân theo thứ tự nào đó. Tùy vào thứ tự mà bạn hiểu được sơ sơ luồng chạy.
Nếu khử được thành đệ quy đuôi thì tốt vì đệ quy đuôi có thể suy biến dễ dàng.
Các anh có thể giải thích cho em cái code Hoán vị bằng lời được không ạ, cách in ra các hoán vị đó ạ
Bạn dùng 1 biến nguyên để đánh dấu xem đã sinh được hoán vị có bao nhiêu phần tư.
Một mảng trạng thái đánh dấu phần tử đã được chọn hay chưa.
1 Khởi tạo. Số phần tử chọn = 0, và không phần tử nào được chọn.
for { (Mỗi vòng for chọn 1 phần tử.)
2 Chọn 1 phần tử và đánh dấu nó đã chọn cũng như tăng số phần tử đã chọn.
3 Kiểm tra điều kiện kết thúc.
4 Gọi đệ quy.
5 Bỏ trọn phần tử và giảm biến số lượng.
}
Thường bài toán sinh hoán vị hay dùng ánh xạ hơn là gọi đệ quy.
anh ơi, em không biết sinh với ánh xạ là gì, chắc anh hướng dẫn em như đứa mới bắt đầu học lập trình được không ạ?
Chưa học đại học sao bạn :)) Toán cao cấp trường nào chả dạy, cứ từ từ rồi sẽ biết :v
Một ánh xạ thường gặp trong phổ thông trung học là “hàm số”, trong lập trình là “phương thức”/“hàm”
f(x) = y thì x->y là một ánh xạ
Mà có gì bạn cứ Google thì ra hết mà :))
Mai em thi ạ! Em cố suy nghĩ nhưng không sao ra được, mong mọi người cố giúp em đêm nay ạ!
Em mới học lớp 9 thôi ạ
Ủa, lớp 9 mà thì cái gì đệ quy với quay lui v =))