计算拟合框数量的算法

2024-01-10

我有一个客户卖酒瓶。他使用可容纳 6 瓶、12 瓶、18 瓶和 21 瓶的盒子。但他只想接受完全适合这些盒子的订单。里面不能有任何空白。

E.g.

  • 33 即可:1x21 和 2x6
  • 48 即可:2x21 和 1x6 或 4x12
  • 26、35、61 都不行

我的第一次尝试是一种直接简单的方法。我生成一个包含大量有效数字的数组,删除重复项并对它们进行排序。

$numbers = [];
$end = (int) $bottles/6 + 1;
for ($i=1; $i<=$end; $i++) {      
  $numbers[] = $i * 6;
  $numbers[] = $i * 21;
  $numbers[] = $i * 21 + 6;
  $numbers[] = $i * 21 + 6 + 6;
  $numbers[] = $i * 21 + 6 + 6 + 6;
}
$numbers = array_unique($numbers);
sort($numbers);

它看起来像这样:

Array
(
    [0] => 6
    [1] => 12
    [2] => 18
    [3] => 21
    [4] => 24
    [5] => 27
    [6] => 30
    [7] => 33
    [8] => 36
    [9] => 39
    [10] => 42
    [11] => 48
    [12] => 54
    [13] => 60
    [14] => 63
    ....

我可以对照我的清单进行检查。好的!

但我想为所有可能的数字制定一个“完美”的解决方案,例如我想知道123456是否可以。你看,为了得到这个,数组必须非常大:-)

我尝试了一个有两个未知数的方程。为什么只有2个?因为18和12可以除以6。所以我的方法是:

bottles = 6a + 21b

“a”和“b”必须是整数值并且可以包含零。 “bottles”也是一个整数值。我把它改成了:

 bottles / 6 - 3,5b = a

但这并不能帮助我制定一个好的算法......我认为我的方法是正确的,但是我怎样才能非常优雅地解决这个问题呢?代数大师在哪里? ;-)


为了扩展 maraca 的评论,我们尝试求解非负整数方程 x = 6a + 21b。由于 6 和 21 能被 3(6 和 21 的最大公约数)整除,因此 x 必须能被 3 整除。此外,如果 x 小于 21,则 x 必须能被 6 整除。

