草庐IT

random_length_user

全部标签

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 - 为什么? "Always declare user defined exceptions as final"

我使用Java源代码分析器分析了我正在处理的代码。其中一条警告是“始终将用户定义的异常声明为最终异常”。还有许多其他没有多大意义的警告,但这个警告让我有点困惑。我正在开发一个框架,我有一个根通用异常(比如FrameworkGenericException),对于其他异常,我只是从根异常中派生它们。所以我有一个框架的异常层次结构。我可能会扩展层次结构,但我认为这个警告告诉我不要有这样的层次结构,而是单独定义它们。那么我应该走哪条路,你有什么意见? 最佳答案 这可能是他们的标准做法:如果类不应该被继承,则将类声明为final,而且他们可

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

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

Visual Studio Code报错:You are trying to start Visual Studio Code as a super user which isn‘t......

01、具体报错[root@localhost~]#codeYouaretryingtostartVisualStudioCodeasasuperuserwhichisn'trecommended.Ifthiswasintendedpleaseaddtheargument`--no-sandbox`andspecifyanalternateuserdatadirectoryusingthe`--user-data-dir`argument.02、报错原因不推荐以root账户启动vscode,需要添加参数03、解决方案[root@localhost~]#pwd/root#在root目录下[root

java - 在 Spring Java 配置中引用 ${user.home}

这个问题在这里已经有了答案:Changeuser.homesystemproperty(2个答案)关闭9年前。在xml配置中,我可以执行以下操作:在java配置中,我将执行以下操作:/***@returna{@linkorg.springframework.context.support.PropertySourcesPlaceholderConfigurer}sothatplaceholdersarecorrectlypopulated*@throwsExceptionexceptionifthefileisnotfoundorcannotbeopenedorread*/@Beanp

java - HttpServletRequest#getHeader ("User-Agent") 返回空浏览器名称

我使用的是Java6。我对JSP和Servlet的了解非常少。我使用以下代码获取运行我的应用程序的浏览器名称:StringbrowserName=requestProvider.get().getHeader("User-Agent");我还使用以下代码获取运行我的应用程序的机器的IP地址:StringipAdd=requestProvider.get().getRemoteAddr();在这两种情况下requestProvider是Provider类型的引用变量.我确信它永远不会NULL.现在的问题是有时我得到两个值(browserNameandipAdd)NULL。我有时会写,因为

java - 检查 string.length == 0 是否仍然比检查 string == ""更快?

大约7-8年前,我从一本编程书籍中读到,检查string.length==0是一种检查空字符串的更快方法。我想知道这句话在今天是否仍然适用(或者它是否曾经是真的),因为我个人认为string==""更直接、更易读。我主要处理.NET和java等高级语言。 最佳答案 在Java中进行该测试的最佳方法是"".equals(string)因为它处理字符串为空的情况。至于哪个更快,我想答案是无所谓。两者都非常快,实际上哪一个最快取决于内部编译器的实现。 关于java-检查string.lengt

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

java - 使用 Random.setSeed 的重要性是什么?

编写Java程序时,我们使用setSeed在Random类中。我们为什么要使用这种方法?我们不能只使用Random而不使用setSeed吗?使用setSeed的主要目的是什么? 最佳答案 它的一个用途是它使您能够在未来重现您的程序的结果。例如,我想为数据库中的每一行计算一个随机变量。我希望程序可以重现,但我希望行之间具有随机性。为此,我将随机数种子设置为每一行的主键。这样,当我再次运行该程序时,我得到了相同的结果,但在行之间,随机变量是伪随机的。 关于java-使用Random.setS

java - 什么是 java.util.Random.next(n) 的 O(n)

我想知道java.util.Random.next(n)是否与n成线性关系还是一个常数?有人可以帮我解决这个问题,或者告诉我如何确定复杂性吗? 最佳答案 来自文档:Random.nextInt(n)usesRandom.next()lessthantwiceonaverage-itusesitonce,andifthevalueobtainedisabovethehighestmultipleofnbelowMAX_INTittriesagain,otherwiseisreturnsthevaluemodulon(thispreve