【问题标题】:Find all combinations of -1 and 1 for a given sum查找给定总和的 -1 和 1 的所有组合
【发布时间】:2018-06-05 03:58:40
【问题描述】:

鉴于可能的值可以是1-1,我如何才能找到所有添加的组合提供给定的总和

我得到了一个长度可变的系数数组(在本例中为 3):

array: [-1 -1 2]
desired sum: [2]

所以我的 ecuation 看起来像这样:

-x-y+2z=2

输出:

 result:[-1 1 1]

如何在 Matlab 中做到这一点?我不确定如何进行递归。

我正在考虑制作类似于开锁器的东西

1 1 1 1

^

从这里移动并尝试所有组合。值必须是1-1

【问题讨论】:

  • 你的方程有无数个解。你在期待什么?
  • 对不起,我改变了。可能的值可以是 1 或 -1。
  • 你会一直有 3 个变量吗?
  • 数组给定了,但长度不是必须的 3.结果给定了。
  • 我这里没有matlab,但是你当然可以声明一个符号方程,然后使用函数assume来设置你所有的假设(x,y,z in [-1,1] ),那么solve这个函数应该可以给你所有可能的答案

标签: matlab sieve-of-eratosthenes


【解决方案1】:

我会生成所有可能的序列,然后检查它们是否匹配结果。这应该比递归更快更清晰。

现在,如何生成所有可能的序列 - 从二进制数中获取提示。

要将您当前的数字转换为二进制然后是数组(您需要的其他步骤应该足够清楚):

dec2bin(currentNumber, N); % N is the length of array.
arr = binNum(:) == '1';
matCoeff = -1 + 2 * arr; % This gives 1 on places with 1 and -1 on places with 0.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    相关资源
    最近更新 更多