FromDigits 发生了什么?
What's happening with FromDigits?
我以为我知道 FromDigits 的工作原理,但它现在正在做一些疯狂的事情。
n[[990;;]]
FromDigits[n[[990;;]]]
输出:
{9, 50, 0, 50, 1, 50, 2, 50, 3, 50, 4, 50, 5, 50, 6, 50, 7, 50, 8, 50, 9}
1405060708091011121309
而不是 950050150...
怎么回事?
文档说
FromDigits : constructs an integer from the list of its decimal digits.
因此数组中的每个数字都必须小于 10(十进制数字)才能进行简单的串联。
比基数大的数字是"carried":例如
FromDigits[{7, 11, 0, 0, 0, 122}] will give 810122
有关详细信息,请访问 http://reference.wolfram.com/language/ref/FromDigits.html
我想 "string hacking" 可能就是您要的。这个
myn = {9, 50, 0, 50, 1, 50, 2, 50, 3, 50, 4, 50, 5, 50, 6, 50, 7, 50, 8, 50, 9};
ToExpression[StringReplace[ToString[myn], ", " -> ""]][[1]]
给你这个整数
9500501502503504505506507508509
这会将您的列表变成一个字符串,将每个逗号 space 分隔符替换为空,将生成的字符串变回整数并丢弃现在不需要的大括号。
其他几种方式..
FromDigits@Flatten@IntegerDigits@
{9, 50, 0, 50, 1, 50, 2, 50, 3, 50, 4, 50, 5, 50, 6, 50, 7, 50, 8, 50, 9}
9500501502503504505506507508509
(ToString /@ # // StringJoin // ToExpression) &@
{9, 50, 0, 50, 1, 50, 2, 50, 3, 50, 4, 50, 5, 50, 6, 50, 7, 50, 8, 50, 9}
9500501502503504505506507508509
我以为我知道 FromDigits 的工作原理,但它现在正在做一些疯狂的事情。
n[[990;;]]
FromDigits[n[[990;;]]]
输出:
{9, 50, 0, 50, 1, 50, 2, 50, 3, 50, 4, 50, 5, 50, 6, 50, 7, 50, 8, 50, 9}
1405060708091011121309
而不是 950050150...
怎么回事?
文档说
FromDigits : constructs an integer from the list of its decimal digits.
因此数组中的每个数字都必须小于 10(十进制数字)才能进行简单的串联。
比基数大的数字是"carried":例如
FromDigits[{7, 11, 0, 0, 0, 122}] will give 810122
有关详细信息,请访问 http://reference.wolfram.com/language/ref/FromDigits.html
我想 "string hacking" 可能就是您要的。这个
myn = {9, 50, 0, 50, 1, 50, 2, 50, 3, 50, 4, 50, 5, 50, 6, 50, 7, 50, 8, 50, 9};
ToExpression[StringReplace[ToString[myn], ", " -> ""]][[1]]
给你这个整数
9500501502503504505506507508509
这会将您的列表变成一个字符串,将每个逗号 space 分隔符替换为空,将生成的字符串变回整数并丢弃现在不需要的大括号。
其他几种方式..
FromDigits@Flatten@IntegerDigits@
{9, 50, 0, 50, 1, 50, 2, 50, 3, 50, 4, 50, 5, 50, 6, 50, 7, 50, 8, 50, 9}
9500501502503504505506507508509
(ToString /@ # // StringJoin // ToExpression) &@
{9, 50, 0, 50, 1, 50, 2, 50, 3, 50, 4, 50, 5, 50, 6, 50, 7, 50, 8, 50, 9}
9500501502503504505506507508509