java - 在不同列表中巧妙地构建对元素

标签 java

我正在构建一个智力游戏,很难解释,所以我举了一个例子。

我有一个单词列表(可以是无限的):

String myList[] = {"chair", "house", "ocean", "plane", "dog", "TV", "grass", "money" etc....}

现在是棘手的部分,我需要随机构建 4 个索引/单词对列表(每个列表具有相同的大小),但符合以下规则: 如果我选择一个数字,则与该数字匹配的单词仅出现在 2 个列表中。

例如,这是正确的:

List1:
1/chair
2/house
3/plane
4/grass

List2
1/chair
2/dog
3/plane
4/TV

List3:
1/ocean
2/house
3/money
4/TV

List4
1/ocean
2/dog
3/money
4/grass

例如:

如果我选择数字 3,则列表 3 和列表 4 与单词“money”匹配,列表 1 和 2 与单词“plane”匹配。总是必须有 2 个匹配列表(不能少,不能多)。它们应该由大量单词随机构建,因此当您选择数字时您无法猜测哪个列表将匹配。

我尝试用一​​个很好的简单的递归算法来做到这一点。但我严重失败了。

最佳答案

我解决这个问题的最初方法是

  1. 在宇宙中选择一个随机单词
  2. 将选定的单词分配给两个列表
    • 不同,
    • 未满
  3. 将随机单词存储在一组封闭单词中,以备再次选择时使用
  4. 冲洗并重复,直到所有列表都已满

关于java - 在不同列表中巧妙地构建对元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32063818/

相关文章:

java - 如何从子类调用重写的父类方法?

java - android.content.res.Resources$NotFoundException : String resource ID #0x1

java - 我应该在 JPA2.0 中使用 Primitives 还是包装器?

Java在文件正则表达式中替换

java - 在 Java 中记录对象的值时隐藏特定属性

java - 如何启动 OpenTSDB?

java - 从混合文件中读取双数

Java/LibGDX 从用户数据获取 Sprite

java - 修改或生成Android resources.arsc和编译 list

java - 通过 TCP 连接到 3G 移动设备