Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 用于查找n位字符串的对手参数_Algorithm_String Algorithm - Fatal编程技术网

Algorithm 用于查找n位字符串的对手参数

Algorithm 用于查找n位字符串的对手参数,algorithm,string-algorithm,Algorithm,String Algorithm,给定: S、 一组奇数n位字符串 A、 特定的n位字符串 表明任何决定A是否在S中的算法都必须在最坏情况下检查A的所有n位 通常情况下,我们当然希望看到字符串的所有部分来进行匹配,但是有一点很特别,就是它有一个奇怪的大小,这让我难以理解 如果我理解正确,s的字符串数是奇数还是偶数都无关紧要。对于S中的任何特定字符串,要检查它是否与任意字符串A匹配,必须检查每个字符串中的每个字符。如果一个字符串比另一个字符串短,或者正在检查的字符不匹配,则可以提前停止。假设我们有一个算法a,该算法可以正确确定s中

给定:
S、 一组奇数n位字符串
A、 特定的n位字符串

表明任何决定A是否在S中的算法都必须在最坏情况下检查A的所有n位


通常情况下,我们当然希望看到字符串的所有部分来进行匹配,但是有一点很特别,就是它有一个奇怪的大小,这让我难以理解

如果我理解正确,s的字符串数是奇数还是偶数都无关紧要。对于S中的任何特定字符串,要检查它是否与任意字符串A匹配,必须检查每个字符串中的每个字符。如果一个字符串比另一个字符串短,或者正在检查的字符不匹配,则可以提前停止。

假设我们有一个算法a,该算法可以正确确定s中的成员身份,并对任何输入的n位字符串表示该字符串是否在s中

假设对于给定的输入n位字符串s1,算法a从不查看s1的位i,并继续说“s1在(不在)S中”。那么,一个等于s1的字符串s2(位i翻转除外)也在(不在)S中!也就是说,对于我们输入A的任何字符串,如果A不看某个特定的位,那么在S中(或不在S中)还有第二个字符串,该位被翻转


那么奇数尺寸的套装有什么特别之处呢?我们不能把琴弦均匀地配对。也就是说,必须有一个字符串s3,a查看并确定它在S中,对于它,没有一个位可以翻转以形成S中的另一个字符串。因此a必须查看s3的所有位(否则我们可以像以前一样创建这样的字符串)。

我猜奇数线索是在
内存中找到集合或数组的结尾

假设您使用的是
32
位系统,
也许编译器会在八字节边界上对齐内存中程序的数据结构。您的数据段中有一大堆字符串指针。如果有奇数个字符串,则需要八字节对齐的下一个字符串前面有四个字节的填充。如果有偶数个字符串,则没有填充。

如果S可以是偶数,则S可以包含可以使用n位生成的字符串的确切数量-然后您可以举例说明A的0位,并说“A在S中”,您是对的。或者,如果S比所有可能的字符串都小两个,比如说,00和01,那么A可以是1x,你可以说‘A不在S中’,并且是正确的,不用偷看。但是如果字符串的数量是奇数,那么这些“out”就不存在,最坏的情况更糟。我想这就是“奇数”的意思