海战棋 — 哈希法搜索

活动说明

  1. 跟前面一样,每一个人那一张纸,然后告诉你的同伴你所选的船的数字。

  2. 不过在这个游戏之中,你可以找到这艘船在哪一行(0到9)里,只要简单地把战舰上的数字每一位数拆开,在一个个加起来,它们的和的最后一位数字就是战舰所在的行。比方说,A战舰上的数字是2345,那就把2345拆开在分别加起来(2+3+4+5),得到的和为14,它的最后一位为4,所以A战舰一定位于第4行。当你知道在第几行以后,你就需要猜测在那一行中哪一艘战舰是你要打的。这种方法称为“哈希标记”。

  3. 现在运用这个新的方法来玩这个游戏,同一张纸可以玩好几次,只要每次选择不同的行即可。

(注意:不像其他的游戏,纸张3A'和3B'需要成对,因为成对的纸张中,战舰所在的行才会一样。)

活动讨论

  1. 像之前一样讨论分数所代表的意义。

  2. 那些船会很快被找到?(在那一行中只有一艘船的。)哪些船会比较难被找到?(某些船所在的行中有很多其他船的。)

  3. 三种搜索法中,哪一个最快?为什么?

三种不同的搜索法,它们个别的优点是什么?(第二种搜索法比第一种快,但第一种搜索法不需要照顺序排列。第三种搜索法通常来说会比前两种快,但也有可能会变得非常慢。在最糟的情况下,如果所有船都在同一行,那就会变得和第一种搜索法一样慢。)

results matching ""

    No results matching ""