00000000 00000001 00000000 00000010 00000000 00000011
package referenceCode;公共类二进制生成器{
让它成为一个递归方法而不是一个带for循环的方法是一个更好的主意还是更有效的方法?
您可能知道,所有java整数都是基于二进制数的。所以对于2个字节,最大数目是2^16=65536。只需循环遍历所有的数字并获得它们的二进制值,如果需要,对它们进行零填充,最后将它们存储在列表中。这将返回所有可能的2字节二进制数字。对于更多的字节,只需递增byte-variable。
执行:
int bytes = 2;
int nBits = bytes * 8;
int maxNumber = 1 << nBits; //this equals 2^nBits or in java: Math.pow(2,nbits)
ArrayList<String> binaries = new ArrayList<>();
for (int i = 0; i < maxNumber; i++) {
String binary = Integer.toBinaryString(i);
while (binary.length() != nBits) {
binary = "0" + binary;
}
binaries.add(binary);
}
System.out.println(binaries);
为了清楚起见,包含了bytes和nBits变量。
public static ArrayList<String> getBinaries(int bits, String current) {
ArrayList<String> binaries = new ArrayList<>();
if (current.length() == bits) {
binaries.add(current);
return binaries;
}
//pad a 0 and 1 in front of current;
binaries.addAll(getBinaries(bits, "0" + current));
binaries.addAll(getBinaries(bits, "1" + current));
return binaries;
}
我试图在一个形状为(n,10)的数组中创建所有可能的0和1的组合。例如,如果我们假设一个像这样的任意组合:np.array([0,0,1,1,0,0,1,1,0,0]),我如何生成所有可能的组合(这将产生2^10=1024数组)?
问题内容: 我有一个项目{a,b,c,d}的列表,当我需要生成所有可能的组合时, 您可以选择任意数量的项目 顺序不重要(ab = ba) 空集不被考虑 如果我们抓住可能性,那就应该是 我使用了以下递归方法: 当数组大时,有没有更有效的方法? 问题答案: 将组合视为一个二进制序列,如果所有4个都存在,则得到1111,如果缺少第一个字母,则得到0111,依此类推。对于n个字母,我们将得到2 ^ n -
问题内容: 目前,我试图让所有可能的组合从的,是每一个元素只包含一个字母。 在本身包含相同字母两次甚至更多,他们只应该,因为他们经常会出现使用。 在稍后应该含有最多的给定的长度从最小的2个字母的所有组合。 我在此处搜索了stackoverflow,但只发现了忽略以下事实的置换函数:每个字母仅在出现时才经常使用。 这是我的第一个Swift 2项目,所以请原谅我的绿色态度:) 我想要的是 我目前的做法
问题内容: 似乎比它要简单得多,但是如何用python生成所有16,777,255个rgb颜色呢? 问题答案: 颜色通常用十六进制数表示,实际上只是整数。因此,从0到16,777,215(0xFFFFFF)的简单循环就足以生成所有24位RGB颜色。 在python 2.x中,您可以执行以下操作:
一个解决方案是首先将该数字视为一个8位数字,然后计算的所有组合。但是,这并不能完全满足我的需要,因为我想稍后在线性移位寄存器(LFSR)中使用该数字,目前,我正在寻找一个利用的答案。
我需要创建一个函数,输出所有可能的二进制组合(2^8==256个不同的8位序列)。我真的被难住了。我必须用嵌套循环来完成它,但我不知道该怎么做。下面是我到目前为止所尝试的。有人告诉我,我可以用8个嵌套循环来编写这个程序,每个循环从0到1;另外,我可以尝试用位操作操作符来实现这一点。 输出应该如下所示: 00000000 00000001 谢谢你找我。