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

Поделиться
HTML-код
  • Опубликовано: 7 фев 2025

Комментарии • 43

  • @sangofficial720
    @sangofficial720 Год назад +1

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

  • @thuongnguyen3748
    @thuongnguyen3748 Месяц назад +1

    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  29 дней назад

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

  • @baoho1600
    @baoho1600 2 года назад +1

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

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

  • @Xuan_Nhi__
    @Xuan_Nhi__ Год назад

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

  • @Soang69
    @Soang69 6 месяцев назад

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

  • @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 года назад +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 :)

  • @nhatbao09hht
    @nhatbao09hht Год назад +1

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

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

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

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

  • @thuongnguyen3748
    @thuongnguyen3748 Месяц назад

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

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

  • @Ve_thoi
    @Ve_thoi Год назад

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

  • @normiedaopho2003
    @normiedaopho2003 Год назад

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

    • @nopecoder
      @nopecoder  Год назад

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

  • @junxitran8374
    @junxitran8374 2 года назад +2

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

  • @taiphung3549
    @taiphung3549 Год назад

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

  • @TuanAnhNguyen-cs8hz
    @TuanAnhNguyen-cs8hz Год назад

    a cho e xin slide với ạ

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

  • @vunguyenxuan8721
    @vunguyenxuan8721 Год назад +1

    nghe tiếng bàn phím khó chịu thật sự

  • @DraWoOfficial
    @DraWoOfficial Год назад

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

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