如何解决在Mathematica 7中将两个整数连接
| 在Mathematica 7中连接两个正整数的最有效方法是什么?cc[123,4567]
>>1234567
那两个以上呢?
cc[123,4,567,89]
>>123456789
解决方法
对于许多整数,这将比您上一个解决方案稍快一些:
ToExpression[StringJoin @@ Map[IntegerString,{##}]] &
一个更简洁的选择是接受单个参数,假设它是要连接的数字的列表而不是序列:
ToExpression@StringJoin@IntegerString@#&
基于IntegerString
是Listable
。
,这仅适用于短整数,因为输出必须是机器大小,但这是我发现的最快速度:
Compile[{{a,_Integer},{b,_Integer}},b + a 10^Floor[1 + Log[10,b]]
]
对于更长的整数,我能找到的最快的是:
FromDigits[{##},10^IntegerLength@#2] &
对于连接多个整数,以下内容比上一个中的Fold
快:
FromDigits[Join @@ IntegerDigits[{##}]] &
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。