这是使用 Zarith 图书馆的有效方式吗
Is this a valid way to use the Zarith Library
我想知道 Printf.printf "%d \n" Z.(s1 num2)
是否是使用 Zarith
库的有效方法。
不知道是否需要更多上下文,但是函数 s1 是关于 Schroder 序列的,当我使用大于 25 的数字时,它不会显示任何数字(因为数字太大了吧?那是 Zarith
进入)但我不确定它是否真的有效。
我将 Zarith 加载到我的 OCaml 顶层(OCaml 的 REPL)。如果我尝试你提供的,这是我看到的:
# Printf.printf "%d\n" Z.(s1 num2);;
Error: Unbound value s1
这是有道理的,在Z
模块(Zarith的大整数模块)中没有名为s1
的符号。如果您对 s1
有自己的定义,则必须显示其定义以获得帮助。
如果要打印出一个大整数,则不能将其打印为整数(%d 格式)。您必须转换为字符串并打印出来。这是打印出 2 ^ 101:
的顶层会话
# #load "zarith.cma";;
# #load "zarith_top.cma";;
# let big = Z.(of_int 1 lsl 101);;
val big : Z.t = 2535301200456458802993406410752
# Printf.printf "{{%s}}" (Z.to_string big);;
{{2535301200456458802993406410752}}- : unit = ()
我想知道 Printf.printf "%d \n" Z.(s1 num2)
是否是使用 Zarith
库的有效方法。
不知道是否需要更多上下文,但是函数 s1 是关于 Schroder 序列的,当我使用大于 25 的数字时,它不会显示任何数字(因为数字太大了吧?那是 Zarith
进入)但我不确定它是否真的有效。
我将 Zarith 加载到我的 OCaml 顶层(OCaml 的 REPL)。如果我尝试你提供的,这是我看到的:
# Printf.printf "%d\n" Z.(s1 num2);;
Error: Unbound value s1
这是有道理的,在Z
模块(Zarith的大整数模块)中没有名为s1
的符号。如果您对 s1
有自己的定义,则必须显示其定义以获得帮助。
如果要打印出一个大整数,则不能将其打印为整数(%d 格式)。您必须转换为字符串并打印出来。这是打印出 2 ^ 101:
的顶层会话# #load "zarith.cma";;
# #load "zarith_top.cma";;
# let big = Z.(of_int 1 lsl 101);;
val big : Z.t = 2535301200456458802993406410752
# Printf.printf "{{%s}}" (Z.to_string big);;
{{2535301200456458802993406410752}}- : unit = ()