这个题要用笔算实在太难,非常之复杂,关健是复杂的包含关系。
同一种情况里本来就有包含关系,就关于相同数的情况,比如出现四次相同数的所有七位数中含有出现五次的、六次的、七次的,出现五次含有六次和七次的,依此类推。也就是说,我们不能简单的找到包含了四次相同数的情况就算数,因为其中的包含了五次相同数的数会出现重复计数(一个包含五个相同数的数在计算包含四个相同数时会计五次,而实际只是一个数)。
当然这种处理还是相对不是太难,最终的算式是:
A - 4*B + 4*5*C - 4*5*6*D
这里A、B、C、D分别表示出现4、5、6、7次相同数的情况,当然这里的A、B、C、D再不需要考虑包含问题了。
在计算A、B、C、D每一种情况时,也不是很简单的,主要是要考虑0的问题。如计算包含四个数的情况(计算A):
包含四个零:9 * C(6,4) * 10 * 10 = 9 * 3 * 5 * 10 * 10 = 13500
包含四个其它数(如1):
四个数有一个在首位:C(6,3) * 10 * 10 * 10 = 20000
四个数都不在首位:9 * C(6,4) * 10 * 10 =13500
所以,A = 13500 + 9 * (20000 + 13500)= 315000
B、C、D的计算相似。
这里只举了一个例子。其它两种情况的计算思路相似。
从这而的一点分析足见其复杂非同一般,而难的还在后面,还要考虑三种不同情况之间的包含问题,这将是非常复杂的。而且里面又都夹杂着零的问题,而且他们也有包含关系,如第一位为零中含了第二位也为零的情况,实在的非常复杂,很难计算。
难哉!!
我几乎不相信有谁能用代数的方法做得出来。
这应该是一道编程题吧。
还是很考人的,比如要求最少的循环次数。
你这个题目显然出得非常不严密,估计是脑袋一热自己想出来的。大概分析一下提供点思路。
一个7位数
1.要求不能出现3位以上的连数 例如123 456
2.不能出现连续3个以上同数
3.一个数不能在这个7位数中出现3次或以上
4.不能同时出现2对以上的同数
从2,3,4我们可以知道这个7位数只有两种情况:
一、7个数都不同。
二、7个数有一个数出现2次,其它的数都不同。
第一个条件很麻烦,题目界定非常不清楚,请回答以下问题:
1.012算不算连数?890呢?
2.321算不算连数?210呢?098呢?
是不是你在消遣我们啊!
我有几个疑问:321算连数不?
条件3已经包含条件2了,出题目人怎么想的。
其实这个题目也不难,因为各组连数、同数等等,除了0在首位要特殊对待之外是具有普遍一般性的。不过稍有麻烦。
另外,出题目的人似乎口气都不一样,条件三:“3次或以上”
条件4:“2对以上”(他应该说“3对或以上”),看不:不一样的方式表达。说明这个题目就没什么水平。
有得罪你的地方不好意思了。
我的头也大了——————————————————————