首页
学习
活动
专区
圈层
工具
发布

野牛程序员讲少儿编程之——多重背包【高级版】!(二进制优化)

野牛程序员讲少儿编程之——多重背包【高级版】!(二进制优化)

🧐 为什么要高级版?

在上一个普通版多重背包中,

每件物品拿多少次,是一个一个慢慢试的,

效率不太高,像在超市排长队结账一样慢。

高级版用“二进制优化”技巧,直接加速!

像开了VIP快速通道,速度飞快!

🧠 什么是二进制优化?

假设某个物品有13件可以选。

如果一个一个拿,循环13次,累到吐。

二进制优化的思路是:

先拿1件(1个)

再拿2件(2个)

再拿4件(4个)

再拿6件(因为1+2+4=7,13-7=6,还剩6件可以直接拿)

这样最多循环log₂(件数)次!超级省时间!

高级版代码(附超详细注释)

🧩 核心思路解释

举个小例子

假设:

小熊饼干:5包可以拿

普通方式 试1包、2包、3包、4包、5包,慢死了!

高级方式:

第一次拿1包 (2⁰)

第二次拿2包(2¹)

第三次拿2包(剩余)

只需要3次!速度翻倍!

高级版 vs 普通版

小总结

小剧场

「小熊饼干最多5包,怎么办?」

——「二进制拆分!1包+2包+2包,搞定!不用每次慢慢加!」

二进制优化,就是把拿物品这件事变成了玩魔法数字游戏,轻轻松松赢下背包王国的战斗!

野牛程序员教少儿编程与信息学奥赛

宜宾市野牛网络科技有限公司专业微信小程序开发、网站建设、软件开发等

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OX-jHGbBwBgvCrN-00gd4wOg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

领券