首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大数字最适合的类型是什么?

大数字最适合的类型是什么?
EN

Stack Overflow用户
提问于 2019-10-01 07:40:28
回答 2查看 116关注 0票数 1

我想要创建一个独特的交易in,IBANs随机在朱莉娅。

当IBAN域为as {2}0-9{32}或as{34}(即.(最多10^51),并假设每个帐户每天最多10 txns。

在txn处理系统和决策支持系统中,是否应该选择事务id类型作为String或Bigint及其优缺点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-01 13:37:58

@Mathieu_B关于使用UUID的建议是有意义的,但是如果您更喜欢严格的数字,也可以轻松地使用UInt128的:

代码语言:javascript
复制
julia> rand(UInt128)
0xa62ff810bcd06e644f5df0a64611cc0b

UUID和UInt128中的位数是相同的,因此这至少应该与uuid4()生成的UUID一样唯一(即随机)。UUID的主要优点是,如果需要使用UUID,还可以实现其他方法:

  • uuid1:基于日期时间和MAC地址的
  • uuid4:随机/伪随机
  • uuid5:基于散列的
票数 4
EN

Stack Overflow用户

发布于 2019-10-01 09:05:34

如果您要寻找的是标识符,那么像UUID这样的系统可能更合适。在Julia中,标准库中的UUIDs模块可以帮助:

代码语言:javascript
复制
julia> using UUIDs: uuid4

julia> import Random

julia> Random.seed!(43);

julia> uuid4()
UUID("7d6398a5-f5bb-4164-8552-1668b964e46f")

julia> uuid4()
UUID("93938d68-980f-40b1-b1f9-789c5230116c")

与UUID相比,UUID的速度要快于String,并且与BigInt大致相同。下面是使用BenchmarkTools.jl的快速基准测试,在运行时估计时不考虑setup部件:

代码语言:javascript
复制
julia> using BenchmarkTools: @btime

julia> @btime s1 == s2 setup=(s1=string(uuid4()); s2=string(uuid4()))
  5.685 ns (0 allocations: 0 bytes)

julia> @btime s1 == s2 setup=(s1=uuid4(); s2=uuid4())
  1.640 ns (0 allocations: 0 bytes)

julia> @btime s1 == s2 setup=(s1=BigInt(rand(Int)); s2=BigInt(rand(Int)))
  2.976 ns (0 allocations: 0 bytes)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58180129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档