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

Поділитися
Вставка
  • Опубліковано 17 січ 2025

КОМЕНТАРІ • 43

  • @sangofficial720
    @sangofficial720 Рік тому +1

    Slide dễ nhìn dễ tiếp thu. Giải thích cũng dễ hiểu

  • @baoho1600
    @baoho1600 2 роки тому +1

    Thật sự dễ hiểu sau khi xem video của anh

  • @Xuan_Nhi__
    @Xuan_Nhi__ Рік тому

    dễ hiểu lắm thầy, cảm ơn thầy

  • @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

  • @thuongnguyen3748
    @thuongnguyen3748 8 днів тому

    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  8 днів тому

      cảm ơn bạn đã chia sẽ nhé!

  • @Soang69
    @Soang69 6 місяців тому

    cảm ơn anh rất nhiều

  • @traiphucdep7427
    @traiphucdep7427 2 роки тому +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

  • @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 ^^

  • @nhatbao09hht
    @nhatbao09hht Рік тому +1

    d13 đúng hơn phải duyệt đến n-1 nha

  • @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 ạ?

  • @MinhLe-bi5se
    @MinhLe-bi5se Рік тому +1

    Tham lam này có cần phải vét cạn toàn bộ không gian không ạ

  • @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

  • @Ve_thoi
    @Ve_thoi Рік тому

    xin các extention anh xài 😁😁😁

  • @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😅

  • @TuanAnhNguyen-cs8hz
    @TuanAnhNguyen-cs8hz Рік тому

    a cho e xin slide với ạ

  • @taiphung3549
    @taiphung3549 Рік тому

    sao không dùng sort ạ :))

  • @junxitran8374
    @junxitran8374 2 роки тому +2

    tham lam là có cái nịt nha kaka

  • @thuongnguyen3748
    @thuongnguyen3748 8 днів тому

    Đề bốc đá không đầy đủlafm khó hiểu

  • @DraWoOfficial
    @DraWoOfficial 11 місяців тому

    Bạn phải là admin kênh Daisy cờ vua ko

  • @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

  • @phuocduong9094
    @phuocduong9094 Рік тому +1

    bốc mà anh sai chính tả sao sao ấy

  • @normiedaopho2003
    @normiedaopho2003 11 місяців тому

    nghe tiếng giống admin daisy chess ghê

    • @nopecoder
      @nopecoder  11 місяців тому

      cùng 1 người bạn ạ :>

  • @vunguyenxuan8721
    @vunguyenxuan8721 Рік тому +1

    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 ạ