【发布时间】:2012-06-09 01:39:13
【问题描述】:
Write an efficient algorithm to print the following two outputs
给你一个名为 getrand100() 的预定义函数,它返回 一个整数,它是 1-100 中的一个随机数。你可以这样称呼 可以根据需要多次运行,但请注意此功能是 相当的资源密集型。您不能使用任何其他随机生成器。 您不能更改 getrand100() 的定义。
int getrand100(){
Random rand = new Random();
return (1+rand.nextInt(100));
}
- 输出 1:以随机顺序打印数字 1-20。 (不是 20 个随机数)
- 输出 2:以随机顺序打印数字 1-200。 (不是 200 个随机数)
注意:
- i.每个数字都应该只打印一次。
- 二。数字列表中不应有任何模式。列表应该是完全随机的
即,所有数字在任何地方出现的概率都是相等的。 - 三。您可以调用 getrand100() 任意次数来获取随机数 从 1 到 100。
- 四。您不能使用任何其他随机生成器 除了 getrand100() 之外的函数。
【问题讨论】:
-
您可以开始使用的最简单的解决方案可能是
brute-force解决方案:)。在列表中添加一个尚未出现的数字 - 但这不是“有效的”。
标签: java random numbers unique