相反,如果 x 能被 6 整除,则可以设置 a = x/6 且 b = 0。如果 x 是 3 的奇数倍,则 x - 21 能被 6 整除;如果 x 至少为 21,我们可以设置 a = (x - 21)/6 且 b = 1。3 的每个倍数要么是奇数要么是偶数(因此可被 6 整除),因此这证明了马拉卡的等价主张。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算拟合框数量的算法 的相关文章

  • 点击 %40 变为 %2540

    当单击包含 符号的链接时 该网址给我 40 这就是我想要的 但是一旦我点击它 一秒钟后它就在我点击后变成了 2540 单击是在电子邮件内 然后定向到网站 其中 40 更改为 2540 我怎样才能让它停止变化 它现在得到这样的参数 email
  • 禁用 WooCommerce 手动/编辑订单的电子邮件通知

    需要 WooCommerce 专业知识 我需要禁用手动创建的订单的电子邮件通知 我必须使用处理状态 由于处理订单状态的自定义挂钩 我无法创建自定义状态 理想情况下 手动订单页面中可以勾选一个复选框 勾选后 它将禁止在每种状态下向客户发送电子
  • PHP条件,如果当前页面,则链接突出显示[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有一个带
  • Ajax 没有将我重定向到下一页

    我正在尝试将单击的图像的 ID 传递到下一页 当我开发代码时 它没有将我重定向到下一页 当我单击 F12 并检查网络中的 POST 时 它显示变量已正确传递到下一页 如附图所示 但它没有将我重定向到下一页 所以现在我知道变量在下一页中正确传
  • 如何让Apache服务index.php而不是index.html?

    如果我将以下行放入index html文件 使 Apache 包含index php file 参观index html页面向我显示了这个 这是为什么 为什么它实际上不包含 PHP 文件 正如其他人指出的那样 您很可能没有 html设置为处
  • php源代码到PO文件生成器

    我必须将我的所有回显 打印字符串转换为PHP源代码代码文件到PO file 为了语言翻译 有批次吗对流器可用于相同的 我如何做到这一点 make gettext在您的服务器上运行 setup a 翻译适配器 例如带有 gettext 适配器
  • 使用 ImageMagick 和 PHP 将 PNG 转换为 JPG 并将透明背景设置为白色

    将图像从 PNG 转换为 JPEG 时 如何使用 ImageMagick 带有 php 扩展 将透明背景设置为白色 在撰写本文时 您尚未指定正在使用哪个扩展 但如果您使用命令行 则命令将是 convert image png backgro
  • PHP 无法打开流:是一个目录

    非常简单的 PHP 脚本 我在我亲自设置的 Ubuntu Web 服务器上的 EE 模板中运行 我知道这与权限有关 并且我已经将我尝试写入的目录的所有者更改为 Apache 用户 我得到的错误是 遇到 PHP 错误 严重性 警告 消息 fi
  • 我正在尝试寻找“调酒师算法”

    我正在解决旧编程竞赛中的一些示例问题 在这个问题中 我们输入了我们有多少调酒师以及他们知道哪种配方 每杯鸡尾酒的制作时间为 1 分钟 我们需要计算是否可以在 5 分钟内使用所有调酒师完成订单 解决这个问题的关键是尽可能高效地分配鸡尾酒 这就
  • 从 1 到 20 亿,像 (23,29) 这样相差 6 的连续素数对的数量

    如何在考虑时间复杂度的情况下从 1 到 20 亿 使用任何编程语言且不使用任何外部库 找到像 23 29 这样相差 6 的连续素数对的数量 尝试过埃拉托色尼筛 但获得连续素数是一个挑战 使用了生成器 但时间复杂度非常高 代码是 def ge
  • PHP 无法加载动态库“php_pdo_oci.dll”

    我在 Windows 8 上运行 Apache 2 4 7 和 PHP 5 5 9 我安装了 PHPUnit 并开始弹出此警告图像 警告 是的 我在 php ini 中启用了扩展加载以及 extension dir 以更正文件夹 并且该文件
  • 如何将我的 init 函数中的代码集中到所有控制器中?

    public function init this gt view gt user Zend Auth getInstance gt getIdentity this gt view gt siteName Zend Registry ge
  • Facebook 应用程序无法获取会话

    我正在 Heroku 上为 Facebook 开发一个非常基本的 PHP 应用程序 它显示非常基本的用户信息 如姓名 个人资料图片 但该应用程序在 getToken 方法中停止 我在登录我的个人资料后尝试了该应用程序 但仍然出现相同的消息
  • PHP print_r() 中 _r 的含义是什么?

    我见过这个答案 https stackoverflow com questions 13103410 what does r suffix mean就这样 但我不确定它对于 PHP 是否相同 如果是 可重入的含义是什么 From PHP n
  • PHP 中的引用

    我正在编写一个自定义博客引擎 并且希望拥有类似于 Wordpress 的引用 我可以查看 WordPress 源代码 但我真的更喜欢某种教程 但到目前为止我还没有找到 有没有关于在 PHP5 中实现 trackbacks 或 pingbac
  • 如何在 phalcon 框架中同时连接多个数据库在模型类中同时使用两个而不仅仅是一个

    在我的代码中我有两个数据库ABC and XYZ 我想在同一模型中使用两个数据库 而不是 phalcon 中的解决方案是什么 如何为此实现多个数据库连接 one
  • 如何删除文件

    我们有一个脚本 scripts ourscript php和一个文件 media movie1 flv 当我们运行时 我们如何删除这个文件ourscript php Using unlink http php net manual en f
  • 如何从 Laravel 执行存储过程

    我需要在表单提交数据后执行存储过程 我让存储过程按照我想要的方式工作 并且我的表单正常工作 我只是不知道从 laravel 5 执行 sp 的语句 它应该是这样的 执行 my stored procedure 但我似乎在网上找不到类似的东西
  • 如何使用 php 在 sql 查询中转义引号?

    我有一个疑问 sql SELECT CustomerID FROM tblCustomer WHERE EmailAddress addslashes POST username AND Password addslashes POST p
  • Stream_context_set_params 不适用于 ssh2.sftp 包装器

    我想使用类似的功能here http www php net manual en function stream notification callback php 请检查以下代码 function notify notification

随机推荐

  • Android 轮流重启 Activity

    在我的 Android 应用程序中 当我旋转设备 滑出键盘 时 我的Activity已重新启动 onCreate叫做 现在 这可能就是应该的样子 但我在中做了很多初始设置onCreate方法 所以我需要 将所有初始设置放在另一个函数中 这样
  • 将数据库添加到树莓派 kubernetes 集群

    我对 k8s 相当陌生 所以如果我误用了 k8s 术语 请原谅我 我希望有人能给我指出正确的方向并建议最好的方法 我有一个 k8s 集群运行在一组树莓派上 我想添加一个所有工作人员都可以访问的数据库卷 我计划使用 USB 外部驱动器来存储数
  • 通过 javascript 打开 facebook 连接窗口?

    当有人尝试通过 Facebook 登录我的网站时 他会被重定向到一个页面 在该页面中他会看到所有请求的权限 然后单击以允许 禁止它们 有什么方法可以通过 javascript 打开此页面作为分层窗口 而无需用户离开我的网站吗 例如 当 fa
  • 悬停时淡入边框

    我想在悬停时淡入边框 我有以下内容 但一开始什么也没有 然后变成 1px 灰线 灰色是默认颜色 然后最终变成 2px 红线 我到底出了什么问题 a border bottom none transition border bottom 1s
  • Telerik MVC:使用ajax请求加载网格不起作用

    我有一个 Telerik MVC Tabstrip 我用过了 LoadContentFrom Grid Orders 网格 操作仅返回没有模型的视图 然后应该触发 Ajax 请求来获取数据 它正在正常加载网格 但没有调用 Ajax 请求来填
  • 从 Angular 6 迁移到 Angular 7

    我最近将我的 Angular 4 应用程序升级到 Angular 6 现在想升级到 Angular 7 根据下面的文章 运行以下命令应该不会超过 10 分钟即可升级 ng 更新 Angular cli Angular Core https
  • Python list.clear复杂性[重复]

    这个问题在这里已经有答案了 Python 3方法的复杂度是多少list clear 这里没有给出 https wiki python org moin TimeComplexity https wiki python org moin Ti
  • 为什么片段有默认构造函数?

    Fragment中有默认构造函数 我想知道它的用途以及它提供什么功能 我在没有它的情况下运行代码 它工作完美 并且在删除它时我找不到任何错误 public class SongListFragment extends Fragment pr
  • 在 Java 中使用多行“and”或“or”格式化“if”语句的正确方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 显然 如果 和 和 或 是非常通用的搜索参数 我一生都无法在谷歌上找到答案 根据 Java 标准 以下哪种格式是正确的 Option 1 if
  • 枚举本地化

    如何本地化枚举ListBoxFor哪里可以有多种选择 例如一个enum包含角色 public enum RoleType Display Description Administrator ResourceType typeof Resou
  • 在 dealloc 中使 NSTimer 失效

    下列的这个问题 https stackoverflow com q 3478361 865175 更具体地说 这条评论 https stackoverflow com questions 3478361 best time to inval
  • 返回非正数时函数更改变量地址

    所以我有一个函数 它获取变量的地址并将数字放入其中 我需要这个函数来对输入进行所有检查 因为我的老师喜欢放类似的东西 123 ABV00000012 当要求只输入一个数字时 问题是 当数字为负数时 它会以某种方式更改我的变量的地址 并只给我
  • 反序列化触发函数

    我有一个包含许多字段的类 这些字段通常是在构造函数中根据类中的其他数据计算的 它们不会序列化为 XML 因为对其余数据的任何更改都可能需要重新计算 有没有办法设置在反序列化时触发的函数调用 你所描述的是 OnDeserialized htt
  • XStream 序列化和反序列化中的多态性

    我有这些课程 XStreamAlias person public class PersonConfig private AnimalConfig animalConfig public interface AnimalConfig XSt
  • Response.Flush() 仅适用于 Firefox

    我试图在做一些冗长的工作之前向客户发送一些内容 Response Write Processing Response Flush System Threading Thread Sleep 5000 Response Write Finis
  • 谷歌地图 iOS SDK:用作标记的自定义图标

    Android API 为此提供了一个非常方便的类 IconGenerator http googlemaps github io android maps utils javadoc com google maps android ui
  • 如何解决基本标签的问题?

    我的基本标签有问题 看起来像 除了这个查询之外 一切正常 get application soft calendar month change php 我的计算机认为它是跨域服务器并将查询更改为选项 当我删除基本标签时 它可以正常工作 但我
  • 发布订阅延迟达到分钟

    我一直在开发一个在 Node js 灵活运行时上利用 Gcloud pubsub 平台的项目 由于某种原因 出现了一些相当疯狂的延迟 并且随着时间的推移 延迟的严重程度不断增加 起初 只有某种类型的消息有时会经历严重的延迟 然而 随着我过去
  • 在 C# 中从 XML 中删除所有属性的最简单方法是什么?

    我想从 XML 中删除所有标签的属性 我只想保留标签及其内部值 在 C 中执行此操作最简单的方法是什么 static void removeAllAttributes XDocument doc foreach var des in doc
  • 计算拟合框数量的算法

    我有一个客户卖酒瓶 他使用可容纳 6 瓶 12 瓶 18 瓶和 21 瓶的盒子 但他只想接受完全适合这些盒子的订单 里面不能有任何空白 E g 33 即可 1x21 和 2x6 48 即可 2x21 和 1x6 或 4x12 26 35 6