Algorithm 算法证明-从n位数中删除k位数后生成最小数
问题:给定一个n位数字,应删除其中的k(kAlgorithm 算法证明-从n位数中删除k位数后生成最小数,algorithm,proof,Algorithm,Proof,问题:给定一个n位数字,应删除其中的k(kaj-1并使j最大。 这意味着aj是连续数字递增序列的最后一位(严格来说不是必需的)。 然后数字aj现在从数字中删除,得到的数字m'具有该值 m' = Σi=0,...,j-1 aibi + Σi=j+1,...,n aibi-1 是否有更好的j选择来获得更大的差异 由于an…aj是一个递增的子序列,ai+1≥ 0有效。因此,选择j而不是j,在现在有一个正数的地方会得到更多的零,也就是说,如果存在i和ai+1σi=0,…,j-2(b-1)bi=
k
次。(请参阅以供参考。还有其他解决方案,例如,但我认为此处描述的解决方案更直观,因此我更喜欢此解决方案。)
现在的问题是,如何证明上述解决方案是正确的,即如何通过在每一步删除一个数字后使其最小来保证最终数字是最小的。假设
k=1
设m=i=0,…,n aibi
和n+1
数字anan-1…a1a0
带基数b
,即0≤ ai
(例如b=10
)
证明
∃ j>0
与aj>aj-1
并使j
最大。这意味着
aj
是连续数字递增序列的最后一位(严格来说不是必需的)。
然后数字aj
现在从数字中删除,得到的数字m'
具有该值
m' = Σi=0,...,j-1 aibi + Σi=j+1,...,n aibi-1
是否有更好的j
选择来获得更大的差异
- 由于
是一个递增的子序列,an…aj
有效。因此,选择ai+1≥ 0
而不是j
,在现在有一个正数的地方会得到更多的零,也就是说,如果存在j
和i
(严格地说更小),则差值不会变大,反而会变小李>ai+1
应该是最大值,即j
。我们知道 bj-1 > Σi=0,...,j-2(b-1)bi = bi-1-1 bj-1>σi=0,…,j-2(b-1)bi=bi-1-1 这意味着,如果我们选择'j'aj-1-aj<0
∄ j>0
与aj>aj-1
上述证明适用于j=0
还有什么事要做?
这只是证明您的算法适用于k=1
可以将上述证明扩展到多个子序列(并非严格必要的)递增数字。这是完全相同的证明,但可读性差得多,因为您需要的索引数量太多
也许您也可以使用归纳法,因为数字之间没有交互作用(阻止接下来的选择或其他内容)。这里有一个简单的参数,您的算法适用于任何k。假设第m位中有一个数字小于或等于其右(m+1)位邻居,则删除第m位,但不删除第(m+1)位。然后,您可以删除第(m+1)位而不是第m位,您将得到一个小于或等于原始答案的答案。注意:此证明用于在删除k位后建立最大数字,但思路类似 键引理:最大(m+1)-位数包含最大m位数 所有m的编号=0,1,…,n-1 证明:
- 贪婪的解决方案是从某个数字中删除
数字以获得最大值 结果:只需删除一个
,或者下一个数字大于它的第一个数字
。这很容易证明如果数字为非升序,则删除最后一个数字
S(k)⊄ S(k+1)
。请注意,S(k)⊂ S(n)
由于初始数包含所有次优数,因此必须存在一个x
的S(k)⊂ S(x)
和S(k)⊄ S(x-1)
,k+2矛盾李>
所以,我们证明引理。如果我们得到了S(m+1)
,并且我们知道S(m+1)包含S(m)
,那么S(m)
必须是从S(m+1)
中删除一个数字后的最大数字。e、 g.从“1028”中删除一个数字,左边的数字是“028”。我想这里可能有一些关于k
的不同引用。是否让k
表示要在参数中删除的数字的位置。这是问题陈述中要删除的总位数,我想@abcaeffshen的答案也是如此。因此,你也给出了一个关于删除我认为的一个数字的论点,在@AbcAeffchen的答案中,这个数字是k=1
。@zhangwt我滥用了k的符号,让它作为删除数字的索引。现在我把索引改为m。该参数应适用于任意数量的k个删除的数字。我仍然不确定多次删除的证明,请参阅@AbcAeffchen的评论。多次删除的正确性证明对我来说是困难的部分,根据你的分析,我会检查它是否与单个删除相同。@zhangwt加上归纳法,你马上就到了结尾:你得到的是最小的数字,少了一个数字。如果k>1
,则继续执行k'=k-1
。得到一个数字序列,使得数字总是减少1,并且该数字总是通过删除一个数字从上一个数字中得到的最小数字。这证明了你的算法对于k>1
是正确的。我认为在上面的归纳过程中有一个隐含的假设,需要证明。作为归纳范例,假设在j(jb)之后,竞争对手Aj+1
不仅包括我们从Aj
中删除一个数字所得到的信息,还包括从任何n-j
数字中删除一个数字所得到的信息,例如A'j
,即
bj-1 > Σi=0,...,j-2(b-1)bi = bi-1-1