में दो पूर्णांकों को सम्मिलित करें गणित 7 में दो सकारात्मक पूर्णांक को संयोजित करने का सबसे प्रभावी तरीका क्या है?गणित 7
cc[123, 4567]
>>1234567
के बारे में क्या दो से अधिक?
cc[123, 4, 567, 89]
>>123456789
में दो पूर्णांकों को सम्मिलित करें गणित 7 में दो सकारात्मक पूर्णांक को संयोजित करने का सबसे प्रभावी तरीका क्या है?गणित 7
cc[123, 4567]
>>1234567
के बारे में क्या दो से अधिक?
cc[123, 4, 567, 89]
>>123456789
यह कई पूर्णांकों के लिए थोड़ा तेज हो जाएगा, अपने पिछले समाधान की तुलना में:
ToExpression[StringJoin @@ Map[IntegerString, {##}]] &
एक अधिक संक्षिप्त विकल्प एक भी तर्क स्वीकार करने के लिए है, यह मानते हुए कि एक सूची होने के लिए, बजाय है संख्या का एक अनुक्रम, श्रेणीबद्ध करने के लिए:
[email protected]@[email protected]#&
जो IntegerString
जा रहा है Listable
पर आधारित है।
यह केवल कम पूर्णांकों के लिए ठीक से काम करता है क्योंकि उत्पादन मशीन आकार में होना चाहिए, लेकिन यह सबसे तेजी से मैंने पाया है:
Compile[{{a, _Integer}, {b, _Integer}},
b + a 10^Floor[1 + Log[10, b]]
]
अब पूर्णांकों के लिए, सबसे तेजी से मैं कर सकता लगता है:
FromDigits[{##}, 10^[email protected]#2] &
कई पूर्णांकों श्रृंखलाबद्ध के लिए, निम्न में से एक पर तेजी से Fold
से था इसके बाद के संस्करण:
FromDigits[Join @@ IntegerDigits[{##}]] &
मेरे समय में संकलित समारोह में 'इंटीजर लम्बाई [बी] 'का उपयोग' मंजिल [...] 'के उपयोग से 20 गुना तेज है। –
@Sjoerd, क्या संस्करण 8 में है? –
@ श्री विज़ार्ड 'फोल्ड' धीमा है क्योंकि यह लंबे एरे के लिए बहुत बड़े लोगों द्वारा छोटे पूर्णांक गुणा करने के समाप्त होता है। विभाजन और जीत का उपयोग करके आप 2 गति का कारक प्राप्त कर सकते हैं: 'साफ़ करें [सीसी 4]; सीसी 4 [{i_}]: = i; सीसी 4 [{i1_, i2_}]: = प्रेषक [{i1, i2}, 10^इंटीजर लम्बाई [i2]]; सीसी 4 [x_List]: = के साथ [{के = कोटिएंट [लंबाई [x] + 1, 2]}, सीसी 4 [{सीसी 4 [[एक्स, के] ले लो], सीसी 4 [ड्रॉप [एक्स, के]]}]] ' । – Sasha