当前位置: 首页 > 知识库问答 >
问题:

查找具有特定位集的所有长的组合

万开畅
2023-03-14
long l = 341; // as a bit string, "101010101"
long[] results = {
  101010000,
  101000100,
  101000001,
  100010100,
  100010001,
  100000101,
    1010100,
    1010001,
    1000101,
      10101
}

下面是适当的方法签名的样子:

public long[] toThreeBitCombinations(long l) {
    // what goes here?
}

(问题领域是扑克;列举奥马哈扑克牌中所有可能的板卡组合。是的,还有其他方法可以解决这个问题,但我正在测试这个方法,因为处理比特比大多数其他选择要快得多。)

共有1个答案

巴英韶
2023-03-14

好吧,我拿到了。我想。我为我不完全确定的碎片领域构建了一个版本的Gosper Hack,但它对这个案例有效。

static long next(long v, long m)
{
    long t = v | (v - 1 & m);
    long t1 = (((t | ~m) + 1) & m);
    int c = Long.numberOfTrailingZeros(v) + 2; // *
    long w = t1 | (((~t & t1) - 1 & m) >>> c);
    return w;
}

我不确定为什么用星号标记的行中的2是2而不是1。

无论如何,如果在循环中执行x=next(x,0x155)(当然是从x=0x15开始),就会得到列出的十个内容。

 类似资料:
  • 这类似于子集和问题,只是稍有不同,不是检查集合是否有一个和为9的子集,而是我们必须找到这样的子集的个数。我在这里遵循子集和问题的解法。但是我想知道如何修改它来返回子集的计数。

  • 问题内容: 我有一些复杂的对象,例如猫,它具有许多属性,例如年龄,喜爱的猫食等等。 Java集中存储了一堆猫,我需要查找所有3岁的猫,或者最喜欢猫粮的Whiskas。当然,我可以编写一个自定义方法来查找那些具有特定属性的Cat,但是这样做会麻烦许多属性。有一些通用的方法吗? 问题答案: 您可以编写一个采用接口实例的方法,该实例定义了一个方法,该方法可以通过所需的任何属性检查来实现。 更好的是,使其

  • 这是我的OWL文件的一部分: 如何仅从属性中获取

  • 你好,我有一个mongodb find()问题查询。我试图找到在同一个对象数组中有两个特定ID的所有文档。 示例文档结构: 如果我能帮你解决这两个问题中的任何一个,那就太好了!谢了。

  • 本文向大家介绍查找所有元组在Python中是否具有相同的长度,包括了查找所有元组在Python中是否具有相同的长度的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将找出给定列表中的所有元组是否具有相同的长度。 与伦 我们将使用len函数并将其结果与我们正在验证的给定值进行比较。如果值相等,那么我们认为它们的长度相同,否则就不一样。 示例 输出结果 运行上面的代码给我们以下结果- 与所有人和

  • 问题内容: 我有这个桌子; 我希望选择这样的行: 任一或= 。 另一个字段应该是唯一的。 即我想从表中选择唯一,或者我需要以下结果: 怎么做? 为什么?因为我希望构建一个类似于Facebook的收件箱,在该收件箱中,已发送和已接收的消息将被聚合,而此查询是迄今为止的瓶颈。 我正在使用Rails 3.2和Postgres 9.3。 问题答案: (not )从结果中删除重复项,从而不必要。您可能希望在