在Mathematica 7中串联两个整数
-
09-09-2020 - |
题
如何在Mathematica 7中连接两个正整数的最有效方式?
cc[123, 4567]
>> 1234567
多两个?
cc[123, 4, 567, 89]
>> 123456789
解决方案
许多整数比你的上一个解决方案略微更快:
ToExpression[StringJoin @@ Map[IntegerString, {##}]] &
.
更简洁的替代方法是接受一个参数,假设它是名单,而不是一个序列,而不是一个连接:
ToExpression@StringJoin@IntegerString@#&
.
基于生成的世代aticetagcode是生成的。
其他提示
这只适用于短整数,因为输出必须是机器尺寸,但它是我找到的最快:
Compile[{{a, _Integer}, {b, _Integer}},
b + a 10^Floor[1 + Log[10, b]]
]
.
对于更长的整数,我能找到的最快是:
FromDigits[{##}, 10^IntegerLength@#2] &
.
要连接许多整数,则在上面的一个上述情况比生成频率速度更快:
FromDigits[Join @@ IntegerDigits[{##}]] &
. 不隶属于 StackOverflow