计算所有 k 乘积之和的高效算法

2024-01-17

假设给你一个列表L of n数字和整数k<n。有没有一种有效的方法来计算所有乘积的总和k中的不同数字L?

举个例子,以L=[1,3,4,6] and k=2。那么我要找的号码是

1*3 + 1*4 + 1*6 + 3*4 + 3*6 + 4*6.

你能想出一种避免生成所有大小子集的方法吗k?


令 F(X,k,n) 为数组 X 的前 n 个元素的 k 乘积和。

F(X,k,n) = F(X,k,n-1)+F(X,k-1,n-1)*X[n]

您可以使用动态规划来解决这个问题。复杂度 = O(kn)。

F(X,k,n) 的结束条件: 当 n=k F(X,k,k) = X[1]* X[2]*...*X[n]

更多细节:

F(X,1,1) = X[1]
F(X,1,i) = F(X,1,i-1)+X[i] for i=2...n 

For j=2..n:
    For i = 1..k:
        if i<j:
            F(X,i,j) = F(X,i,j-1)+F(X,i-1,j-1)*X[j]
        else if i==j:
            F(X,i,j) = F(X,i-1,j-1)*X[j]
        else:
            pass
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算所有 k 乘积之和的高效算法 的相关文章

  • 有效地合并两个数组 - 一个已排序,另一个未排序

    我正在解决一个问题 该问题有一个由 n 个元素组成的排序数组 后跟一个未排序的长度数组 O logn O 平方 n 如何最有效地对整个列表进行排序 在上述两种情况下我应该使用哪种排序 由于将单个元素插入数组并保持其排序是O n 你不可能变得
  • 在 3d 网格中转发(绘制)线

    我需要类似 Bresenham 算法的东西 但是 对于 3d 网格空间来说不完全是这样 我需要 3d 单元网格 边缘尺寸 1 0 从 S 点开始 前进到 K 点 接触 该线接触的所有单元格 即使只有边缘 点被触摸我需要触摸所有 8 个单元
  • 序列和与 GCD

    大约一个月前 我在编程挑战中遇到了这个问题 但社论尚未发布 所以我在这里问 有一个大小为 N 的数组 A 求 A 的 K 个长度子序列的总和 GCD Example 如果 A 1 2 3 且 K 2 1 2 3 总和 1 GCD 3 1 3
  • 素数生成器算法

    我一直在尝试解决素数生成算法的SPOJ问题 这是问题 彼得想为他的密码系统生成一些素数 帮助 他 你的任务是生成两个给定之间的所有素数 数字 Input 输入以单行中测试用例的数量 t 开始 t Output 对于每个测试用例 打印所有素数
  • 关于Marching Cubes算法的澄清

    关于Marching Cubes 我对其算法和实现有一些疑问 我已经阅读了 Marching Cubes 的 Paul Bourke 优秀文章以及网站上可用的源代码 但是 我在理解以及如何以自己的方式实现算法方面仍然遇到了一些问题 问题如下
  • 如何将多边形放入另一个多边形内[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有两个多边形 如下图所示 左边是 粗多边形 右边是 最终多边形 现在 我正在寻找算法来将 最终多边形 拟合到 粗糙多边形 内 并具有
  • 如何光栅化旋转矩形(通过 setpixel 在 2d 中)

    我有四个 2d 顶点 A B C D 的旋转矩形 我需要在像素缓冲区中 有效地 光栅化 绘制它 使用 setpixel x y 颜色 怎么做 我正在尝试使用一些代码 例如 convertilg a b c d do up down left
  • 贝尔曼福特算法可以有任意的边顺序吗?

    我刚刚开始学习新算法 但当我阅读 极客为极客而写的贝尔曼福特算法 时 我陷入了困境 http www geeksforgeeks org dynamic programming set 23 bellman ford algorithm h
  • c# GDI边缘空白检测算法

    我正在寻找解决方案检测边缘空白c 位图 来自 c 托管 GDI 库 图像将是透明的 or white 大多数 400x 图片的尺寸为 8000x8000px 边缘周围有大约 2000px 的空白 找出边缘的最有效方法是什么 x y 高度和宽
  • JavaScript 中的埃拉托斯特尼筛法对大量数据无限运行

    我一直在尝试写埃拉托斯特尼筛法 http en wikipedia org wiki Sieve of EratosthenesJavaScript 中的算法 基本上我只是按照以下步骤操作 创建从 2 到 n 1 的连续整数列表 令第一个素
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • 删除近排序数组中未排序/离群元素

    给定一个像这样的数组 15 14 12 3 10 4 2 1 我如何确定哪些元素乱序并删除它们 在本例中为数字 3 我不想对列表进行排序 而是检测异常值并将其删除 另一个例子 13 12 4 9 8 6 7 3 2 我希望能够删除 4 和
  • 无法理解Peterson算法的正确性

    我在这里讨论彼得森算法的一个场景 flag 0 0 flag 1 0 turn P0 flag 0 1 turn 1 while flag 1 1 turn 1 busy wait
  • 连接红黑树

    OCaml 标准库有一个很棒的Set使用非常有效的分而治之算法来计算的实现union两套 我相信它会从一组中获取整个子树 而不仅仅是单个元素 并将它们插入到另一组中 并在必要时重新平衡 我想知道这是否需要 OCaml 使用的 AVL 树中保
  • 面试题:三个数组,O(N*N)

    假设我们有three长度数组N其中包含任意数量的类型long 然后我们得到一个数字M 相同类型 我们的任务是选择三个数字A B and C每个数组中的一个 换句话说A should从第一个数组中选取 B从第二个开始和C从第三个 所以总和A
  • 当满足动态条件时退出递归函数

    使用来自的函数生成汉明距离 t 内的所有比特序列 https stackoverflow com questions 40813022 generate all sequences of bits within hamming distan
  • 数组所有可能的组合

    我有一个字符串数组 ted williams golden voice radio 我希望这些关键字的所有可能组合采用以下形式 ted williams golden voice radio ted williams ted golden
  • 查找字符串中最常见的子字符串的算法

    是否有任何算法可用于查找字符串中最常见的短语 或子字符串 例如 以下字符串将 hello world 作为其最常见的两个单词短语 hello world this is hello world hello world repeats thr
  • 用于在链表中查找结点的生产代码

    我在一次采访中被问到这个问题 我被要求编写代码 用于在 O 1 空间和线性时间的生产环境中在链表 其形式为 Y 形式 双臂不一定相等 中查找结点 我想出了这个解决方案 我以前在某处见过 1 Measure lengths of both l
  • 如何循环遍历所有组合,例如48 选择 5 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在java中从大小为n的集合中迭代生成k个元素子集 https stackoverflow com questions 4504974 how to iteratively generate k

随机推荐

  • 使用多线程时如何使用Delphi设计时FireDac TFDQuery?

    我想设计我的TFDQuery使用组件编辑器 即在设计时设置 SQL 字符串 选项等 然后在线程中使用查询 我的问题是 线程的每个运行实例都需要自己的查询实例 否则它将不是线程安全的 我是否应该在线程开始运行时克隆查询 即在线程的 Execu
  • 检查 Windows 更新是否可用

    是否可以通过编程方式检查 Windows 是否有可用的新更新 欢迎任何建议 谢谢 The Windows更新代理 http msdn microsoft com en us library aa387287 28VS 85 29 aspxA
  • 如何将当前文档的innerHTML下载为文件?

    有没有办法可以下载当前文档innerHTML作为文件以编程方式 我做了以下尝试但没有成功 它确实下载了当前文档的源代码 但这不是我想要的 因为我想保留任何加载后的文档修改 var save document createElement a
  • 如何使用gin作为服务器编写prometheus导出器指标

    这是官方的prometheus golang client示例 package main import log net http github com prometheus client golang prometheus github c
  • 具有资源文件的动态本地化 WPF 应用程序

    试图使我的 wpf 应用程序本地化 我遵循这个 CodeProject 教程 https www codeproject com Articles 299436 WPF Localization for Dummies 我创建了本地化资源文
  • 二维对象数组返回类型 - NSubstitute

    我遇到强制转换异常 System InvalidCastException 无法将类型 System Object 的对象强制转换为类型 System Object 在 Castle Proxies ITestProxy Get2DArra
  • TortoiseGit 中的“远程跟踪分支”在哪里?

    如何在TortoiseGit中找到 远程跟踪分支 以设置从中拉取的默认分支 打开 浏览参考 对话框 参见https tortoisegit org docs tortoisegit tgit dug browse ref html http
  • R:内部函数可以使用外部函数的变量吗?

    内部函数可以使用调用它的函数环境中存在的变量吗 inner lt function x return x y z a outer lt function x y z a lt x y z inner x 在这里 当我打电话时inner x
  • 使用 sympy 计算多元函数的泰勒级数

    我正在尝试使用 SymPy 计算依赖于三角函数的函数的泰勒级数sinc here http docs sympy org dev modules mpmath functions trigonometric html sinc functi
  • @ActiveProfiles 值未分配给配置

    如果我将它们设置为虚拟机参数 我的活动配置文件将正常工作 我有一个想要使用的测试 ActiveProfiles local 这是我正在使用的类注释 RunWith SpringJUnit4ClassRunner class ContextC
  • 使用 Twitter Bootstrap,如何自定义一页的 h1 文本颜色,而将其他页面保留为默认颜色?

    在我的索引页面上 我希望 h1 文本颜色为白色并带有阴影 但我不想更改其他页面上 h1 的默认行为 我怎样才能实现这个目标 在 Bootstrap 3 中 以下是更改文本颜色的类 p class text muted p grey p cl
  • Python 中更快的套接字

    我有一个用 Python 编写的服务器客户端 它通过 LAN 运行 该算法的某些部分使用套接字密集读取 其执行速度比几乎一样的 http pastie org 3962231用 C 编写 有哪些解决方案可以使 Python 套接字读取速度更
  • 从视图创建位图使视图消失,如何获取视图画布?

    我发现了两种从视图创建位图的方法 但一旦我这样做了 视图就会消失 我就不能再使用它了 生成位图后如何重绘视图 1st public static Bitmap getBitmapFromView View view Bitmap retur
  • 如何从java中的另一个类更新jLabel或setText?

    我正在尝试创建一个JFrame哪里的jLabel和按钮位于另一个类中 我在其中创建了一个方法putTextNow这会将文本设置为jLabel 我读到应该使用多线程来完成 这对我来说更复杂 这是我的代码 NewJFrame java priv
  • 在 JBoss 上安装 SSL 证书

    我有一台运行 JBoss 的服务器 当我在该服务器上输入错误的 URL 时 它会给出如下版本 JBossWeb 2 0 1 GA JBoss 的版本是什么 我们将为我购买并提供 SSL 证书 以便我可以将其安装在 JBoss 中 我真的很感
  • 如何为 Mac OSX 编写虚拟打印机驱动程序 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要为 OSX 编写一个 虚拟打印机驱动程序 以便当用户按 Command P 打开 打印 对话框时
  • SQL模糊匹配

    希望我没有重复这个问题 在在这里发帖之前 我在这里做了一些搜索和谷歌 我正在使用启用全文的 SQL Server 2008R2 运行 eStore 我的要求 有一个产品表 其中包含产品名称 OEM 代码 该产品适合的型号 一切都在文字中 我
  • 我如何使用 zip(), python

    例如 我有这些变量 a 1 2 b 3 4 如果我使用函数zip 对于它 结果将是 1 3 2 4 但我有这个清单 a 1 2 3 4 而且 我需要得到与第一个结果相同的结果 1 3 2 4 但是 当我这样做时 zip a I get 1
  • 在 C 中写入多个文件并迭代其名称

    我试图通过迭代 进行一些计算并将索引添加到文件名来编写一堆文件 这是我的代码的一部分 我强调了代码停止编译的位置 float AltAzCalc int d float t float Lon float RA float Dec floa
  • 计算所有 k 乘积之和的高效算法

    假设给你一个列表L of n数字和整数k