ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2484|回复: 10

[求助] 大石头碎成几块小石头的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-3-6 09:07 | 显示全部楼层 |阅读模式
本帖最后由 爱疯 于 2019-3-6 09:24 编辑

https://www.zhihu.com/question/298657281/answer/600898727
潘泽华
44 人赞同了该回答
忽然想到,当时觉得挺有意思的。

有个大哥,他家里有块大石头,重40公斤。他还有个天平,可以用石头称40公斤的货物。有一天,石头碎成四块,总质量没变,他发现通过组合这四个新石头,可以称出从1到40所有整数公斤,问,碎成了哪四块?

答案不难,1,3,9,27。

那天忽然又想起来,发现是等比数列。然后在想为什么是等比数列。

四块石头作为砝码,可以选择放在左面天平,右面天平,或者不放。一共三种可能,所以最优解就是把所有整数转化为三进制,我们的石头砝码就相当于三进制上的每一位。

发布于 2019-02-17



~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 以上是转载 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~





请问:

1)对于原帖,如何打印所有称法?

2)对于任意重量的大石头,只需碎成几块,便可称出1到X的重量。是否也可算出来?

谢谢


TA的精华主题

TA的得分主题

发表于 2019-3-6 09:36 | 显示全部楼层
这个问题转化成1,3,9,27这4个数字用"+"和"-"计算出1到40的组合问,:
1=1
2=3-1
3=3
4=1+3
5=9-3-1
6=9-3
7=9+1-3
.....
其实挺简单,你自己先想想吧

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-6 11:51 | 显示全部楼层
我是来讨说法的 发表于 2019-3-6 09:36
这个问题转化成1,3,9,27这4个数字用"+"和"-"计算出1到40的组合问,:
1=1
2=3-1

谢谢 我是来讨说法的 !
我还是先去看怎么写通用的排列组合,原来的没看会

:(

TA的精华主题

TA的得分主题

发表于 2019-3-6 12:12 | 显示全部楼层
本帖最后由 micch 于 2019-3-6 14:10 编辑

称重的物体有40个可能,1-40斤重,然后天平两边相等,所以就是一个1-4位数加法=另一个1-4位数加法。
如果是罗列可能,那就是一个物体+0-4个石头=1-4个石头组合?。???

任意重量分,先得证明任意一个大的整数,可以被n个数加减法得到,求N的最小数??

TA的精华主题

TA的得分主题

发表于 2019-3-6 12:32 | 显示全部楼层
前两天遇到一个几何题,二十四颗树,种每排四颗,最多能种多少排?到现在也没搞懂,感觉我就不适合琢磨数学题

TA的精华主题

TA的得分主题

发表于 2019-3-6 12:55 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-3-6 13:39 | 显示全部楼层
本帖最后由 小小鸟前滚翻 于 2019-3-6 13:42 编辑

这是数学问题,不是VBA问题,3的(n-1)次方

TA的精华主题

TA的得分主题

发表于 2019-3-6 14:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
手工摸拟图

676.JPG

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-6 18:01 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-3-6 18:55 | 显示全部楼层
本帖最后由 micch 于 2019-3-6 19:35 编辑

折腾一天才写出来,实在是不懂递归,应该能简化,应该有更好的办法,但是实在弄不好了。
  1. Dim ar, br, a, m%, n%, Z%, r%, X, Y, str
  2. Sub st()
  3.     Z = 40
  4.     m = 7 '正数表示和物品不同侧,负数表示同侧
  5.     ar = Array(0, 1, -1, 3, -3, 9, -9, 27)
  6.     ReDim br(1 To 40, 1 To 6)
  7.         For n = 1 To 4
  8.             ReDim a(n)
  9.             Call zh(a, 1, m, n)
  10.         Next
  11.     With [a1].Resize(r, 6)
  12.         .Value = br
  13.         .Sort .Cells(1, 6), 1
  14.         .HorizontalAlignment = xlLeft
  15.     End With
  16. End Sub
  17. Function zh(a, k, m, n)
  18.     For i = a(k - 1) + 1 To m - n + k
  19.         a(k) = i
  20.         If k = n Then
  21.             X = "=0"
  22.                 For c = 1 To n
  23.                     If InStr(X, Abs(ar(a(c)))) = 0 Then X = X & "+" & ar(a(c))
  24.                 Next
  25.             Y = Evaluate(X)
  26.             If Y > 0 And Y <= Z And InStr(str & ",", "," & Y & ",") = 0 Then
  27.                 str = str & "," & Y
  28.                 r = r + 1
  29.                 br(r, 5) = " = "
  30.                 For c = 1 To UBound(Split(X, "+"))
  31.                     br(r, c) = Split(X, "+")(c)
  32.                     If Val(br(r, c)) < 0 Then
  33.                             br(r, 5) = Abs(br(r, c)) & " " & br(r, 5)
  34.                     Else
  35.                             br(r, 5) = br(r, 5) & " " & br(r, c)
  36.                     End If
  37.                 Next
  38.                 br(r, 5) = "物品 " & br(r, 5): br(r, 6) = Y
  39.             End If
  40.         Else
  41.                 Call zh(a, k + 1, m, n)
  42.         End If
  43.     Next
  44. End Function
复制代码


评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-20 10:38 , Processed in 0.045728 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表