关闭。这个问题需要细节或清晰。它目前不接受答案。**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
上个月关门了。改进这个问题我一直在试图找出如何用java编写代码来生成唯一的数字序列,如下所示:**0012 3929 2003 2201 3994等。。。55562 23369 66665 77742 15489等。。。556612 211135 222566 333365等。。。所有可能的数字都按四个或五个以上的数字块的顺序排列。。。
kgqe7b3p1#
我认为这会对您有所帮助,您可以通过添加更多函数来更改代码,方法是使用用户输入更改for循环。
import java.util.Random; public class RandomNum { public static void main(String[] args) { Random random = new Random(); for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { System.out.print(random.nextInt(10)); } System.out.print(" "); } } }
祝你好运!
weylhg0b2#
我的解决方案是将序列视为字符串,因为它可能不适合int或long。
public static void main(String[] args) { System.out.println(randomNumbersInNBlocks(4,4)); System.out.println(randomNumbersInNBlocks(4,6)); System.out.println(randomNumbersInNBlocks(6,4)); System.out.println(randomNumbersInNBlocks(6,6)); } private static String randomNumbersInNBlocks(int numbersInBlock, int blockCount){ final String ALPHA_NUMERIC_STRING = "0123456789"; StringBuilder builder = new StringBuilder(); for (int i = 0; i < blockCount; i++) { String numbers; do{ numbers = getRandomNumbers(numbersInBlock); }while (builder.toString().contains(numbers)); builder.append(numbers); builder.append(" "); } return builder.deleteCharAt(builder.length() -1).toString(); } private static String getRandomNumbers(int numberCount){ final String ALPHA_NUMERIC_STRING = "0123456789"; StringBuilder builder = new StringBuilder(); while (numberCount-- != 0) { int character = (int)(Math.random()*ALPHA_NUMERIC_STRING.length()); builder.append(ALPHA_NUMERIC_STRING.charAt(character)); } return builder.toString(); }
3zwtqj6y3#
尝试在这里解析您的问题:给定输入“4”,您希望以随机顺序生成0000到9999之间的所有可能数字(即10000个数字)?一种方法是首先创建集合中的所有数字,然后将其洗牌:
var list = IntStream.of(0, 10000) .mapToObj(n -> String.format("%04d", n)) .collect(Collectors.toList()); Collections.shuffle(list);
或者,如果“最低”的数字是1000,那么,把0改成1000,效果也一样。你可以为任何输入这样做,但一旦你到了8左右,它开始变得笨拙;那需要很多记忆。有办法做到这一点,但它变得相当复杂;想必以上这些对你来说已经足够了。
3条答案
按热度按时间kgqe7b3p1#
我认为这会对您有所帮助,您可以通过添加更多函数来更改代码,方法是使用用户输入更改for循环。
祝你好运!
weylhg0b2#
我的解决方案是将序列视为字符串,因为它可能不适合int或long。
3zwtqj6y3#
尝试在这里解析您的问题:给定输入“4”,您希望以随机顺序生成0000到9999之间的所有可能数字(即10000个数字)?
一种方法是首先创建集合中的所有数字,然后将其洗牌:
或者,如果“最低”的数字是1000,那么,把0改成1000,效果也一样。
你可以为任何输入这样做,但一旦你到了8左右,它开始变得笨拙;那需要很多记忆。
有办法做到这一点,但它变得相当复杂;想必以上这些对你来说已经足够了。