0%

从字符串的最大公因子中学习充要条件(充分必要)的证明

2020年3月12日 上午11:37

力扣:字符串的最大公因子题解

结合这个道题,我说说我在编程中证明充要条件的意义

  1. 首先,我们需要有一个可能正确的假设。这道题中有下面这三个:
    1. 前缀串的长度必然要是两个字符串长度的约数才能满足条件,否则无法经过若干次拼接后得到长度相等的字符串
    2. 如果存在一个符合要求的字符串 X,那么也一定存在一个符合要求的字符串 X’,它的长度为 str1 和 str2 长度的最大公约数
    3. 如果 str1 和 str2 拼接后等于 str2和 str1 拼接起来的字符串(注意拼接顺序不同),那么一定存在符合条件的字符串 X
  2. 为什么需要证明充要性?
    1. 要理解充分这个词的意思:——条件的充分性
      1. 我这个条件已经充分的包括了所有可能得出结论的情况。
      2. 换句话说,我这个条件之外的情况,一定不会得出结论
    2. 在编程中的意义?
      1. 充要性保证了得出结论,对应入口的唯一性
      2. 否则,如果还有其他入口可以到达结论,那么你的程序就是错的,考虑的不全面。
    3. 避免:我的确说的是真话,但是我真话没说全。
  3. 为什么要证明必要性?—条件的必要性
    1. 要理解必要这个词的意思:
      1. 要得到当前结论,这个条件是必要的,也就是不是多余的,可有可无的
    2. 在编程中的意义:
      1. 避免条件的冗余,明确目标,尽量的少考虑不必要的东西
    3. 避免:这个人废话太多,让人抓不到重点
  4. 相同点:
    1. 必要性和充分性,都是对条件的要求,不是针对结论的!

定义:

维基百科:充分必要条件

  • 充分必要条件(英语:sufficient and necessary condition)简称为充要条件
  • 当命题“若P则Q”为真时,P称为Q的充分条件,Q称为P的必要条件

例题:

怎样区分充分性、必要性 - 知乎

  • 充要条件证明题的叙述方式一般有这两种:一是“求证:A是B的充要条件”;二是“求证:A的充要条件是B”。由条件出发推出结论就是证明充分性,反之就是证明必要性。
  • 把这两种方式中加粗的字重读出来,哪个是“条件”是不是一目了然了呢。在一中,A是条件,由A推出B就是证明充分性,反之由B推出A就是证明必要性;在二中,条件是B,所以由B推出A就是证明充分性,反之由A推出B就是证明必P要性