当前位置: 首页 > 知识库问答 >
问题:

如何在Clojure中实现一个全包含随机数函数?

柯琛
2023-03-14

我想知道如何在Clojure中包含随机数。我想出了这个:

(import java.util.Random)

(def rnd 
  (Random.))
(defn random-float 
  [min max rnd] 
  (+ min (* (.nextDouble rnd) (- max min))))

看起来Java只有包含/排他的随机函数。根据文件:

nextDouble的一般约定是伪随机生成并返回一个double值,该值(近似)均匀地从0.0D(含)到1.0D(不含)的范围中选择。

有没有一种方法可以有一个包含/包含这个函数的版本。我正在考虑用一个微小的位(0.0000000000000001)来增加最大值。不确定如果我这样做会有什么影响。

这样行吗?

(random-float 0.0 1.0000000000000001 rnd)

共有1个答案

白云
2023-03-14

双精度对你的案子有多重要?

您可以使用Clojure.core的rand-int对所有内容使用整数,例如:

  • 对于介于0-100之间的数字:(rand-int 101)
  • 对于介于0-1000之间的数字:(rand-int 1001)
 类似资料:
  • 问题 你想要获得两个整数(包含在内)之间的一个随机整数。 解决方案 使用以下的函数。 randomInt = (lower, upper) -> [lower, upper] = [0, lower] unless upper? # 用一个参数调用 [lower, upper] = [upper, lower] if lower > upper #

  • 问题内容: 我对Swift和编程逻辑很陌生,所以请耐心等待 如何在Swift中生成0到9之间的随机数而不重复最后生成的数字?因为相同的数字不会连续出现两次。 问题答案: 将先前生成的数字存储在变量中,然后将生成的数字与先前的数字进行比较。如果它们匹配,则生成一个新的随机数。重复生成新数字,直到它们不匹配为止。

  • 我如何创建一个懒散的随机数序列? 执行它将引发异常: (线程“main”clojure.lang.arityException中的异常:传递给:USER$random-numbers$fn at clojure.lang.afn.throwarity(afn.java:437)at clojure.lang.afn.invoke(afn.java:39)at clojure.core$iterat

  • 我有一个AnyLogic模型,它使用JAXB函数解析XML文件。该模型以前可以工作,但现在不行了,因为很明显,较新的Java版本不包括JAXB。关于如何在Java程序中做到这一点的在线示例不适合任何逻辑环境。 基于在线搜索,我下载并包含了AnyLogic模型中的文件。它本身不起作用,并导致以下错误: 两者都导致了相同的错误: 在线指导,例如https://www.dariawan.com/tuto

  • 本文向大家介绍如何生成一个随机数?相关面试题,主要包含被问及如何生成一个随机数?时的应答技巧和注意事项,需要的朋友参考一下  

  • 问题内容: 如何在MS SQL“包含”函数中转义双引号字符? 通常contains()期望双引号将一个精确的短语括起来以匹配,但是我想搜索一个实际的双引号字符。我尝试用\,`甚至另一个双引号将其转义,但是没有一个起作用。 PS我意识到也可以使用LIKE语句来完成类似这样的简单示例,但是我需要使用全文本搜索功能。出于示例目的,我在此处提供的查询已从我的实际查询中简化了。 问题答案: 从 文档 : 标