gpt4 book ai didi

java - 二进制随机数

转载 作者:行者123 更新时间:2023-12-01 10:59:13 25 4
gpt4 key购买 nike

我遇到一种情况,我需要生成 16 个唯一的 50 位二进制数随机序列。然后将其以4x4矩阵存储到文件中。

我就是这样做的

import java.util.Random; 
public class BitGenerator{
public static void main(String[] args) {
String bits = "";
Random r = new Random();
for(int j=0; j<15; j++){
for(int i=0; i<50; i++){
int x = 0;
if(r.nextBoolean()) x=1;
bits += x;
}
}
System.out.println(bits);
}
}

但是当我运行这个程序“java BitGenerator > Random.doc”时,它一次性显示了所有字符。请帮忙。

最佳答案

难道不能生成一个 64 位随机数,然后对其进行掩码以仅获得最低有效的 50 位吗? Something like :

final Random r = new Random();

for (int i = 0; i < 16; ++i)
{
long value = r.nextLong() & 0x3FFFFFFFFFFFFL;
String stringValue = Long.toBinaryString(value);
// pad stringValues with 0s if length < 50
// or set to 1 the 51th bit and then trim first character

// output number on file
}

要强制字符串为 50 个字符,您可以使用某种 hack,设置第 51 位,然后丢弃第一个字符,例如:

value |= 1L << 50;
String stringValue = Long.toBinaryString(value).substring(1);

关于java - 二进制随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33455305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com