1@2@3@4@5@6@7@8@9=0,用mathematica求解
mathematica吧
全部回复
仅看楼主
level 1
帝国犀利哥
楼主
1@2@3@4@5@6@7@8@9=0,式子中的@可以取加,减,乘三种运算。
2022年06月22日 15点06分
1
level 1
帝国犀利哥
楼主
比如下面这个式子成立:
1+2
+3
-4X5+6+7-8+9=0
2022年06月22日 15点06分
2
level 7
hjq447285628
Select[Tuples[{"+","-","*"},{8}],ToExpression@StringJoin@Riffle[Characters@"123456789",#]==0&]
2022年06月23日 02点06分
4
帝国犀利哥
厉害,我看别人是用的distribute函数,比你这行代码啰嗦得多。不过它输出的格式要直观一些,1+2+3.。。这样的,我想把你这个输出的结果也变成1+2+3。。,结果被MMA的语法规则折磨得够呛。悲催
2022年06月23日 13点06分
hjq447285628
@帝国犀利哥
换一下顺序就行了 Select[StringJoin@Riffle[Characters@"123456789",#]&/@Tuples[{"+","-","*"},{8}],ToExpression@#==0&]
2022年06月24日 00点06分
level 1
帝国犀利哥
楼主
牛~!我用了一天时间才折腾出把你的输出成功格式化。而且是比较笨拙的代码。
a1=Select[Tuples[{"+","-","*"},{8}],ToExpression@StringJoin@Riffle[Characters@"123456789",#]==0&]
StringJoin@Riffle[Characters@"123456789",#]&/@Join[a1,{""}]
MMA的语法规则太灵活,可以说是千变万化,初学者很容易脑袋被搅得晕头转向。而且函数化编码和传统的过程编码思维模式截然不同,要转变和适应太痛苦了。
2022年06月24日 07点06分
5
1