mathematica解决填符号使等式成立问题
在网上曾经看到过一个高手用列举法解决一个
(34口5口6口8口9口1)口2=2008
在口中填入加减乘使等式成立
程序如下,但是如果题目要求填入加减乘除和括号,程序要怎么改进啊
比如(5+5+5)÷5+5=8,即5 5 5 5 5=8填入相应符号
info = expr[{"+"},{"-"},{"*"}];
For [a = 1,a < 4,a++,
For [b = 1,b < 4,b++,
For [c = 1,c < 4,c++,
For [d = 1,d < 4,d++,
For [e = 1,e < 4,e++,
For [f = 1,f < 4,f++,
temp =
StringJoin["(34",Part[info,a],"5",Part[info,b],"6",
Part[info,c],"8",Part[info,d],"9",Part[info,e],"1)",
Part
[info,f],"2"]; If [ToExpression[temp] == 2008,Print[temp]]
]]]]]]
人气:201 ℃ 时间:2020-06-23 12:27:19
解答
你这题目其实有点歧义,要知道,在小学高年级我们就已知道,乘号在很多场合是可以省略的,那么你这里允不允许呢?我就当它允许了,那么,不算很难:Select[Tuples[{"+", "-", "*", "/", "(", ")"}, 6], ToExpression@String...乘号不能省略还是请这位大哥帮帮忙想一下既然你允许一个位置填复数个符号,那乘号省不省其实都一样了……已经有点灵感了,不过到睡觉时间了,明天再说……
推荐
猜你喜欢
- 小东看叔叔锯木头,锯一次木头要2分钟,叔叔把木头锯成5段,叔叔请小东算一算需要几分钟?
- 一辆汽车从A地开往B地,前3小时行了180千米,照这样的速度,还要1.5小时才能到达,AB两地相距多远?
- 你让我感到害怕,英语怎么说?
- 某同学做了一次较为精确的测定匀加速直线运动的加速度的实验,实验所得到的纸带如图所示,设0点是计数的起始点,两计数点之间的时间间隔为0.1s,则第一个计数点与0点的距离s1应为__________cm,物体的加速度________
- “我”上学了,还是不断收到姥姥寄来的剪纸,其中表达姥姥对‘我’的期待的一副剪纸是这样的
- 三七五折等于几成
- 小红计算两个数的加法时,把其中一个加数个位上的0漏掉了,结果算出的和是37,已知正确答案是91,那么这
- 如图所示的是闭合电路的一部分导体在两磁极间的运动情形.图中小圆圈代表导体的横截面,a、b、c、d表示运动中四个不同位置.图中箭头表示在那个位置上的运动方向.导体在_位置会产