gpt4 book ai didi

algorithm - 号码分布

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:45:39 26 4
gpt4 key购买 nike

问题:我们有 x 个复选框,我们想均匀地检查其中的 y 个。

示例 1:从总共 100 个复选框中选择 50 个。

[-]
[x]
[-]
[x]
...

示例 2:选择 33 个复选框,共 100 个复选框。

[-]
[-]
[x]
[-]
[-]
[x]
...

示例 3:从总共 100 个复选框中选择 66 个:

[-]
[x]
[x]
[-]
[x]
[x]
...

但是我们很难想出一个公式来在代码中检查它们,尤其是当您进行 11/111 或类似操作时。有人有想法吗?

最佳答案

让我们首先假设 y可以被 x 整除.然后我们表示 p = y/x解决方案很简单。遍历列表,每个p元素,标记其中的 1 个。

现在,假设r = y%x是非零的。还是p = y/x其中 /是整数除法。所以,你需要:

  • 在第一个p-r元素,标记1个元素
  • 在最后r元素,标记2个元素

注意:这取决于您如何定义均匀分布。你可能想传播 r带有 x+1 的部分p-r 之间的元素带有 x 的部分元素,这确实又是同一个问题,可以递归解决。

好吧,它实际上并不正确。我认为这样做可以:

不管可分性:

  • 如果y > 2*x , 然后每 p = y/x 标记 1 个元素元素,x次。
  • 如果y < 2*x ,然后标记所有,并执行上一步取消标记 y-x来自 y复选框(与前面的情况一样,但是 xy-x 代替)

注意:这取决于您如何定义均匀分布。您可能希望在 p 之间切换和 p+1例如元素以更好地分发它们。

关于algorithm - 号码分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8298708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com