Code Python #13 – Dùng đệ quy tính tổ hợp C(n,k) trong python. source Xem ngay video Let's Code Python #13: Dùng đệ quy tính tổ hợp C(n,k) trong python Code Python #13 – Dùng đệ quy tính tổ hợp C(n,k) trong python. “Let's Code Python #13: Dùng đệ quy tính tổ hợp C(n,k) trong python “, được lấy từ nguồn: https://www.youtube.com/watch?v=cII7yfn9GFo Tags của Let's Code Python #13: Dùng đệ quy tính tổ hợp C(n,k) trong python: #Let39s #Code #Python #Dùng #đệ #quy #tính #tổ #hợp #Cnk #trong #python Bài viết Let's Code Python #13: Dùng đệ quy tính tổ hợp C(n,k) trong python có nội dung như sau: Code Python #13 – Dùng đệ quy tính tổ hợp C(n,k) trong python. Từ khóa của Let's Code Python #13: Dùng đệ quy tính tổ hợp C(n,k) trong python: tổ hợp Thông tin khác của Let's Code Python #13: Dùng đệ quy tính tổ hợp C(n,k) trong python: Cảm ơn bạn đã xem video: Let's Code Python #13: Dùng đệ quy tính tổ hợp C(n,k) trong python. About The Author Viết một chương trình tính giai thừa của một số nguyên dương n. Với n được nhập từ bàn phím. Định nghĩa giai thừa: giai thừa của 1 số là tích các số liên tiếp từ 1 đến số đó. Trường hợp đặc biệt, giai thừa của 0 và 1 là 1. Ví dụ, n = 8 thì kết quả đầu ra phải là 1*2*3*4*5*6*7*8 = 40320. Có 2 cách để viết chương trình tính giai thừa trong python:
1. Tính giai thừa không sử dụng đệ quyVí dụ chương trình tính giai thừa trong python không sử dụng phương pháp đệ quy: Code mẫu: tính giai thừa không sử dụng hàm đệ quy """ * tinh giai thua * * @author viettuts.vn * @param n: so nguyen duong * @return giai thua cua so n """ def tinhgiaithua(n): giai_thua = 1; if (n == 0 or n == 1): return giai_thua; else: for i in range(2, n + 1): giai_thua = giai_thua * i; return giai_thua; n = int(input("Nhập số nguyên dương n = ")); print("Giai thừa của", n, "là", tinhgiaithua(n)); Kết quả: Nhập số nguyên dương n = 10 Giai thừa của 10 là 3628800 2. Tính giai thừa có sử dụng đệ quyVí dụ chương trình tính giai thừa trong python có sử dụng phương pháp đệ quy: Code mẫu: tính giai thừa sử dụng hàm đệ quy n = int(input("Nhập số cần tính giai thừa: ")) def giaiThua(n): if n == 0: return 1 return n * giaiThua(n - 1) print (giaiThua(n)) Kết quả: Nhập số cần tính giai thừa: 8 40320 Sau khi đã giải được 20 Bài tập Python cơ bản có lời giải, mời bạn tiếp tục thử sức các bài tập Python chỉ sử dụng vòng lặp và các kiểu dữ liệu cơ bản như kiểu danh sách Bài 1. [Đại học Thái Nguyên 2000] Từ các chữ số 1; 2; 3 có thể lập được bao nhiêu số tự nhiên gồm 5 chữ số có mặt đủ 3 chữ số nói trên? Đáp số: 150 số. Hướng dẫn. Đầu tiên sử dụng 5 vòng lặp để tạo một danh sách tất cả các số tự nhiên gồm 5 chữ số được tạo thành từ các chữ số 1, 2, 3. Sau đó duyệt qua tất cả các phần tử của danh sách này và dùng hàm
membership numbers = ['1', '2', '3'] results = [] for a in numbers: for b in numbers: for c in numbers: for d in numbers: for e in numbers: # results.append([a,b,c,d,e]) results.append(a+b+c+d+e) count = 1 for temp in results: # print(temp) if ('1' in temp) and ('2' in temp) and ('3' in temp): print(str(count) +': '+temp) count +=1 Bài 2. Có bao nhiêu số tự nhiên gồm 5 chữ số và chia hết cho 7. Đáp số: 12857 số. Hướng dẫn. Sử dụng một biến đếm count = 0 for i in range(10000, 99999 + 1): if (i % 7 == 0): count += 1 print(str(count) + ': ' + str(i)) Bài 3. Một em bé có thể mang họ cha là Nguyễn, hoặc họ mẹ là Lê; tên đệm có thể là Văn, Hữu hoặc Đình; tên có thể là Nhân, Nghĩa, Trí hoặc Dũng. Hỏi có bao nhiêu cách đặt tên cho bé? Đáp số. Có 24 cách đặt tên. bien_dem = 1 ho = ['Nguyễn', 'Lê'] dem = ['Văn', 'Hữu', 'Đình'] ten = ['Nhân', 'Nghĩa', 'Trí', 'Dũng'] for h in ho: for d in dem: for t in ten: print(str(bien_dem) + ': ' + h + ' ' + d + ' ' + t) bien_dem += 1 Bài 4. [Đại học An Ninh 1997] Từ các chữ số từ 0 đến 6 có thể lập được bao nhiêu số tự nhiên chẵn gồm 3 chữ số khác nhau? Nếu sử dụng kiểu dữ liệu tập hợp numbers_even = {'0', '2', '4', '6'} numbers_odd = {'1', '3', '5'} numbers = numbers_even | numbers_odd results = [] count = 0 for c in numbers_even: for a in (numbers - {'0'}): if (a != c): for b in numbers: if ( b!=a and b!= c): count += 1 print(str(count) + ': ' +a+b+c) Cách khác, chúng ta không sử dụng kiểu dữ liệu tập hợp thì sẽ in ra rất cả các số tự nhiên chẵn sau đó loại đi các số mà có chữ số giống nhau: count = 0 results =[] for a in range(1,7): for b in range(0,7): for c in {0,2,4,6}: results.append(str(a)+str(b)+str(c)) temp = [] for x in results: if not((x[0] == x[1]) or (x[0]==x[2]) or (x[1]==x[2])): temp.append(x) print(len(temp)) print(temp) Bài 5. Từ các chữ số 0,1,2,3,4,5,6 có thể lập được bao nhiêu số tự nhiên gồm 3 chữ số khác nhau và phải có mặt chữ số 5? Đáp số: 80 số. count = 0 results =[] for a in range(1,7): for b in range(0,7): for c in range(0,7): results.append(str(a)+str(b)+str(c)) temp = [] for x in results: if not((x[0] == x[1]) or (x[0]==x[2]) or (x[1]==x[2])) and ('5' in x): temp.append(x) print(len(temp)) print(temp) |