[Bài 14] Thuật toán tham lam | Greedy algorithm

  Рет қаралды 25,625

Cùng Học Lập Trình

Cùng Học Lập Trình

Күн бұрын

Пікірлер: 43
@sangofficial720
@sangofficial720 Жыл бұрын
Slide dễ nhìn dễ tiếp thu. Giải thích cũng dễ hiểu
@baoho1600
@baoho1600 2 жыл бұрын
Thật sự dễ hiểu sau khi xem video của anh
@nopecoder
@nopecoder 2 жыл бұрын
@@
@Xuan_Nhi__
@Xuan_Nhi__ Жыл бұрын
dễ hiểu lắm thầy, cảm ơn thầy
@thuongnguyen3748
@thuongnguyen3748 13 күн бұрын
Bài toán bốc đá là một bài toán thuộc lĩnh vực lý thuyết trò chơi, thường được dùng để rèn luyện tư duy logic. Để giải thích rõ ràng, ta bắt đầu với định nghĩa cơ bản: Định nghĩa bài toán bốc đá: Có một đống đá gồm viên (số lượng tùy ý). Hai người chơi lần lượt bốc đá. Mỗi lượt, một người chơi có thể bốc từ 1 đến k viên (với là số lượng tối đa được quy định). Người chơi nào không thể bốc được viên đá nào (đến lượt mà đống đá trống) sẽ thua. Mục tiêu: Mỗi người chơi cần suy nghĩ chiến lược để ép đối phương thua. --- Ví dụ cụ thể: Giả sử có 10 viên đá () và mỗi lượt bốc tối đa viên. Hai người chơi là A và B: 1. Lượt 1 (A): A bốc 2 viên → còn 8 viên. 2. Lượt 2 (B): B bốc 3 viên → còn 5 viên. 3. Lượt 3 (A): A bốc 1 viên → còn 4 viên. 4. Lượt 4 (B): B bốc 3 viên → còn 1 viên. 5. Lượt 5 (A): A bốc 1 viên → hết đá. B thua. --- Cách giải bài toán bốc đá: 1. Phân tích trạng thái "thắng" và "thua": Nếu số viên đá còn lại là , người chơi đang đến lượt sẽ thua. Nếu số viên đá còn lại là và bạn có thể làm đối thủ rơi vào trạng thái trong lượt kế tiếp, bạn sẽ thắng. 2. Chiến lược: Nếu bạn để lại số viên đá là bội số của (tức là ), bạn sẽ đẩy đối thủ vào thế bất lợi. Ví dụ: Nếu , bạn muốn để lại . 3. Ứng dụng vào bài toán: Lượt đầu, cố gắng bốc sao cho sau lượt bốc còn lại số đá là bội số của . --- Nếu bạn cần giải thích chi tiết hơn hoặc có ví dụ cụ thể, cứ hỏi nhé!
@nopecoder
@nopecoder 13 күн бұрын
cảm ơn bạn đã chia sẽ nhé!
@Soang69
@Soang69 6 ай бұрын
cảm ơn anh rất nhiều
@tienho123
@tienho123 10 ай бұрын
4:45 ở vòng lặp 1, điều kiện dừng n - 1 nữa sẽ tối ưu hơn
@ucHoang-fd5bk
@ucHoang-fd5bk Жыл бұрын
Hi anh. Ở bài toán bốc sỏi hàm UserPlay nếu người dùng nhập sai số đá thì n sẽ trừ cả số lần nhập sai và số lần đúng vì anh đang gọi lại UserPlay. Sử dụng while thay thế cho if gọi lại hàm có lẽ hợp lý hơn. Anh thử kiểm tra lại nhé!
@vantang8839
@vantang8839 Жыл бұрын
Hmm, mình nghĩ if là hợp lý á bạn, tại dùng đệ quy á, nên lặp đến khi không sai nữa thì thui
@ucHoang-fd5bk
@ucHoang-fd5bk Жыл бұрын
@@vantang8839 đúng là nó sẽ lặp cho đến khi không sai nữa nhưng mà trước khi lặp nó sẽ trừ đi số đá đã nhập sai. nếu bạn chưa hiểu có thể ib mình giải thích ^^
@traiphucdep7427
@traiphucdep7427 2 жыл бұрын
Nhập vào số đá mà bạn muốn chơi )) học hiểu mà cười vaii ad ạ
@nopecoder
@nopecoder 2 жыл бұрын
chúng ta trong sáng lên nào :)
@mykun8737
@mykun8737 Жыл бұрын
bạn làm thêm thuật toán nhánh cận được ko, slide bạn làm chỉn chu
@vietdungngo1437
@vietdungngo1437 Жыл бұрын
A ơi cho e hỏi, trong bài toán mua sách, nếu đề bài cho thêm hình thức khuyến mại nữa là giảm tối đa một phần ba giá của từng sản phẩm và mỗi sản phẩm chỉ được chọn 1 hình thức khuyến mại thì làm như nào ạ?
@mykun8737
@mykun8737 Жыл бұрын
bạn cho mình hỏi, thuật toán tham lam, thì có phải có trường hợp không cho lời giải chính xác không, nếu có thì trường hợp ntn ạ?
@nopecoder
@nopecoder Жыл бұрын
sẽ có trường hợp sai nhé bạn. Ví dụ như bài toán đổi tiền. Bạn có n tiền và cần đổi tiền lẻ 50 40 và 10. Nếu làm theo tham lam thì với 80 bạn cần 1-50 và 3-10 nhưng đáp án lại là 2-40. Đây chỉ là một ví dụ đơn giản hihi
@MinhLe-bi5se
@MinhLe-bi5se Жыл бұрын
Tham lam này có cần phải vét cạn toàn bộ không gian không ạ
@nopecoder
@nopecoder Жыл бұрын
không em nhé
@mylover1718
@mylover1718 Жыл бұрын
thầy ơi thầy có thể cho em xin file code để em chuyển sang python dc ko ạ , huhu. em đang học python mà không tìm dc ng giảng mảng python ạ. em cảm ơn thầy nhiều
@DatTran-xg7th
@DatTran-xg7th Жыл бұрын
Em có bài toán như này. Nhập vào 1 tam giác, tính tổng các số từ đỉnh xuống đáy tâm giác biết rằng khi xuống dưới 1 lớp có thể cộng cho số trái hoặc số phải. In ra tổng lớn nhất. Cái này dùng thuật toán nào anh😅
@foxtran1212
@foxtran1212 Жыл бұрын
ok
@Ve_thoi
@Ve_thoi Жыл бұрын
xin các extention anh xài 😁😁😁
@nhatbao09hht
@nhatbao09hht Жыл бұрын
d13 đúng hơn phải duyệt đến n-1 nha
@nhatbao09hht
@nhatbao09hht Жыл бұрын
tầm phút thứ 5
@normiedaopho2003
@normiedaopho2003 Жыл бұрын
đều đúng, chỉ là n - 1 tiết kiệm hơn
@uctinlemai6370
@uctinlemai6370 Жыл бұрын
ad nói không thì em hiểu nhưng mà tự nhiên xuống code bắt đầu em lú rồi //9, 6, 5, 3, 2, 2, 1 /* * 9 % 3 == 0 thì là 9 * 6 6 * ans = ans(0) + a[3] = 5 * 3 * ans = 5 + a[5] = 7 * ans = 7 + a[6] = 9 * ans = 9 + a[7] = 10 */ đúng là theo máy nó 21 nhưng em không hiểu tại sao khi e vẽ tay ra thì lại là 18 ???
@uyletruong9091
@uyletruong9091 Жыл бұрын
Cái 9%3 ở kia là bạn sai rồi đó là i%3 là số thứ tự của mảng ý bạn :V
@hanhthien2948
@hanhthien2948 Жыл бұрын
Chắc bạn chọn số bắt đầu mảng là 0 nếu v thì là (i+1)%3 mới đúng. À mà lấy số thứ tự mảng chia chứ ko lấy phần tử của mảng chia nha
@thuongnguyen3748
@thuongnguyen3748 13 күн бұрын
Đề bốc đá không đầy đủlafm khó hiểu
@TuanAnhNguyen-cs8hz
@TuanAnhNguyen-cs8hz Жыл бұрын
a cho e xin slide với ạ
@normiedaopho2003
@normiedaopho2003 Жыл бұрын
nghe tiếng giống admin daisy chess ghê
@nopecoder
@nopecoder 11 ай бұрын
cùng 1 người bạn ạ :>
@junxitran8374
@junxitran8374 2 жыл бұрын
tham lam là có cái nịt nha kaka
@nopecoder
@nopecoder 2 жыл бұрын
^^
@taiphung3549
@taiphung3549 Жыл бұрын
sao không dùng sort ạ :))
@DraWoOfficial
@DraWoOfficial 11 ай бұрын
Bạn phải là admin kênh Daisy cờ vua ko
@nopecoder
@nopecoder 7 ай бұрын
đúng rồi
@phuocduong9094
@phuocduong9094 Жыл бұрын
bốc mà anh sai chính tả sao sao ấy
@vunguyenxuan8721
@vunguyenxuan8721 Жыл бұрын
nghe tiếng bàn phím khó chịu thật sự
@hoangminhhung4627
@hoangminhhung4627 2 жыл бұрын
tiếng bàn phím hơi ồn á a @@
@nopecoder
@nopecoder 2 жыл бұрын
hihi sorry em, anh đã đổi bàn phím rồi. nhưng mấy video sau vẫn con là bàn phím cũ :
@hoangminhhung4627
@hoangminhhung4627 2 жыл бұрын
@@nopecoder vâng ạ
[Bài 15] Cấu trúc mảng động và vector |  Dynamic array and Vector
8:05
Support each other🤝
00:31
ISSEI / いっせい
Рет қаралды 81 МЛН
Quilt Challenge, No Skills, Just Luck#Funnyfamily #Partygames #Funny
00:32
Family Games Media
Рет қаралды 55 МЛН
Quando A Diferença De Altura É Muito Grande 😲😂
00:12
Mari Maria
Рет қаралды 45 МЛН
Học thuật toán quay lui siêu dễ hiểu.
20:05
Cùng Học Lập Trình
Рет қаралды 342
Mastering Dynamic Programming - How to solve any interview problem (Part 1)
19:41
[Ứng dụng thuật toán] Bài 3 - Giải thuật tham lam
25:31
E-Learning PTIT
Рет қаралды 11 М.
Tự làm trò chơi Pokemon với chỉ 100 dòng code.
27:13
Cùng Học Lập Trình
Рет қаралды 630
Tips Ôn Luyện Leetcode A-Z: Giảng viên Top4 Leetcode
1:21:11
Thuật toán sắp xếp nhanh - Quick Sort
26:03
Minh Nguyen Coder
Рет қаралды 12 М.
Giải Thuật Tham Lam |  Mèo Lập Trình
13:09
Mèo Lập Trình
Рет қаралды 2,9 М.
Support each other🤝
00:31
ISSEI / いっせい
Рет қаралды 81 МЛН