成语| 古诗大全| 扒知识| 扒知识繁体

当前位置:首页 > 趣味生活

几个数相加等于一个数

Q1:如何设置公式,在Excel中寻找任意几个数相加等于一个已知数

用公式难度非常高,我曾试过在56个数中找几个数相加等于某值的,写了一个VBA程序处理,也要运行四、五个小时。

你要的话请列出来你的数,和求什么数?让大家帮你。

Q2:excel中任意几个数相加 等于一个已知数

可以考虑用一下此方法: 将你的一堆数字放在A列中, 在C列中填入公式C1=A1*B1,向下填充到与A列相对应,另选一单元格或就在C列末尾单元格下一行(假设为C100),对C列求和. 在菜单"工具"->"规划求解",设置目标单元格为C100,值为"x",可变单元格选为B1:B99,"添加"约束对话框,单元格应用位置为B1:B99,下拉框中选择为bin,求解. B列中为1的是相加可以等于x数的项.

Q3:如何在一堆数字中找出几个数,这几个数的和能够相加得一个固定值

遍历即可,我用matlab编的简单程序,其他语言类似

A=[11.61,25.38,44.8,59.25, 121.66,126.93 ,142.79,155.07,246.24,288.44,389.46,451.14,472.22,557.47,638.59,688.62,746.72,891.7,979.14,1028.66,1038.21,1153.38,1634.87,2760.68];

n=length(A); %求A中元素的个数

for i=1:n-3

for j=i+1:n-2

for k=j+1:n-1

for l=k+1:n

if A(i)+A(j)+A(k)+A(l)==4872.35 %判断条件

[A(i) A(j) A(k) A(l)]

end

end

end

end

end

我这里预设的和是4872.35

程序运行的结果是44.8、1028.66、1038.21、2760.68

你要的和无解

Q4:请教数组中去任意几个数相加等于一个固定值

我是用Mathematica来实现这一过程的,给每一个数选还是不选设定为一个未知数,只能取回0或1.再对求和方程按条件求解,能出来所有满足条件的解,如果有小数,建议全放大,变成整数进行求解,其结果会出来的快些。

Q5:excel中任意几个数相加 等于一个已知数

先分析一下,任意几个 ,也就是 取几个数不固定,可能一个 ,也可能十九个这就需要一个循环假设现在循环到10 了 任意取10个数, 19个里面任意取10个数,也就是19个中取10个的组合 =COMBIN(19,10)=92378, 循环 连同组合 =SUM(COMBIN(19,ROW(1:19)))=524287 共有524287中情况实际上 就是2的 19次方然后 在这五十多万种可能中找出符合条件的 ,需要把这五十多万种组合逐一列出 很有难度啊 首选 构建一个 19位的 2进制数,循环,不够是9位时 前面补零,对应的位数与 这个19个数对应 如果是零 这个数不取,如果是1 取 这样 所有的组合都会出现 我慢慢想想 等我 !我很有可能 解决这个问题! 我拿 100以内的19个数测试的,看那几个数的和可以等于345,代码写出来了 循环太大,会报错 , 如果把524287 缩小到200以内就没问题了,就不会报错了,但是循环次数就不够了,不能穷尽找出所有组合, 如果要是 10个数 中 取 应该不会有问题 反正代码理论没有问题,我半个小时写完代码,用了三个小时时间才查出来是 循环过大! Sub 取任意数() Dim i As Long Dim tt As String Dim su1 As Long Dim su2 As Long Sheets("Sheet1").Select For i = 1 To 225 tt = Application.WorksheetFunction.Rept(0, 18) & Application.WorksheetFunction.Dec2Bin(i) For j = 1 To 19 su1 = Mid(Right(tt, 19), 20 - j, 1) * Cells(j, 1) su2 = su1 + su2 Next j If su2 = 345 Then For k = 1 To 19 aa = Mid(Right(tt, 19), 20 - k, 1) * Cells(k, 1) If aa <> 0 Then Cells(m + 1, b + 3) = aa b = b + 1 End If Next k m = m + 1 b = 0 End If su2 = 0 Next i End Sub

猜你喜欢

更多