2

我想使用 R 生成一个随机的 20 位数字。

我的第一次尝试是做

runif(1,10000000000000000000,9999999999999999999)

但这似乎不起作用,因为 R 不断将 9999999999999999999 舍入为 10000000000000000000。它似乎不接受“9999”数字,直到我下降到 15 位数:

> 9999999999999999999
[1] 10000000000000000000
> 999999999999999999
[1] 1000000000000000000
> 99999999999999999
[1] 100000000000000000
> 9999999999999999
[1] 10000000000000000
> 999999999999999
[1]  999999999999999
> 99999999999999
[1]  99999999999999
> 9999999999999
[1]  9999999999999

有没有更好的方法来解决这个问题?

4

2 回答 2

9

您可以将此数字生成为字符串:

paste( sample( 0:9, 20, replace=TRUE ), collapse="" )
# [1] "40910135645767200675"
于 2013-09-20T18:50:11.680 回答
1
set.seed(1)
sprintf("%20.0f",runif(1,1e19,1e20))
#[1] "33895779682788999168"
于 2013-09-20T18:51:41.767 回答