lol狗头k9皮肤:数学难题求解!

来源:百度文库 编辑:高校问答 时间:2024/05/08 14:17:05
数学难题求解!
现在出题如下:把任何一自然数用一个比此自然数中出现的数的个数少的方法或表达式表示出来。
也可以这样说:任何一自然数可以用其它表示数的方法或表达式表示出来,但表示出来的方法或表达式中出现的数的个数要比原自然数的位数个数要小,请问怎么表达?

说明:两题意思是一样的,看懂一个就可以了。题中说的这个自然一般常很大,通常有几千位,另此题中说的自然数如有大部分数(50%-100%之间)可以表示的话,此题就算解对了。因为全部表示是不可能的,如数1。

题中名词解释:
数中出现的数的个数:指的是一个数或表达式中数字出现的数量大小。
如:一、10000,数中出现了1、0、0、0、0,五个数。出现的数的个数为5。
二、2^10,数中出现了2、1、0,三个数。出现的数的个数为3,虽然它的结果1024。
三、2*10+2^5,表达式中出现了2、1、0、2、5,五个数。出现的数的个数为5,虽然它的结果52。

一些正确的解:
例解之一:1048576=2^20,原数1048576个数为7,解只用了2、2、0三个数表示了。
例解之二:1048579=2^20+3,原数1048579个数为7,解只用了2、2、0、3四个数表示了。

一些错误的解:
错误例解之一:2048=2^10+1024,原数个数为4,但用了7个数才表示,所以不对。正确为2^11。
错误例解之二:52=2*10+2^5,原数个数为2,但用了5个数才表示出来,所以不对。

题的难点:任何一个自然数都要用比原数个数少的方法或表达式表示出来。

最后重新说一下题:
现在出题如下:把任何一自然数用一个比此自然数中出现的数的个数少的方法或表达式表示出来。
也可以这样说:任何一自然数可以用其它表示数的方法或表达式表示出来,但表示出来的方法或表达式中出现的数的个数要比原自然数的位数个数要小,请问怎么表达?

无聊的人请走开,不要问此题以外的问题,不要问我是否做出来没,我的回答是不太知道。正因为我没做完全所以才问的。

有数学才能的人请发表自己对此题的见解也可以。谢谢!
对第一回答者:可以,什么符号也可以,并且不算在数的个数内。

利用2进制的思想转换 换句话说 任何一个数 都可以表示成2的N次方的组合(N为非负整数)。例如:324=2^8+2^6+2^2=2*2*2*2*2*2*2*2+2*2*2*2*2*2+2*2 换句话说 任何大于99的自然数都可以用2和1来表示。也就是说,绝对不会超过2种数字。可惜这不是通解。比如22,用2进制明显不可能(原来就只有一种数字)。但是可以采用极端的做法1+1+……+1=22。遗憾的是,这个做法似乎体现不出什么思想。当然,我不明白楼主题的来源。是自己想的吗?就我的数学思想,万物皆源于1,归于0。当然,就自然数而言,如果仅选一个数字来表达其他所有的数字,非1莫数。想法有意思,期待同仁有其他见解。

再补充一下 楼主的误会 我用324=2^8+2^6+2^2只是想提示如何转换为2进制 而2*2*2*2*2*2*2*2+2*2*2*2*2*2+2*2才是我的解答。非常有意思的是 如果是奇数 那么就需要一个1 这个1可以用2/2来获得(那么所有的数都可以用2/2累加获得?显得无趣了点) 这似乎是一个思维漏洞 仅供参考吧
再次期待更多的见解。

第三次补充:
楼主的意思是重复的数也要计算在内。如此看来,用2进制只能是更加的复杂。不过,可以这样推理各个符号的意义。我们尽可能使用幂或者阶乘。但是,弊端在于幂与幂之间的空隙非常大(阶乘更是),往往需要一级、二级运算修正。乘法固然很快,但是遇到质数,乘法就显得很无力。一级运算的逼近速度非常慢,可能只能作为修正。如此看来,最关键的问题是哪些比较大的质数——肯定在幂的空隙和阶乘的空隙里。那么假设一种运算可定会好得多(比如我们假设F(x)表示第x个质数)。但是,表示无数的数用无数的表达式(除了质数,估计还有很多数也是在F(x)、幂、阶乘的空隙中),似乎没有什么实际意义。数是无穷的,用有限的表达式来表达,不能说不可能,只能说希望我的分析能抛砖引玉,激发大家的思考。





追问

1、时至今日,我已得到答案,答案是不可能的。为什么?请查“信息熵”。
2、用较少的数或表达式表示数,只能有限的表示极少,可能连50%也表达不尽。
3、谢谢你的多次回答。


可以用那些运算符号?+-*/^,还有吗?
那自己定义的符号可以吗?如a◎b=(a+b)/(a*b)
不明白,应该不能做

你学过2进制吗?任何一个数都可以用2进制表达出来的
所以,数目一定会少于你数字的个数

我是这样理解的,我认为此题的主要矛盾是怎样使用最少的数,而最快逼近所得数,楼主举了指数函数的例子,但这并不是最快逼近的方法,数字越大越显现其不足,如果可以使用阶乘的话,在不增加位数的情况下,会更快逼近,还有可以应用n1^{n2^[n3^(n4^n5....)]}这个函数,其中n一定为尽可能大的1位数,但不一定是9,且每个n都要用n!替换,这样效率会很高。这就解决了先表示一大部分数值,如果令f(n)=n1^{n2^[n3^(n4^n5....)]},那末先用f1(n)+f2(n)+f3(n)+....+fm(n)解决认为用此法最快的数值范围(有时f(n)前可加系数因为此函数跳度相当大),又因为f(n)对大数极为有效,而对剩余小数并非最佳,可以适时取消阶乘。

这只是我的一些看法,不知对错,望大家讨论指正。

PS:我又想了想,确实n不一定为一位数,但我觉得应当用f(n)以及阶乘来解决,因为f(n)包含了指数函数幂函数等,而且还可以乘系数,这样既解决了增长率问题,又解决了包含率问题,这确实比较矛盾,要找到适当的点不太容易,还需深入研究。

PS2:Aredias你还是没读懂题