草庐IT

java - Java 中的 SecureRandom 安全种子

这段代码安全吗?SecureRandomrandomizer=newSecureRandom(String.valueOf(newDate().getTime()).getBytes());这是实例化安全随机种子的正确方法吗? 最佳答案 不,您应该避免使用SecureRandom(byte[])构造函数。它既不安全又不可携带。它不可移植,因为它在Windows和其他操作系统上的行为不同。在大多数操作系统上,默认算法是“NativePRNG”,它从操作系统(通常是“/dev/random”)获取随机数据并忽略您提供的种子。在Windo

java - 不要随机数之前是随机的

我知道如何使用javaRandom类随机数。这将随机一个0-13之间的数字13次;publicstaticvoidmain(String[]args){intctr=13;intrandomNum=0;while(ctr!=0){Randomr=newRandom();randomNum=r.nextInt(13);ctr--;System.out.println(ctr+":"+randomNum);}}问题-我想随机取一个0-13之间的数字13次-如果第一个随机数是例如(5),那么我的第二个随机数将再次随机生成0-13中的任何数字EXCLUDING5;如果第二个随机数是例如(4),

java - 在 Java 中生成随机单词?

我编写了一个程序,可以对单词进行排序并确定任何字谜。我想生成一个随机字符串数组,以便我可以测试我的方法的运行时。publicstaticString[]generateRandomWords(intnumberOfWords){String[]randomStrings=newString[numberOfWords];Randomrandom=Random();returnnull;}(方法stub)我只想要长度为1-10的小写单词。我读了一些关于生成随机数,然后转换为char之类的东西,但我并不完全理解。如果有人能告诉我如何生成随机单词,那么我应该可以轻松地使用for循环将单词插入

java - 根据使用频率随机生成字母?

如何根据在普通语音中的使用频率随机生成字母?任何伪代码都值得赞赏,但是用Java实现会很棒。否则,只需朝正确的方向戳一下就会有所帮助。注意:我不需要生成使用频率-我确信我可以很容易地找到它。 最佳答案 我假设您将频率存储为介于0和1之间的float,总计为1。首先你应该准备一个累积频率表,即那个字母和它之前的所有字母的频率之和。为了简化,如果您从这个频率分布开始:A0.1B0.3C0.4D0.2您的累积频率表将是:A0.1B0.4(=0.1+0.3)C0.8(=0.1+0.3+0.4)D1.0(=0.1+0.3+0.4+0.2)现在

Java:随机生成不同的名称

我需要在Java中生成10,000个唯一标识符。标识符应为数字和字母的混合,且每个字符少于10个。有任何想法吗?内置库将是一个额外的优势。 最佳答案 我很晚才回答这个问题,但这对新读者来说真的很有用。这是获取随机VALID名称的一种非常简单有效的方法。为此,在POM.xml中添加maven存储库com.github.javafakerjavafaker0.12然后在你的Java代码中使用Faker类Fakerfaker=newFaker();Stringname=faker.name().fullName();Stringfirst

java - 跨不同 jvm 或不同机器的 java 中的 Math.random() 有多随机

我有一个跨越许多不同物理服务器的大型分布式程序,每个程序都产生许多线程,每个线程在其操作中使用Math.random()从许多公共(public)资源池中抽取一block。目标是在所有操作中均匀地利用池。有时,通过查看资源池上的快照以查看它在那一刻获得了哪些片段,它看起来并不那么随机(实际上可能是这样,但很难测量和确定)。是否有比Math.random()更好并且表现同样出色(至少差不了多少)的东西? 最佳答案 Math.random()基于java.util.Random,它基于一个linearcongruentialgenera

Python random模块用法整理

随机数在计算机科学领域扮演着重要的角色,用于模拟真实世界的随机性、数据生成、密码学等多个领域。Python中的random模块提供了丰富的随机数生成功能,本文整理了random模块的使用。文章目录Pythonrandom模块注意事项Pythonrandom模块的内置函数randint()randrange()random()uniform()gauss(mu,sigma)sample()choice(sequence)shuffle(sequence)seed(a=None)Pythonrandom模块注意事项伪随机性:Python使用random模块生成各种分布的伪随机数。计算机生成的随机数

java - IntStream 来自 Random 和 Random 并发

使用相同的Random实例来生成一个流(或并行流)并影响其中一部分的流是否安全?考虑下面的代码。相同的gen用于生成并行IntStream并每隔几个字符生成一个随机空间。它运行并成功完成,没有抛出异常。但是这段代码线程安全吗?看起来是这样,因为没有无效(超出范围)的字符值。我想我应该破坏Random的内部数据,因为它的方法没有标记为synchronized,但显然情况并非如此。为什么?publicclassRandomGenTest{Randomgen=newRandom();StringgetRandomText(intlen,doublespaceProb){returngen.i

java - 如何在 Java 中创建用户友好的唯一 ID、UUID 或其他唯一标识符

我通常使用UUID类来生成唯一ID。如果这些ID仅由技术系统使用,则此方法工作正常,他们不关心它们有多长:System.out.println(UUID.randomUUID().toString());>67849f28-c0af-46c7-8421-94f0642e5d4d有没有一种很好的方法来创建比UUID短一点的用户友好的唯一ID(比如来自tinyurl的ID)?用例:您希望通过邮件将ID发送给访问您网站的客户,并将该号码输入表格,例如优惠券ID。我假设UUID在UUID的128位范围内平均生成。那么仅使用较低的64位是否明智?System.out.println(UUID.r

Java 好奇循环性能

我在评估我的Java代码时遇到了一个大问题。为了简化问题,我编写了以下代码,它们产生了同样奇怪的行为。重要的是方法run()和给定的双倍值率。对于我的运行时测试(在main方法中),我将速率一次设置为0.5,另一次设置为1.0。值为1.0时,if语句将在每次循环迭代中执行,值为0.5时,if语句将执行一半。出于这个原因,我预计第一种情况的运行时间会更长,但事实恰恰相反。谁能给我解释一下这个现象??主要结果:Testmitrate=0.5Length:50000000,IFexecutions:25000856Executiontimewas4329ms.Length:50000000,