如何在SML中使用IntInf或LargeInt?

2024-03-09

我想通过此链接中的 pow 等函数在 SML 中执行大整数计算:

http://www.standardml.org/Basis/int-inf.html#IntInf:STR:SPEC http://www.standardml.org/Basis/int-inf.html#IntInf:STR:SPEC

但我如何才能使用这个“图书馆”呢?


UPDATE:

感谢你的回答。我得到了它。我还必须更改打印限制

Control.Print.intinfDepth := 10000;

我为 IntInfs 创建了自己的 pow 函数(并且它有效),如下所示:

fun power 0 = IntInf.toLarge 1
  | power n = IntInf.toLarge 2 * power(n-1);

这取决于您使用的实现,但通常您需要使用以下命令将 Int 转换为 LageInt/InfInf 类型Int.toLarge:

(* will be types as an IntInf *)
val aa = 10983298432984329843298432984329843298432987987987432987987987432987
val a = IntInf.pow(aa,10);

(* explicit type as if some other constraint had enforced this*)
val b = 10 : int
val c = Int.toLarge b;

val d = IntInf.pow(c, b);

变量aa可能无法在您的解释器中进行解析。这取决于你使用什么。我已经在聚和米尔顿中测试过它。

其中上面获取类型(由带有 -show-basis 标志的 mlton 给出):

val a: intInf
val aa: intInf
val b: int32
val c: intInf
val d: intInf
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在SML中使用IntInf或LargeInt? 的相关文章

  • number_in_month 练习(SML 中多个列表的迭代)

    我在 SML 中有两个列表 假设列表 A a b c d e f 和列表B b e 我想计算 B 中每个项目与 A 中每个三元组的第二个元素匹配的次数 输出应该是 2 因为b and e每个在 A 中出现一次 到目前为止 这是我的代码 但是
  • 1/C# 中的 BigInteger

    我要实现 BigInteger ModPow 1 BigInteger 2 5 but 1 BigInteger总是回来0 这导致结果是0也 我试着寻找一些BigDecimalc 的类 但我什么也没找到 即使没有 有什么方法可以计算这个吗
  • Java中的尾递归函数仍然会破坏堆栈

    我正在尝试实现尾递归阶乘计算器 但仍然出现堆栈溢出 谁能帮我找出原因吗 我读过 Java 8 支持 Tail 调用优化 但我想我一定没有正确实现它 我读到可以使用 lambda 表达式 我不确定我是否完全理解这个概念 但我仍在阅读 我只是在
  • 将 BigInteger 二进制转换为 BigInteger 数字

    目前我正在使用Long整数类型 我使用以下命令来转换二进制 数字 Convert ToInt64 BinaryString 2 Convert binary string of base 2 to number Convert ToStri
  • gcc 在 x86 上使用 divdi3 除法进行 long long

    When gcc看到硬件不支持的整数类型的乘法或除法 它会生成对特殊库函数的调用 http gcc gnu org onlinedocs gccint Integer library routines html Integer librar
  • BigInteger.valueOf() 对于非常大的数字?

    在 Java 中将 50 位字符串转换为 BigInteger 的最佳方法是什么 它没有 valueOf String 方法 而且我无法转换为 Long 因为它太小了 它确实有一个BigInteger String http java su
  • 如何从 Java 中的 BigInteger 获取无符号字节数组?

    我需要转换一个大整数 https docs oracle com javase 7 docs api java math BigInteger html以大端格式编码的无符号整数 但我遇到了问题BigInteger toByteArray
  • byte[] 到无符号 BigInteger?

    动机 我想将哈希值 MD5 SHA1 等 转换为十进制整数 以便在 Code128C 中制作条形码 为简单起见 我希望所有结果 大 数字都是正数 我能够在 C 中将 byte 转换为 BigInteger 到目前为止我所拥有的样本 byte
  • 何时在 SML 中使用分号?

    我知道分号在 REPL 中用作终止符 但我对何时在源文件中使用它们感到困惑 例如 之后不需要val x 1 但如果我之后省略它use foo sml 编译器会抱怨它 那么 分号的使用规则是什么呢 分号用于 SML 中的许多语法实体 它们通常
  • 为什么有 BigInteger(String) 而没有 BigInteger(long)?

    在 Java 中 要将 String 转换为 BigInteger 可以使用构造函数new BigInteger String 但要转换 int long 你可以使用工厂函数BigInteger valueof long 这是为什么 Mor
  • Parallel.For 与 BigInteger 计算输出不同于 For 循环

    我有以下循环运行从 base95 到 base10 的转换 我正在处理几千位数字 因此需要 BigIntegers inst是base95字符串 Parallel For 0 inst Length x gt result BigInteg
  • 无限大小的整数?

    在Python中 我可以编写一个程序来计算无限大小的整数 就在前几天 我做了百万分之一斐波那契数 它太大了 无法放入控制台 如果可以在 Python 中做到这一点 据我了解 Python 是用 C 编写的 那么如何在 C 中做到同样的事情呢
  • 为什么我的处理器没有内置 BigInt 支持?

    据我了解 BigInts通常在大多数编程语言中实现为包含数字的数组 例如 当添加其中两个数字时 每个数字都会像我们在学校学到的那样被一个接一个地添加 例如 246 816 1062 其中 标记存在溢出 我在学校是这样学的 我实现的所有 Bi
  • 标准机器学习语法

    我是标准机器学习的新手 并尝试编写以下代码 fun whilestat test stmt1 fn x gt if test x then stmt1 x whilestat test stmt1 else x 问题是它给了我以下错误 w
  • 这种模式似乎很详尽,但我仍然收到警告

    我正在学习 sml 并编写了以下简单函数 Return a list with every other element of the input list fun everyOther everyOther x x everyOther x
  • 对 BigIntegers 列表求和

    我已经查看了所有内容 但无法弄清楚这一点 如何对 BigIntegers 列表求和 Using System Numerics Using System Linq List
  • BigIntegers、gcd、模逆来查找公钥

    所以 我使用 java 来查找 RSA 密码的公钥 现在我不确定我在做什么 也不确定它是否正确 我有公钥的信息 C 5449089907 n p q 8271344041 q 181123 p n q 45667 d 53 phi n p
  • 计算 a*a mod n 且不溢出

    I need to calculate a a mod n but a is fairly large resulting in overflow when I square it Doing a n a n n doesn t work
  • number_in_month 练习(计算列表中的元素数)

    我一直在尝试使用 SML 对整数 3 元组列表中的元素进行计数 该列表等于给定的整数 但它不起作用 谁能帮我找出下面的代码有什么问题或者为我纠正它 fun number in month x int int int list m int i
  • 标准 ML 展开列表

    路线 功能expand接收任意类型的列表和整数 数字n 并返回一个列表 其中输入列表的每个项目是 复制的n次 例如 展开 1 2 3 3 必须是 计算结果为 1 1 1 2 2 2 3 3 3 函数的类型必须是 a 列表 int 列表 这是

随机推荐