gpt4 book ai didi

javascript - JavaScript 中是否有一种方法可以在相对较快的时间内获得大量 BigInt 类型的表示?

转载 作者:行者123 更新时间:2023-12-04 10:50:07 26 4
gpt4 key购买 nike

作为实验,我计算了 60000! (阶乘)在 JavaScript 中使用 BigInt .大约需要 3.8 秒。为了显示结果的一些(或任何)表示,我只在屏幕上显示了前 10 位数字,使用

result.toString().slice(0, 10)

但令我惊讶的是,此操作耗时接近 4 秒,并且阻塞了浏览器 (Google Chrome) 的所有 UI。 (我确实有一些机制可以在计算阶乘期间产生处理器时间,因此不会阻塞 UI)。

有什么方法可以快速显示这个数字的表示吗?

附加信息: result.toString().length260630 .如果这个数字显示在页面上,它不会换行到下一行,Chrome 选项卡可能会卡住,因为它试图创建一个宽度适合这个数字的页面。

最佳答案

数字(或仅前 10 位数字)的输出需要这么多时间的主要原因是数字必须转换为十进制表示。这是一个巨大的计算,涉及数千个字节的移位,大数字的减法,一个 cary 通过这么多字节,所有这些都重复了数千次。

如果将输出代码替换为:

result.toString(2).slice(0, 10)
// ^^

...你会看到速度的显着提高。原因是此操作不需要基数转换,并且可以在线性时间内构建字符串(就字节数而言)。

关于javascript - JavaScript 中是否有一种方法可以在相对较快的时间内获得大量 BigInt 类型的表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59522790/

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