Wolfram mathematica FromDigits怎么了?

Wolfram mathematica FromDigits怎么了?,wolfram-mathematica,Wolfram Mathematica,我以为我知道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 l

我以为我知道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个十进制数字

携带大于底数的数字:例如

FromDigits[{7, 11, 0, 0, 0, 122}] will give 810122

有关更多信息,请访问

我认为字符串黑客可能是您想要的。这个

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
这会将列表转换为字符串,将每个逗号空格分隔符替换为零,将生成的字符串转换为整数,并丢弃现在不需要的花括号。

还有其他几种方法

     FromDigits@Flatten@IntegerDigits@
        {9, 50, 0, 50, 1, 50, 2, 50, 3, 50, 4, 50, 5, 50, 6, 50, 7, 50, 8, 50, 9}
9500501502503507508509

     (ToString /@ # // StringJoin // ToExpression) &@
        {9, 50, 0, 50, 1, 50, 2, 50, 3, 50, 4, 50, 5, 50, 6, 50, 7, 50, 8, 50, 9} 

9500501502503507508509

我明白了。。。有没有一种方法可以像我所说的那样连接列表中的数字?正如Solarmew所说:FromDigits[Flatten[IntegerDigits/@n[[990;;]]]]也可以,谢谢。我只是希望有一种更直接的单指令方式。我还在想我是否喜欢Mathematica,我已经断断续续地使用了一段时间,从来没有真正坐下来彻底学习,但是我真的很想喜欢Python,我刚刚参加了一个在线介绍课程,到目前为止,它似乎没有Mathematica想象的那么令人沮丧。世界上每个人都想在他们的生活中做的每一个想法都有一个独特的Mathematica函数名。你怎么能找到一个足够大的目录来容纳所有的或找到你想要的呢。关于第二点,每种语言都有学习曲线。Mathematica是一种非常非常不同的语言,即使是你认为你知道它们是如何工作的,实际上也可能在表面下做着非常不同的事情。我建议找一本真正符合你风格的好书,用它来学习数学思维方式。
     (ToString /@ # // StringJoin // ToExpression) &@
        {9, 50, 0, 50, 1, 50, 2, 50, 3, 50, 4, 50, 5, 50, 6, 50, 7, 50, 8, 50, 9}