भिन्नों को कम करना गलत तरीका है
इस कोड-गोल्फ चुनौती में आपको ऐसे अंश ढूंढने होंगे जो गलत तरीके से कम हो सकते हैं लेकिन फिर भी एक ही संख्या में समाप्त हो सकते हैं।
नोट: भिन्नों को कम करने से गलत तरीके से यहां एक सटीक परिभाषा होती है, विवरण देखें।
उदाहरण:
64/16 = 6 4/1 6 = 4/1 = 4
बेशक आप दोनों 6es पर हमला नहीं कर सकते हैं, लेकिन यहां आप अभी भी सही मूल्य के साथ समाप्त होते हैं। इस चुनौती में आपको इस तरह के उदाहरण खोजने होंगे।
विवरण
आपको एक फ़ंक्शन / प्रोग्राम लिखना होगा जो n
इनपुट और आउटपुट के रूप में एक सकारात्मक पूर्णांक को स्वीकार करता है / प्रारूप में भिन्नता की एक सूची / सरणी देता है।
numerator1,denominator1,numerator2,denominator2,...
कार्यक्रम के a/b
साथ प्रत्येक अंश के लिए पता लगाना है a+b=n
और a,b>0
क्या इसे गलत तरीके से कम किया जा सकता है । (इससे कोई फर्क नहीं पड़ता कि क्या इसे पारंपरिक तरीके से कम किया जा सकता है या क्या इसमें कटौती की बहुत संभावनाएं हैं या नहीं, बस इसे गलत तरीके से कम करना संभव है कम से कम एक तरीके से ।)
गलत तरीके की परिभाषा : एक अंश को गलत तरीके से कम किया जा सकता है यदि और केवल यदि क्रमिक अंकों का एक ही क्रम बी और बी में दिखाई देता है यदि अंश हटाए जाने पर अंश का मान समान रहता है।
उदाहरण: 1536/353 को 16/3 पर 'कम' किया जा सकता है, लेकिन वे दो मूल्य समान नहीं हैं, इसलिए आप इस अंश को गलत तरीके से कम नहीं कर सकते हैं ।
ध्यान दें कि गलत तरीके से कम करने की इस परिभाषा में वे अंश भी शामिल हो सकते हैं जो सही तरीके से कम हो जाते हैं: गलत तरीके110/10 = 11/1
से कम करने की परिभाषा के भीतर भले ही यह एक वैध कदम हो।
स्कोरिंग
कम से कम बाइट्स जीतता है। आप एक फ़ंक्शन या प्रोग्राम लिख सकते हैं जो एक पूर्णांक को स्वीकार करता है और एक सरणी या एक प्रोग्राम देता है जो स्टड / स्टडआउट का उपयोग करता है या आप एक चर में एन बचाया पर विचार कर सकते हैं और कार्यक्रम के अंत में सूची को दूसरे चर में सहेजा जाना चाहिए।
परीक्षण के मामलों
कृपया निम्नलिखित टेस्टकेस शामिल करें (मुझे बताएं कि मुझे किन लोगों को जोड़ना चाहिए, मुझे नहीं पता कि उनमें से कितने अंश हैं / उम्मीद करने के लिए कितने उदाहरण हैं)
n=80 (64/16 should be in this list)
n=147 (98/49 should be in this list)
n=500 (294/196 should be in this list) WRONG since 294+196 != 500 Thanks Falko
1010/10 = 101/1 && 1010/10 /= 110/1
n=147
) गलत है 49/89 != 4/8
:।