gpt4 book ai didi

functional-programming - Erlang 如何存储大数?

转载 作者:行者123 更新时间:2023-12-04 08:43:06 26 4
gpt4 key购买 nike

我一直在修补一个阶乘模块,如下所示:

-module(factorial).
-export([factorial/1]).

factorial(0) ->
1;
factorial(Val)->
Val * factorial(Val-1).

如果我运行:
1> c(factorial).
{ok,factorial}
2> factorial:factorial(100).

我得到:
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

Erlang 是如何如此轻松地保存如此大的数字的?在 erlang.org 上,当它谈到数字类型时,它只是声明它们要么持有整数,要么持有浮点数。它必须是某种动态整数,可以根据需要调整其字节大小?

我觉得这很酷,我只是不知道它是怎么做的。

最佳答案

它是许多函数式编程语言的共同特征,称为 Arbitrary precision arithmetic .

请注意,在 Erlang 中,可以使用任意精度 o nly for integers, not floats .

关于functional-programming - Erlang 如何存储大数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36659126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com