Mathematica 7で2つの整数を連結する
-
09-09-2020 - |
質問
Mathematica 7で2つの正の整数を連結する最も効率的な方法は何ですか?
cc[123, 4567]
>> 1234567
2つ以上の場合はどうなりますか?
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[{##}]] &
所属していません StackOverflow