Mathematica 7에서 두 개의 정수를 연결합니다
-
09-09-2020 - |
문제
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] &
.
많은 정수를 연결하기 위해 위의
다음과 같은 많은 정수를 연결합니다.FromDigits[Join @@ IntegerDigits[{##}]] &
. 제휴하지 않습니다 StackOverflow