gpt4 book ai didi

python - 如何找到用于查找数组中缺失数字的数学表达式

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:36:06 26 4
gpt4 key购买 nike

在缺号问题中:

Find the missing number in given integer array of 1 to 100?

这是解决这个问题的 python 代码:

n 不能预定义,因为它取决于函数中分配的数组

def missingNumber(nums):
n = len(nums)
total = (n+1)*(n+2)/2
missing = total - sum(nums)
return missing

missingNumber([1, 2, 4, 5, 6])

我不明白怎么想出来的逻辑

total = (n+1)*(n+2)/2

最佳答案

给定一个连续数字数组中缺少一个数字,

假设您知道前 n 个数字的总和。令前 n 个数字的总和为 s。现在前 n 个数字中缺少一个数字,我们可以得到缺少的数字作为

s - 剩余数字的总和

现在让我们看看如何计算 s,

假设我有数字“1, 2, 3, 4, 5, ....,100”

现在我想计算它们的总和,

我能做的一件事是要么将它输入计算机程序/计算器,要么一个一个地求和。

当他的老师问这个问题时,小高斯提出的另一种方式是,

让 s1 = 1 + 2 + 3 + ... + 100

反之,

令 s2 = 100 + 99 + 98 + ... + 1

现在添加 s1 和 s2

s1 + s2 = (100 + 1) + (99 + 2) + .... + (1 + 100)

但是 s1 = s2,所以,

2s1 = 101 + 101 + ... + 101//序列有 100 个项

s1 = (101)*(100)/2//前 100 个数字的总和

因此,我们得到了前 n 个数字的总和,即 (n)*(n+1)/2 的一般化方式。这也可以用数学归纳法证明。

对于你的问题,如果 n 是缺少数字的数组的长度,那么 n + 1 必须是原始数组的大小。所以 s = (n+1)*(n+2)/2

关于python - 如何找到用于查找数组中缺失数字的数学表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54384837/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com