想搞搞24点算法.问:四个数字,+-*/,还有括号优先级,排列组合可枚举出多少种算式?

shandy168 1年前 已收到1个回答 举报

田步鸭 幼苗

共回答了19个问题采纳率:84.2% 举报

四个数字,+-*/,还有括号优先级排列组合可枚举表达式个数.是排列问题.
把四个数字的所有运算式进行尝试计算,要设法把所有排列一点不差地穷举出,一、是四个整数位置的排列,用0,1,2,3表示位置,排列是不能重复的,所以有P(4,4)种情况,即4!=4*3*2*1=24种;二、是三个运算符的变化,每个运算符为+-*/ ,可以相同,所以,有4*4*4=64种; 三、三个运算符的优先级,就是括号位置的变化,可能性为P(3,3)-1=6-1=5种;所以,表达式的可能性为:24*64*5=7680种,
运算符有优先级,一般是用括号表示.我们可以规定运算符的优先级来代替括号.设四张牌为a、b、c、d,运算符为①、②、③,表达式为a ① b ② c ③ d.这3个运算符的运算顺序有3!=6种,分别是:
1.①②③ 2.①③② 3.②①③ 4.②③① 5.③①② 6.③②①
等价的表达式分别是:
1.((a①b②)c③)d 2.(a①b)②(c③d) 3.(a①(b②c))③d
4.a①((b②c)③d) 5.(a①b)②(c③d) 6.a①(b②(c③d))
显然,2和5是相同的,因此只考虑5种情况.

1年前

1
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.024 s. - webmaster@yulucn.com