草庐IT

something_random

全部标签

random - 为什么 JDK 既有 Math.random() 又有 Random 类?

仅仅是因为“大型API综合症”还是生成在某些情况下更偏向的随机数?如果是……我认为控制偏见很重要。 最佳答案 他们是一样的,真​​的。只是一个方便的方法。检查javadochere.此外,您可以通过创建随机对象来重新播种,而Math.random()将使用静态Random实例。 关于random-为什么JDK既有Math.random()又有Random类?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

java - Random.nextGaussian() 的问题

Random.nextGaussian()应该给出均值为0且标准差为1的随机数。它生成的许多编号都在[-1,+1]范围之外。我如何设置才能使其仅在-1到1范围内给出正态分布的随机数。 最佳答案 均值为0且标准差为1的高斯分布意味着分布的平均值为0,并且大约70%的总体位于[-1,1]范围内。忽略范围之外的数字-它们在两侧形成大约16%的边缘。也许更好的解决方案是生成具有mean=0和std.dev=0.5的分布。这将为您提供一个分布,其中大约96%的值在[-1,1]范围内。一个更好的解决方案是像上面那样逆向工作并使用大约的想法。99

java - Something-Aware 是一种设计模式吗?

在Struts2拦截器包中,我们可以看到很多XXXAware接口(interface),比如ApplicationAware、CookieAware等。在Spring框架中,ApplicationContextAware和BeanFactoryAware……也可以看到。我也是按照这个设计理念来实现我的框架。这是一种设计模式吗?它有名字吗? 最佳答案 设计模式还是DependencyInjection和IOC。标记接口(interface)只是一种笨拙的语言版本特定的实现方式。 关于jav

java - 如何使 Swig 正确包装在 C 中修改为 Java Something-or-other 的 char* 缓冲区?

我正在尝试包装一些遗留代码以便在Java中使用,我很高兴看到Swig能够处理头文件并且它生成了一个几乎可以工作的优秀包装器。现在我正在寻找能让它真正发挥作用的深层魔法。在C中我有一个看起来像这样的函数DLL_IMPORTintDustyVoodoo(char*buff,intlen,char*curse);此函数返回的这个整数是错误代码,以防失败。参数是buff是一个字符缓冲区len是缓冲区中数据的长度curse包含调用DustyVoodoo的结果的另一个字符缓冲区所以,你可以看到这是怎么回事,结果实际上是通过第三个参数返回的。另外len令人困惑,因为它可能是两个缓冲区的长度,它们在调

java - 用于在两台机器上创建 java Random 的种子值相同

如果我在java程序中使用相同的随机种子值并在两台不同的机器上运行它,我会得到相同的一组数字吗?例如longseed=123L;//maybetakenfromsomedatabaseorsomethingjava.util.Randomran=newjava.util.Random(seed);intret=0;for(inti=0;i我总是得到ret=782ret=450ret=176ret=789ret=795ret=657ret=834ret=837ret=585ret=453如果我在我的电脑上多次运行这个程序,我会得到相同的一组数字..但假设有人设法获得我使用的secret种

java - 这个损坏的 Java Random.nextInt(long) 行为是怎么回事?

我发现当你给它一个2的幂时,这个方法似乎会惨败)和2的幂(互斥)总是相同;种子无所谓。例如:publicstaticvoidmain(String[]args){RandommRandom;for(inti=0;i我随意选择了2^4,但它似乎适用于任何2的幂。这是怎么回事?此外,我该如何避免这种情况? 最佳答案 出现这个问题有两个原因。Random类的相同种子。在nextInt(intn),如果n是2的幂1。Random类的种子相同。因为,您已经使用新的seed值启动了新的Random实例,这会影响nextInt值的生成。根据Ran

Java Swing : Do something when a component has *finished* resizing

对于这个有点不清楚的问题表示歉意-想不出更好的表达方式。我使用JXTaskPane(来自Swing实验室扩展API)以显示一些信息。用户可以“点击”标题来展开面板。JXTaskPane位于容器JPanel中,然后将其添加到JFrame,即我的主应用程序窗口。我希望我的应用程序窗口调整为展开的任务Pane的大小。为实现这一点,我向我的容器JPanel添加了一个组件监听器,它将大小设置为现在展开的面板。panel.addComponentListener(newComponentListener(){publicvoidcomponentResized(ComponentEvente){D

Java Random,种子的微小变化只会导致输出的微小变化

在用Java制作map生成器时,我发现他们的随机数生成器有一个相当令人不安的问题,具体来说,当两个RNG具有非常相似的种子(小整数不同)时,它们的第一个输出值将变得非常相似!示例代码:Randomr=newRandom();longn=100000;//Chooseanynumberr.setSeed(n);System.out.println(r.nextInt());r.setSeed(n+1);System.out.println(r.nextInt());这几乎打破了我对原始JavaRNG的信心,因为我使用坐标来为map生成器提供种子。有人可以建议重新定义Random.next

java - 具有跨不同 Java 版本的恒定种子的 Random 的可靠性

在我们的应用程序中,我们使用Random和SecureRandom为某些客户生成一些非常大的信息集。经过一些测量,我们意识到使用存储在磁盘上的种子重新生成信息比存储和读取该信息更快,占用的内存更少。我查看了javadoc,但没有看到任何保证给定常量种子n的结果,比方说,newRandom(n).nextInt()在不同的Java版本中应该是相同的。我的问题是:对于Java8和以前的版本,这是一个安全的假设吗,Java8中的newRandom(n).nextInt()应该返回与以前版本的Java中的值相同吗?(为了公平起见,我会接受回答上述问题的答案,即使他们不回答下面的问题。)虽然我知

java - FindBugs RV_ABSOLUTE_VALUE_OF_RANDOM_INT 警告

我正在尝试使用FindBugs对我们的项目进行代码审查。我们有一个方法来生成唯一的id(随机):publicstaticStringgenerateUUID(intbase){returnString.valueOf(getCurrentTimeInNanos((long)base))+String.valueOf(Math.abs(random.nextInt()));}并且findBugs指示RV_ABSOLUTE_VALUE_OF_RANDOM_INT警告(RV:错误尝试计算带符号的32位随机整数的绝对值),我猜问题出在String.valueOf(Math.abs(random