相关疑难解决方法(0)

如何有效地配对袜子?

昨天我把干净的洗衣店的袜子配对,弄清楚我做的方式效率不高.我正在做一个天真的搜索 - 挑选一个袜子并"迭代"堆,以找到它的对.这需要迭代在n/2*N/4 = N 2 /8上平均的袜子.

作为一名计算机科学家,我在想我能做什么?当然,为了实现O(NlogN)解决方案,我们会想到排序(根据大小/颜色/ ...).

哈希或其他非就地解决方案不是一种选择,因为我无法复制我的袜子(尽管如果可能的话可能会很好).

所以,问题基本上是:

给出一堆n袜子,包含2n元素(假设每个袜子只有一对匹配),有效配对多达对数额外空间的最佳方法是什么?(我相信如果需要的话我会记住那些信息.)

我将感谢一个解决以下方面的答案:

  • 大量袜子的一般理论解决方案.
  • 袜子的实际数量并不是那么大,我不相信我的配偶和我有超过30双.(并且很容易区分我的袜子和她的袜子;这也可以使用吗?)
  • 它是否等同于元素清晰度问题

language-agnostic sorting algorithm matching

3850
推荐指数
34
解决办法
40万
查看次数

2048游戏的最佳算法是什么?

我最近偶然发现了2048游戏.您可以通过在四个方向中的任意一个方向上移动它们来合并类似的图块,以制作"更大" 每次移动后,新的图块会出现在随机空位置,其值为24.当所有框都被填充并且没有可以合并图块的移动时,或者您创建值为的图块时,游戏会终止2048.

一,我需要遵循明确的战略来实现目标.所以,我想为它编写一个程序.

我目前的算法:

while (!game_over) {
    for each possible move:
        count_no_of_merges_for_2-tiles and 4-tiles
    choose the move with a large number of merges
}
Run Code Online (Sandbox Code Playgroud)

我做的是在任何时候,我会尝试合并与价值观的瓷砖24,就是我努力24瓷砖,尽可能最小.如果我这样尝试,所有其他瓷砖自动合并,策略似乎很好.

但是,当我实际使用这个算法时,我只能在游戏结束前获得大约4000点.AFAIK的最高分数略高于20,000分,远高于我目前的分数.有比上面更好的算法吗?

algorithm logic artificial-intelligence 2048

1893
推荐指数
13
解决办法
91万
查看次数

将随机范围从1-5扩展到1-7

给定产生1到5范围内的随机整数的函数,写一个产生1到7范围内随机整数的函数.

  1. 什么是简单的解决方案?
  2. 什么是减少内存使用或在较慢的CPU上运行的有效解决方案?

random puzzle algorithm

683
推荐指数
22
解决办法
20万
查看次数