python 有人能给我解释一下这个算法吗?

2sbarzqh  于 2022-12-25  发布在  Python
关注(0)|答案(5)|浏览(157)
n1 = int(input("Number 1: "))
n2 = int(input("Number 2: "))
n3 = int(input("Number 3: "))
n4 = int(input("Number 4: "))

if n1 > n2 and n1 > n3 and n1 > n4:
    greatest = n1
elif n2 > n3 and n2 > n4:
    greatest = n2
elif n3 > n4:
    greatest = n3
else:
    greatest = n4

print(f" {greatest} is the greatest of the numbers.")

为什么我们不比较n2n1n3n1n2,谁能简单地解释一下这个算法?

ubby3x7f

ubby3x7f1#

我们是淘汰号码。
对于第一条件if n1 > n2 and n1 > n3 and n1 > n4,我们可以说,如果n1大于n2、n3、n4,则n1将是最大的。
现在假设此条件不成立,即[n4,n2,n3]中存在大于n1的数字,因此我们将仅搜索该数字,现在我们仅在该范围内搜索即[n2,n3,n4]
因此我们遵循条件2,即n2 > n3 and n2 > n4,类似地,如果该条件为真,我们将得到n2作为最大数,但是如果它失败,我们可以说[n3,n4]作为给定数中的最大值
因此我们将范围缩小到条件3,即n3〉n4,如果为真,我们可以说n3是最大数,如果不是,那么我们可以说n4是所有数中最大的数

2lpgd968

2lpgd9682#

这个算法是计算4个数字中的最大值作为输入。
1.它需要输入4个不同数字中的第一个。
1.然后,它首先检查第一个数字,如果它大于所有其他数字,如果这是真的,它分配greatest作为第一个数字,如果不是:
1.进入第二种情况,检查第二个数字是否大于第三和第四个数字。我们不检查第一个数字,因为它不大于其余数字。如果第二个数字大于,则分配greatest第二个数字并打印,否则再次打印:
1.然后检查第三个,现在我们有两个较小的数字,即第一个和第二个。因此,如果第三个大于第四个,则将第三个数字分配给greatest,否则将分配第四个数字,因为所有其他数字都小于第四个数字。
最后打印出最大的数字。

zsbz8rwp

zsbz8rwp3#

我们的想法是消除。
第一个条件if n1 > n2 and n1 > n3 and n1 > n4我们将n1与n2、n3、n4进行比较。如果n1大于所有,则我们得到最大数(n1),但如果n1不是最大的,则第一个如果失败,因此我们将n1作为不是最大的而排除。
类似地,我们检查n2是否是最大的,并且剩余数为(n3,n4)。
如此等等。

u7up0aaq

u7up0aaq4#

原因与计算机处理代码的顺序有关。我们只关心找到最大的数字。

  1. if n1 > n2 and n1 > n3 and n1 > n4如果这是TRUE,则我们知道n1是最大的数字,并且我们已经找到了要查找的内容,操作将停止。如果这是FALSE,则我们知道n1不是最大的数字,并且继续操作2。
  2. elif n2 > n3 and n2 > n4如果我们在运算中走到这一步,我们已经从1知道n1不是最大数,因此我们不再需要比较任何数与n1,因为我们关心的是找到最大数。如果这是TRUE,则n2是最大数。如果这是FALSE,则我们知道n2不是最大数,并继续进行运算3。
  3. elif n3 > n4现在我们知道n1不是最大的数,n2也不是最大的数,因此我们知道n3或n4是最大的数,我们所要做的就是比较剩下的两个数。如果这是真的,那么n3是最大的数,如果是假的,我们继续4。
  4. else如果我们到了这个点,还没有什么是真的,那么我们知道n1不是最大的数,n2不是最大的数,n3也不是最大的数,只有4个数(n1,n2,n3,n4),所以我们现在知道n4是最大的数。
    一个重要的旁注:如果两个数字相同,程序仍将打印出最大的数字,但将查找该数字的第二个示例,而不是第一个示例。例如:说
n1 = 10
n2 = 5
n3 = 3
n4 = 10

然后程序会给出结果1)假2)假3)假4)真即使n1也是最大数,运算1也是假的,因为n1不大于n4(10不大于10)
希望这有帮助!

ibps3vxo

ibps3vxo5#

简短答复:

如果删除已知不是最大值的数字,则最大值不会更改。
例如,{ 3,6,9,1 }中的最大值也是{ 6,9,1 }中的最大值,{6,9,1 }中的最大值也是{ 9,1 }中的最大值。

相关问题