在 Racket 中创建一个大的随机数

乔什格兰特

我试图在 Racket 中生成一个非常大的随机数,介于 0 和 1e20 之间。

(random) 限制设置在 1 到 4294967087 的范围内。

我创建了一个尝试生成随机数的 hack-y 函数,但仅基于数量级而不是实际数字。这是那个函数:

define (l-random [min 0] [max 10])
  (define length (random (number-length min) (number-length max)))
  (define string "")
  (for ([i length])
    (set! string (format "~a~a" string (random 0 10))))
  (string->number string))

这是我计算数量级的方法:

(define (number-length number)
  (cond [(= 0 number) 1]
        [else (+ 1 (exact-floor (log (abs number) 10)))]))

您有什么建议或解决方案吗?谢谢!

亚历克斯五世

Science Collection 中随机数生成模块正是您所需要的。以下是 DrRacket repl 的示例(根据您的规范最多 1e20):

Welcome to DrRacket, version 6.3 [3m].
Language: racket; memory limit: 256 MB.

> (require (planet williams/science/random-source))

> (random-integer (expt 10 20))
79219429305569404064

在一秒钟内运行!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 Racket 中匹配 AST

来自分类Dev

从 Racket 中的结构创建列表

来自分类Dev

模式与Racket中的流匹配?

来自分类Dev

遍历Racket中的结构列表?

来自分类Dev

递归读取Racket中的文件

来自分类Dev

NetLogo中的概率-使用一个或创建一个随机数

来自分类Dev

在scheme(racket)中创建列表的空列表

来自分类Dev

在Racket中将单词列表组合到一个段落

来自分类Dev

如何在Racket中创建一个列表,使其可以按照添加元素的相同顺序进行迭代?

来自分类Dev

创建一个充满随机数的新列

来自分类Dev

从微秒创建一个伪随机数

来自分类Dev

如何创建一个随机数序列

来自分类Dev

创建一个在每一列中具有随机数的数据框

来自分类Dev

我想创建一个C ++程序以将随机数生成到文件中

来自分类Dev

如何在python中创建一个六边形随机数?

来自分类Dev

如何在Racket中解析JSON?

来自分类Dev

在Racket中,列表比矢量有什么优势?

来自分类Dev

如何在Racket中处理GUI退出?

来自分类Dev

重新绑定Racket中的模块名

来自分类Dev

如何在Racket中返回参数值?

来自分类Dev

Racket中的运行时模式匹配

来自分类Dev

在Racket中安装软件包

来自分类Dev

在Racket中打包关键字参数?

来自分类Dev

用Racket中的模拟对象修补猴子

来自分类Dev

Racket中参数的用途是什么?

来自分类Dev

重新定义Racket中的变量列表

来自分类Dev

Racket中的基元和内置函数

来自分类Dev

如何不重复 Racket 中的代码

来自分类Dev

如何在Racket中设置一个非常基本的请求响应HTTP服务器?