एक अनंत श्रृंखला बनाओ


16

चलो कार्यों के एक वर्ग को परिभाषित करते हैं। ये फ़ंक्शन सकारात्मक पूर्णांक से सकारात्मक पूर्णांक तक मैप करेंगे और निम्न आवश्यकताओं को पूरा करना चाहिए:

  • फ़ंक्शन को Bijective होना चाहिए, जिसका अर्थ है कि प्रत्येक मान मैप करता है और बिल्कुल एक मान से मैप किया जाता है।

  • आप किसी भी सकारात्मक पूर्णांक से किसी भी अन्य सकारात्मक पूर्णांक तक फ़ंक्शन या उसके व्युत्क्रम के बार-बार अनुप्रयोगों द्वारा प्राप्त कर सकते हैं।

अब, कुछ कोड लिखें जो इस वर्ग के किसी भी कार्य को उसके इनपुट पर करेगा।

यह एक प्रश्न है, इसलिए उत्तर बाइट्स में स्कोर किए जाएंगे, कम बाइट बेहतर होने के साथ।


1
क्या आप एक उदाहरण दे सकते हैं?
जैक

1
@Jack ज़रूर, समारोह है कि 1 नक्शे पर विचार करें -> 2 यह संख्या शून्य से 2, और उस नंबर के साथ साथ 2. के लिए हर भी संख्या के लिए हर दूसरे विषम संख्या के नक्शे
पोस्ट रॉक Garf हंटर

1
पक्का नहीं मै समझ गया। क्या f (x): = x + 1 इस वर्ग का एक कार्य होगा? उस मामले में, 1+आम लिस्प में यहाँ चाल करना चाहिए।
मोनोडा43

2
@ MONODA43 सभी पूर्णांकों पर विचार करते समय यह फ़ंक्शन एक आक्षेप है। लेकिन यह सवाल सकारात्मक पूर्णांक पर एक आपत्ति के लिए पूछता है। आपका सुझाव 1 आउटपुट करने में विफल होगा क्योंकि कोई भी x x + 1 = 1 के लिए सकारात्मक नहीं है।
कास्परड

1
@Cowsquack आप फ़ंक्शन या इसके व्युत्क्रम के बार-बार अनुप्रयोगों द्वारा किसी भी सकारात्मक पूर्णांक से किसी अन्य सकारात्मक पूर्णांक तक प्राप्त करने में सक्षम होना चाहिए। पहचान को लागू करने से आप 1 से 2 तक प्राप्त नहीं कर सकते, चाहे आप कितनी भी बार दोहराएं।
कैस्परल्ड

जवाबों:



6

पायथन, 22 बाइट्स

lambda n:n+n%2*4-2or 1

सम संख्याएं पिछली सम संख्या तक जाती हैं, विषम संख्या अगली विषम संख्या तक जाती हैं, और मैपिंग 2 -> 1 उन दोनों को जोड़ता है।


प्रतीक्षा करें ... तो 6 का परिणाम 5 या 8 हो सकता है? यह अमान्य है
विध्वंसक नींबू

@DestructibleLemon नहीं, मेरे स्पष्टीकरण में भी सिर्फ एक बदला हुआ विषम है।
orlp

5

जावास्क्रिप्ट (ईएस 6), 20 बाइट्स

n=>n>1?n%2?n-2:n+2:2

मैप्स ... -> 5 -> 3 -> 1 -> 2 -> 4 -> ..., जो मुझे लगता है कि वैध है। यदि मैं गलत हूं तो मुझे सही करों...


9
एक जैसे दिमाग महान सोचते हैं। मैं उलटा उपयोग कर रहा हूं।
डेनिस

@ डेनिस हेह, और मुझे अभी-अभी पता चला है कि उलटा 1 बाइट छोटा है:n=>n%2?n+2:n-2||1:2
ETHproductions

@ डेनिस आपको Yoda होने की पुष्टि की गई है: o ( StepHen की चैट पोस्ट )
HyperNeutrino

@ हाइपर न्युट्रीनो , एक जैसे दिमाग से सोचते हैं
Pavel


4

जेली , 6 बाइट्स

-*Ḥạo1

इसे ऑनलाइन आज़माएं!

यह काम किस प्रकार करता है

-*Ḥạo1  Main link. Argument: n

-*      Compute (-1)**n, yielding 1 for even n and -1 for odd n.
  Ḥ     Unhalve; multipliy the result by 2.
   ạ    Compute the absolute difference of the result and n.
    o1  If the difference is 0, yield 1.

13
क्या हम वाकई डेनिस को 'अनहेल्दी' से दूर होने दे रहे हैं? Haha।
orlp

2

पायथन 3, 43 बाइट्स

lambda n,a=(1,3,-3,-1):n+a[n%4]if n-2else 1

इसे ऑनलाइन आज़माएं!

और व्युत्क्रम, 43 बाइट्स:

lambda n,a=(-3,-1,1,3):n+a[n%4]if n-1else 2

इसे ऑनलाइन आज़माएं!

TIO लिंक डेनिस के परीक्षण पाद लेख कोड का उपयोग करते हैं।

चूंकि हर कोई एक तरह से काम कर रहा है, इसलिए मैंने फैसला किया कि मैं अलग होऊंगा, इसलिए मैंने खुद से बनाया (हालांकि मैं शायद ऐसा करने वाला पहला व्यक्ति नहीं हूं)। यह फ़ंक्शन नक्शे की तरह है ... 10 -> 7 -> 6 -> 3 -> 2 -> 1 -> 4 -> 5 -> 8 -> 9 -> ..., अगर आप चाहें तो मैं आपको परीक्षण करने के लिए बनाई गई हाथ की ड्राइंग दिखा सकता हूं।

मेरा गोल्फ एल्गोरिथ्म शायद गोल्फ हो सकता है - सुझावों की सराहना की जाएगी।

Ungolfed संस्करण: इसे ऑनलाइन आज़माएं!



0

गणितज्ञ, 21 बाइट्स

a@1=2;a@b_:=b+2(-1)^b

आगे बढ़ो, यहां देखने के लिए कुछ नहीं है...


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.