使用随机数生成X/0模式(无硬编码)

Bya*_*aku 2 java

我想使用1到4之间的随机数生成某个模式.模式如下所示:

1 = X000000000
2 = X0000X0000
3 = X00X00X000
4 = X0X0X0X000
Run Code Online (Sandbox Code Playgroud)

基本上随机数表示,在模式中将使用多少个X,并且0将以规则的间隔填充.

有没有办法在不使用硬编码变量的情况下生成这些模式?

编辑

因为它看起来不容易理解我在这里写下所有的详细信息:我使用以下代码来定义程序必须为随机生成的每个数字输出的内容:

 if (i == 1){
 System.println("X000000000");
 if (i == 2){
 System.println("X0000X0000");
 if (i == 3){
 System.println("X00X00X000");
 if (i == 4){
 System.println("X0X0X0X000");
Run Code Online (Sandbox Code Playgroud)

有没有办法使用一种方法,如果问题不包括使用硬编码?

1-4的模式总是会像这样.这取决于生成的数字,输出的内容.

shm*_*sel 5

试试这个:

public static void main(String[] args) {
    System.out.println(generatePattern(1, 10));
    System.out.println(generatePattern(2, 10));
    System.out.println(generatePattern(3, 10));
    System.out.println(generatePattern(4, 10));
}

public static String generatePattern(int count, int length) {
    int frequency = length / count;
    StringBuilder pattern = new StringBuilder();
    for (int i = 0; i < length; i++) {
        pattern.append(i % frequency == 0 && i < frequency * count ? 'X' : '0');
    }
    return pattern.toString();
}
Run Code Online (Sandbox Code Playgroud)

输出:

X000000000
X0000X0000
X00X00X000
X0X0X0X000
Run Code Online (Sandbox Code Playgroud)