我有这个模型:一个简单的8位显示计算器(无存储按钮,无平方根等)具有按钮(小数点不算作“数字”):10个按钮,表示0到9的整数,1个按钮表示点(小数点,因此可以保留小数,例如0.0000001到9999999.9),4个用于操作的按钮(+,-,/,*)和1个用于相等的按钮(=)。(“开/关”按钮不适用于此问题)
问题有两个:计算器屏幕上可以显示多少个数字?(并且会提供数学解释的解决方案)*并且如果我们必须在任意两个2对数之间进行所有4个基本运算,那么上述算出的运算数是多少?
感谢您的见解和帮助!
对于此答案的第一部分,我们想知道计算器屏幕上可以显示多少个数字。
从一个简化的示例开始,然后从那里开始。让我们从一个1位数的显示开始。使用此计算器,您可以显示0到9之间的数字,并且可以在数字之前(使其成为小数)或在数字之后(使其成为整数)用小数点显示每个数字。可以制作多少个唯一数字?
.0,.1,.2,.3,.4,.5,.6,.7,.8,.9,
0。,1.,2.,3.,4.,5.,6.,7.,8.,9。
那有20个可能性,其中1个重复数使19个唯一数。让我们再次找到该结果,但是使用数学方法,我们可以按比例放大到更多位数。
首先找到所有可以进行的数字0 <= n <1。为了使数字适合该范围,小数点必须在第一个数字之前。我们仍在处理1位数字,因此有10种1种不同方式用大于或等于0但小于1的数字填充计算器。
接下来,找到所有可以进行的数字1 <= n <10。为此,您将小数点向右移动一位,因此现在它在第一位数字之后,并且您也不允许第一位数字为零(否则数字将小于1)。剩下9个唯一的数字。
[0 <= n <1] + [1 <= n <10] = 10 + 9 = 19
现在我们有了一个可扩展的系统。让我们用2位数字完成此操作,以便在转到8位数字之前了解它如何与多位数字一起使用。用2位数字表示0-99,小数点可以在三个不同的地方,这意味着我们要检查三个范围:0 <= n <1、1 <= n <10、10 <= n < 100 第一个集合的第一位可以为零,因为该集合中为零,但是每个其他集合的第一位不能为零,否则该数字将位于其下的集合中。因此,第一个集合有10 2个可能性,而其他每个集合都有9 * 10 1个可能性。我们可以这样概括一下:对于我们的计算器可以容纳的任何d位数字,集合0 <= n <1将有10 d种可能性,d-1种可能性
因此对于2位数:
[0 <= n <1] + [1 <= n <10] + [10 <= n <100] = 100 + 90 + 90 = 280
现在您可以看到一种模式在出现,可以将其概括化,以便为我们提供可以在带有d位数字的计算器上显示的唯一数字的总数:
唯一的可显示数字= 10 d + d * 9 * 10 d-1
您可以使用简单的Python脚本来确认该数学运算,该脚本手动查找所有可以显示的唯一数字,打印找到的数量,然后还打印上面公式的结果。当位数更多时,它会陷入困境,但数字1到5应该足以显示公式有效。
for digits in range(1, 6):
print('---%d Digits----' % digits)
numbers = set()
for d in range(digits + 1):
numbers.update(i / 10**d for i in range(10**digits))
print(len(set(numbers)))
print(10**digits + digits * 9 * 10**(digits - 1))
结果:
--- 1个位数----
19
19
--- 2个位数----
280
280
--- 3个位数----
3700
3700
--- 4个位数----
46000
46000
--- 5 Digits- ---
550000
550000
这意味着带8位数字的计算器可以显示820,000,000个唯一数字。
对于此答案的第二部分,我们想知道是否必须在任何两个2对数之间进行所有4个基本运算,即上述计算的多少个?
我们可以在8.2亿个唯一数字之间形成几对数字?8.2亿平方。那就是672,400,000,000,000,000 = 672.4万亿。在这些数字对上可以使用四个不同的运算,因此将其乘以4,您可以在一个简单的8位计算器上得到2,689,600,000,000,000,000 = 2.6896十亿五千万个不同的可能运算。
编辑:
如果原始问题的目的是不允许小数点出现在第一个数字之前(小数点0 <= n <1必须以0开头),则可显示数字的公式将变为10 d + (d-1)* 9 * 10 d-1,这表示唯一可显示数字的数量为7.3亿,而操作总数为2.1316亿五千万。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句