把一个偶数分成N份,每份都是2的倍数

2024-01-15

假设我有号码100我需要将其分为 N 部分,每个部分最初不应超过 30。因此初始分组为 (30,30,30)。余数(即 10)将通过连续向每个组添加 2 来分配到这三个组中,从而确保每个组都是 2 的倍数。因此,所需的输出应类似于 (34,34,32)。

注意:原始数字始终是偶数。

我尝试用 Python 解决这个问题,这就是我想到的。显然它并没有按照我想象的方式工作。它通过向每个组迭代添加 1(而不是根据需要添加 2)来分配余数。

num = 100
parts = num//30  #Number of parts into which 'num' is to be divided

def split(a, b):
  result = ([a//b + 1] * (a%b) + [a//b] * (b - a%b))
  return(result)

print(split(num, parts))

Output:

[34, 33, 33]

期望的输出:

[34, 34, 32]

简化问题:忘记 2 的倍数

首先,让我们先简化一下您的问题。忘掉 2 的倍数吧。假设您想要拆分一个非必然偶数n into k非必然均匀的部分。

显然,最平衡的解决方案是让某些部分成为n // k,有些部分是n // k + 1.

其中有多少个?我们打电话吧r零件数量n // k + 1。然后还有k - r零件与n // k,所有部分的总和为:

   (n // k) * (k - r) + (n // k + 1) * r
== (n // k) * (k - r) + (n // k) * r + r
== (n // k) * (k - r + r) + r
== (n // k) * k + r

但这些部分应该总结为n,所以我们需要找到r这样:

n == (n // k) * k + r

令人高兴的是,您可能会在这里认识到欧几里得除法,n // k是商和r是余数。

这给了我们我们的split功能:

def split(n, k):
    d,r = divmod(n, k)
    return [d+1]*r + [d]*(k-r)

Testing:

print( split(50, 3) )
# [17, 17, 16]

分成2的倍数

现在回到你的split_even问题。现在我们有了通用函数split, 一个简单的方法可以解决split_even是使用split:

def split_even(n, k):
    return [2 * x for x in split(n // 2, k)]

Testing:

print( split_even(100, 3) )
# [34, 34, 32]

概括: 的倍数m

对一个数字的倍数做同样的事情很简单m2 以外:

def split_multiples(n, k, m=2):
    return [m * x for x in split(n // m, k)]

Testing:

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

把一个偶数分成N份,每份都是2的倍数 的相关文章

  • 将 SQLite 的 FTS3/4 与 Python 3 结合使用

    我一直在使用 python 的 Flask 框架开发 peewee 的示例博客应用程序 看https github com coleifer peewee https github com coleifer peewee 内部示例 gt 博
  • Conda 无法在 Powershell 中激活

    我已经在我的 Windows 10 笔记本电脑上安装了 anaconda 我正在尝试激活名为的Python环境pyenv 首先 我检查conda env list在我的笔记本电脑中 这是 powershell 上的输出 PS C Users
  • uwsgi + Django REST框架:空闲时间后很少有缓慢的请求

    我正在运行 Django REST 框架 白天每分钟的请求率相当低 我注意到一个我无法解释或重现的问题 每天 在夜间或清晨 当我的 RPM 接近于零时 我会收到 1 10 个超慢的请求 我的平均响应时间100 到 200 毫秒之间 但是这个
  • Windows 中的信号处理

    在Windows中 我试图创建一个等待SIGINT信号的python进程 当它收到SIGINT时 我希望它只打印一条消息并等待SIGINT的另一次出现 所以我使用了信号处理程序 这是我的 signal receiver py 代码 impo
  • CodingBat sum67:为什么这个解决方案是错误的?

    我正在解决以下codingbat问题 返回数组中数字的总和 但忽略以 6 开头并延伸到下一个 7 的数字部分 每个 6 后面至少有一个 7 如果没有数字则返回 0 sum67 1 2 2 5 sum67 1 2 2 6 99 99 7 5
  • Python 包?

    好吧 我认为无论我做错了什么 它可能都是显而易见的 但我无法弄清楚 我已经阅读并重新阅读了有关包的教程部分 我唯一能想到的是这不起作用 因为我直接执行它 这是目录设置 eulerproject init py euler1 py euler
  • 添加反斜杠而不转义[重复]

    这个问题在这里已经有答案了 我需要逃离 字符串中的 字符 问题是每当我string string replace 结果是 添加额外的反斜杠来转义原始反斜杠 如何删除这个多余的反斜杠 结果 仅显示 实际上字符串是 gt gt gt str g
  • Ttk Treeview:跟踪键盘选择

    这是一个带有 ttk 树视图的 Tk 小部件 当用户单击该行时 会执行某些功能 此处仅打印项目文本 我需要的是以下内容 最初的重点是文本输入 当用户按下 Tab 键时 焦点应该转到第一行 并且应该执行绑定到 Click 事件的函数 当用户使
  • 包含可变数据的正则表达式 - ply.lex

    我正在使用 python 模块ply lex编写一个词法分析器 我用正则表达式指定了一些标记 但现在我卡住了 我有一个list of Keywords谁应该是token data是一个包含大约 1000 个关键字的列表 这些关键字都应该被识
  • 我想优化这个短循环

    我想优化这个简单的循环 unsigned int i while j 0 j is an unsigned int with a start value of about N 36 000 000 float sub 0 i 1 unsig
  • 如何判断Python对象是否是字符串?

    如何检查 Python 对象是否是字符串 常规字符串或 Unicode Python 2 Use isinstance obj basestring 对于要测试的对象obj Docs https docs python org 2 7 li
  • UTF-8 在 Python 日志记录中,如何?

    我正在尝试使用 Python 的日志记录包将 UTF 8 编码的字符串记录到文件中 作为一个玩具示例 import logging def logging test handler logging FileHandler home ted
  • Google App Engine 开发服务器中的 PyCrypto“ImportError:无法导入名称 blockalgo”

    我有一个使用 PyCrypto 使用 AES 加密字符串的函数 当我在单元测试中调用该函数时 一切正常 在生产环境中 它也运行得很好 但是 在GAE开发服务器上调用该函数时 会抛出错误 ImportError 无法导入名称blockalgo
  • 来自异常导入 PendingDeprecationWarning ModuleNotFoundError:没有名为“异常”的模块

    我正在尝试使用Python 创建一个word 文档 我在终端中 pip install python docx 我的代码如下所示 from docx import Document document Document document sa
  • 使用每日频率格式化 x 轴

    我正在尝试获取每日数据图 我有 3 个月的数据 每天都很难指出 如何格式化 x 轴 以便我可以获得每个日期 可以使用以下命令更改主要刻度的频率set major locator mdates DayLocator interval 5 如下
  • Java中如何对整数除法进行四舍五入并得到int结果? [复制]

    这个问题在这里已经有答案了 我刚刚写了一个小方法来计算手机短信的页数 我没有选择使用Math ceil 老实说 它看起来很丑陋 这是我的代码 public class Main param args the command line arg
  • 在 Mac OS x 10.7.5 中运行 Scrapy 所需的文件,使用 Python 2.7.3 IEPD_free(32 位)

    我是第一次测试 scrapy 使用命令安装后 sudo easy install U scrapy 一切似乎都运行正常 但是 当我运行时 scrapy startproject tutorial 我得到以下信息 luismacbookpro
  • 为什么 Python 布尔值占用超过一个字节?

    显然 Python 中整数占用 24 个字节 我可以理解 它这样做是因为代表无限数字的额外花哨 然而 布尔数据类型看起来也花费了高达 24 个字节 尽管它只能表示两个可能值之一 为什么 除了 1 位表示之外 还可能需要存储哪些额外数据Tru
  • 稀疏矩阵中的最大和子矩形

    求一个子矩形中的最大和NxN矩阵可以完成O n 3 正如其他帖子中指出的 使用 2 d kadane 算法的时间 然而 如果矩阵是稀疏的 具体来说O n 非零条目 可以O n 3 时间被打败了吗 如果有帮助的话 对于我感兴趣的当前应用程序
  • Pandas:根据是否为 ​​NaN 来移动列

    我有一个像这样的数据框 phone number 1 clean phone number 2 clean phone number 3 clean NaN NaN 8546987 8316589 8751369 NaN 4569874 N

随机推荐

  • Symfony2 明文用户不起作用

    我尝试通过将其配置到 secure yml 中来配置一个简单的安全管理区域 我使用了 Symfony 的例子 security firewalls secured area pattern anonymous http basic real
  • 当数据可用时,组合框自动选择第一项

    我正在寻找在数据可用时选择第一项的方法 但如果源中没有数据 则不要选择 怎么做 我对 WPF 很陌生
  • 使用 @babel/preset-typescript 从环境 TypeScript 模块中使用枚举?

    是否可以食用enum来自正在编译的文件babel using babel preset typescript mymodule d ts declare module mymodule export enum Fruit apple App
  • 表达式中括号组的 ISO C 等效项

    如何以符合 ISO C99 的方式执行以下操作 define MALLOC type length message type a LINE type malloc length sizeof type assert message a LI
  • C#7 值元组/解构不对称

    在这里摆弄 https dotnetfiddle net 9Ex5Jp 给定一个函数 string a string b F 您可以解构它返回的元组 var a b F string c string d F 或者你可以直接分配它 var
  • Python GIL 真的是针对每个解释器的吗?

    我经常看到人们谈论 GIL 是每个 Python 解释器的 甚至在 stackoverflow 上也是如此 但我在源代码中看到 GIL 似乎是一个全局变量 因此每个 python 进程中的所有解释器都有一个 GIL 我知道他们这样做是因为没
  • 通过 bonjour 在两个 iOS 设备之间流式传输图像

    我的目标是通过 bonjour 将 AVCaptureOutput 捕获的图像从一台 iOS 设备流式传输到另一台设备 这是我当前的方法 1 从视频输入中捕获帧 void captureOutput AVCaptureOutput capt
  • 如何解决React Native应用程序中的TapJacking漏洞

    我知道我可以在我的视图中应用这些属性 filterTouchesWhenObscured 方法 onFilterTouchEventForSecurity 但我想应用于我的每个可点击视图 那么我该如何应用它 我今天需要修复窃听场景 对我的应
  • 从 VPC 内部访问 VPC 外部的 AWS 资源 - 无服务器框架

    我正在尝试从 VPC 内部的 lambda 函数访问 VPC 外部的运动流 目前 当执行写入 kinesis 流的代码时 它将挂起 然后超时 当我将 lambda 从 VPC 中取出时 写入流的代码工作正常 但我需要访问 VPC 内的资源
  • 缓存控制标头和浏览器缓存 IIS7

    我在 IIS7 的网站上使用 Google Page Speed 我想知道如何设置 利用浏览器缓存 以下资源缺少缓存过期时间 利用代理缓存 考虑向以下资源添加 Cache Control public 标头 以web config中的sys
  • 在线性回归模型中包含误差项

    我想知道是否有一种方法可以包含线性回归模型的误差项 例如 r lm y x1 x2 代码r lm y x1 x2 意味着我们将 y 建模为 x1 和 x2 的线性函数 由于模型并不完美 因此会存在残差项 即模型未能拟合的剩余项 在数学方面
  • linq orderby 使用属性名称字符串

    我有一个需要订购的清单 例如 var list someelements 我还有一个参数 它说明我应该按哪个属性和哪个方向订购列表数据 例如 var sortby Name var sortdirection desc 我想知道是否可以将字
  • 如何让 AutoMapper 不缓存映射对象?

    当 AutoMapper 遇到一个已经映射的对象时 它似乎会再次使用该对象 而不是尝试重新映射它 我相信它这样做是基于 Equals 我有一棵正在绘制地图的树 因此 一个具有一些属性和子节点的节点 多个节点具有相同的值 Equals 因为它
  • 渲染后如何将焦点设置在输入字段上?

    渲染组件后将焦点设置在特定文本字段上的反应方式是什么 文档似乎建议使用 refs 例如 Set ref nameInput 在渲染函数中的输入字段上 然后调用 this refs nameInput getInputDOMNode focu
  • 如何使用 openjdk:7 Docker 镜像和 Gradle 包装器避免“EC 参数错误”?

    这个 Dockerfile FROM openjdk 7 WORKDIR restdocs RUN git clone https github com spring projects spring restdocs git restdoc
  • Jackson反序列化convertValue与readValue

    我有一个包含 JSONObjects 的 org json JSONArray 我正在尝试将它们映射到 POJO 我知道我想要映射到的 POJO 的类型 我有两个选择 我正在尝试找出哪个性能更好 选项1 ObjectMapper mappe
  • 在 php 中使用断言进行类型检查?

    我使用异常抛出函数对 php 中的类中的参数进行了一些检查 我有进行基本检查的功能 in array等 并在 false 时抛出异常 所以我可以做assertNumeric argument argument is not numeric
  • 使用 AngularJS 和 Highlight.js 进行动态语法突出显示

    我正在构建一个网站来说明常见的应用程序漏洞 例如 SQL 注入 我在用AngularJS and 高亮 js创建交互式示例 如何让 AngularJS 和highlight js 都更新我的代码片段 Example 这把小提琴 http j
  • 重复使用表格单元格中的 UIswitch

    我的 uiswitch 有问题UITableViewCell每当我更改属于特定部分的特定单元格中的开关值时 所有其他具有相同部分的单元格inexPath row改变 请帮忙 这是我的代码cellForRowAtIndexPath metho
  • 把一个偶数分成N份,每份都是2的倍数

    假设我有号码100我需要将其分为 N 部分 每个部分最初不应超过 30 因此初始分组为 30 30 30 余数 即 10 将通过连续向每个组添加 2 来分配到这三个组中 从而确保每个组都是 2 的倍数 因此 所需的输出应类似于 34 34