[300]求任意个数的数字的四则运算的结果 ( 积分: 300 )

  • 主题发起人 主题发起人 liugaohui
  • 开始时间 开始时间
L

liugaohui

Unregistered / Unconfirmed
GUEST, unregistred user!
求任意个数的数字的四则运算的结果:
如2 3 11三个数字之间所有四则运算的算式及结果
如2 3 11 16三个数字之间所有四则运算的算式及结果
算式的重复无所谓(因为比较难处理),
谢谢回复,顶着有分,分不够还可以加
 
这问题应该往数学建模方面想办法吧,问题很有意思
 
能不能说一下什么是四则运算
是+-*/吗?
 
我没有做过,给你一个建议
就是使用
"24点"在全文检索里搜索
 
用SQL去执行,比如
select 1*3-3/5 as value
 
较为简单的,只计算几个数之间的加或减就行,如:1 2 3 三个数字,要计算所有组合的结果
1+2+3+4
1+2+3-4
1+2-3+4
1+2-3-4
1-2+3+4
1-2+3-4
1-2-3+4
1-2-3-4
-1+2+3+4
-1+2+3-4
-1+2-3+4
-1+2-3-4
-1-2+3+4
-1-2+3-4
-1-2-3+4
-1-2-3-4
 
1、针对任意个数的数字能够进行计算
2、找出所有算式(只加减即可,不考虑乘除了)
3、计算结果
4、速度问题
5、谢谢回复
 
这是一个组合问题。
很简单。如果只考虑加减,那么把每一个数ai变成一个数组Ai,数组中有两个数(+ai, -ai),然后的问题就是求一个组合问题:每一个Ai中分别取出一个数,他们的和是多少?
如果要考虑乘除,那么每一个数组中就是四个元素,规定第一个元素的意义是加号,第二个元素是减号,第三个元素是乘号,第四个元素是除号。剩下的问题还是一个组合的问题。
 
这个问题我在家里做过,目的是通过计算机自动出题给小孩算。
思路是这样的:
1、首先设置一个最大数。也就是说这道计算题里的数不能大于这个设置值。
2、建立随机出题函数,从这里取计算式。
3、小学生的数学题不能出现负数。如出现负数随机函数重新出题。
4、对于“÷ ×”要分开成支式,然后再汇总就解决这通过计算机自动出四则运算题。
 
不考虑括号的话,应该不会很难,他就是SQL里的笛卡尔值
有多少个数字建多少个表,再建一个表存运算符
即:表A A,1
表B B,2
表C C,3
表D D,4
表W, W, +,-

select * from
(select w+a as a from w,a)a1,
(select w+b as b from w,b)b1,
(select w+c as c from w,c)c1,
(select w+d as d from w,d)d1
order by a,b,c,d
楼主看看结果对不对,,
 
有个控件的
叫parse
也可以自己写一个
我10年前就写过了 支持复杂的优先级和括号什么的
不难的
 
谢谢勇者等朋友,以我的智慧是做不出来的,[:D]
 
那位朋友闲时看看有没有代码,谢谢[:D]
 
to 不能没有你:
“我10年前就写过了 支持复杂的优先级和括号什么的” 想得到源码。。。呵呵~~
 
关注..学习学习..
 
继续谢谢各位朋友!~~~
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=591532
 
我的方法不行吗,我有试过呀,能得到
a b c d
-------------------- -------------------- -------------------- --------------------
- 1 - 2 - 3 - 4
- 1 - 2 - 3 + 4
- 1 - 2 + 3 - 4
- 1 - 2 + 3 + 4
- 1 + 2 - 3 - 4
- 1 + 2 - 3 + 4
- 1 + 2 + 3 - 4
- 1 + 2 + 3 + 4
+ 1 - 2 - 3 - 4
+ 1 - 2 - 3 + 4
+ 1 - 2 + 3 - 4
+ 1 - 2 + 3 + 4
+ 1 + 2 - 3 - 4
+ 1 + 2 - 3 + 4
+ 1 + 2 + 3 - 4
+ 1 + 2 + 3 + 4
其实用两个表,一个表存数字一个表存操作符号,不过要用行转列的语句去实现
 
后退
顶部