लगभग इक्वेटोरियल हेरोनियन त्रिकोण


14

एक लगभग समबाहु Heronian त्रिभुज एक त्रिकोण फार्म के पूर्णांक लंबाई के साथ है n-1, nऔर n+1और भी पूर्णांक क्षेत्र है। पहले कुछ हैं:

 3,  4,  5 ->    6
13, 14, 15 ->   84
51, 52, 53 -> 1170

क्वेस्ट : सबसे छोटा प्रोग्राम उत्पन्न करें जो nइस तरह के ट्रिपल को आउटपुट करता है । (संकेत: यह एक ज्ञात अनुक्रम है)।

विजेता का चयन 2 मई 2014 को किया जाएगा।


इसके लायक क्या है, यह अधिक व्यापक रूप से अध्ययन किए गए पेल समीकरणों में से एक के बराबर है।
पीटर टेलर

3
मैं वास्तव में downvotes नहीं समझता। यह एक काफी सरल कार्य है लेकिन मुझे सवाल के साथ कोई समस्या नहीं दिख रही है। लेकिन मेरा कहना है (एक बाएं हाथ के व्यक्ति के रूप में) कि प्रतिबंध मेरे द्वारा देखे गए सबसे अजीब और आसान अनुपालन में से एक है।
लेवल रिवर सेंट

2
@steveverrill, हालांकि मैंने डाउनवोट नहीं किया था क्योंकि मैंने व्यर्थ प्रतिबंध के कारण अपवोट नहीं चुना था। मुझे संदेह है कि करीबी वोट प्रतिबंध के कारण भी हैं: मैं शर्त लगाता हूं कि दुनिया की आबादी का 10% से कम काइल के समान कीबोर्ड लेआउट का उपयोग करते हैं।
पीटर टेलर

2
मुझे प्रतिबंध @KyleKanos पसंद आया, भले ही बाएं हाथ के लोग मुझे घृणा करते हैं
ardnew

2
@ सभी स्थानों के बारे में, यह कम से कम एक संभावना है कि मैं इस तरह की अप्रत्यक्ष टिप्पणियों की अपेक्षा करूंगा: P
डिजिटल ट्रामा

जवाबों:


6

एपीएल, 15 14 चार्टर्स

0 1 2+⌊⎕*⍨2+√3

एलेफाल्फा के समाधान के रूप में एक ही दृष्टिकोण लेकिन सुधार शब्द के बजाय फर्श का उपयोग करता है।

एल्गोरिथ्मक के लिए धन्यवाद , यह इंगित करने के लिए कि कम्यूट ऑपरेटर एक चार्ट बचाता है।


1
(⍳3)एक चार पर बचाता है 0 1 2, और मुझे पूरा यकीन है कि आप इसे बनाने ⎕*⍨2+√3और दूसरे को बचाने के लिए Commute का उपयोग कर सकते हैं ।
एल्गोरिद्मशर्क

@algorithmshark उन विचारों के लिए धन्यवाद। दुर्भाग्य से ⍳3पैदावार होती है 1 2 3और इस प्रकार यह एक चर लंबा है।
हावर्ड

8

गणितज्ञ, 26, 22, 16 18 वर्ण

{0,1,2}+⌊(2+√3)^n⌋

थोड़ा बहुत गोल्फ: यह वर्तमान रूप में काम नहीं करेगा ( यहाँ देखें )।
हावर्ड

5

GolfScript ( 24 21 वर्ण)

2 4@~{.4*@-}*;.(\.)]p

स्टड पर इनपुट लेता है, फॉर्म में स्टडआउट को आउटपुट देता है

[3 4 5]

ऑनलाइन डेमो

ध्यान दें कि मैंने मान लिया है कि अनुक्रम का 0 तत्व [1 2 3](क्षेत्र 0 के साथ) है, जो मुझे लगता है कि OEIS A353500 के अनुरूप है ।

3-चार बचत के लिए हावर्ड के लिए धन्यवाद ।


का उपयोग कर (.).)]दो चार्ट छोटा है। इसके अलावा, अगर आप के साथ शुरू 2 4आप बदल सकते हैं \;के साथ ;और एक अतिरिक्त एक को बचाने।
हावर्ड

@ हावर्ड, मैं मूल रूप से था 2 4और [3 4 5]0 वें तत्व के रूप में व्यवहार किया गया था , इसलिए मैं शर्मिंदा हूं कि ऑफसेट का फायदा उठाने के लिए उस वैकल्पिक तरीके को नहीं देखा। धन्यवाद।
पीटर टेलर

2

जीएनयू डीसी , 30 19 बाइट्स

9k3v2+?^0k1/p1+p1+p

यह उसी चाल का उपयोग करता है जैसे @ हावर्ड के एपीएल उत्तर में केवल एक शब्द की गणना की जानी है। स्टड से n के लिए इनपुट लेता है।

आउटपुट:

$ dc -e '9k3v2+?^0k1/p1+p1+p' <<< 1
3
4
5
$ dc -e '9k3v2+?^0k1/p1+p1+p' <<< 2
13
14
15
$ dc -e '9k3v2+?^0k1/p1+p1+p' <<< 3
51
52
53
$ 

1

अजगर on

पायथन में एक क्रिया कार्यान्वयन को काफी

[(a-1,a,a+1)for a in(int((2+3**.5)**t+(2-3**.5)**t+.1)for t in range(N))][-1]

1
क्या हम Nएक मूल्य के साथ प्रतिस्थापित करने वाले हैं ? आपका प्रोग्राम किसी भी इनपुट के लिए नहीं कहता है।
गोल्फर

1

पायथन 3, 83 वर्ण

f=lambda t:4*f(t-1)-f(t-2)if t>2 else(4,14)[t-1];n=f(int(input()));print(n-1,n,n+1)

यह एक पुनरावर्ती समाधान का उपयोग करता है, इस तथ्य का लाभ उठाते हुए कि ( विकिपीडिया से उद्धरण ):

N के बाद के मानों को पिछले मूल्य को 4 से गुणा करके पाया जा सकता है, फिर उस एक (52 = 4 × 14 - 4, 194 = 4 × 52 - 14, आदि) से पहले के मूल्य को घटाकर।


1

जावास्क्रिप्ट (ECMAScript 6) - 52 वर्ण

f=x=>x?--x?4*f(x)-f(x-1):4:2
g=x=>[a=f(x)-1,a+1,a+2]

एक पुनरावर्ती फ़ंक्शन को परिभाषित करता है fजो n वें शब्द और एक फ़ंक्शन gको देता है जो एक सरणी देता है जिसमें संबंधित ट्रिपल होता है।

जावास्क्रिप्ट - 41 वर्ण

for(a=2,b=4;--x;)b=-a+4*(a=b);[a-1,a,a+1]

उम्मीद है कि इस शब्द की गणना वैश्विक चर में संग्रहीत की जाएगी xऔर कंसोल को ट्रिपल आउटपुट देता है।


1

सीजेएम, 13 बाइट्स

3,3mq))ri#if+p

CJam का पहला संस्करण इस चुनौती से 10 दिन पुराना है, लेकिन मुझे नहीं पता कि मैं जिन सभी सुविधाओं का उपयोग कर रहा हूं, वे वापस मौजूद हैं। चुनौती आधिकारिक तौर पर वैसे भी बंद है, इसलिए ...

इसका परीक्षण यहां करें।

व्याख्या

3mq            e# Push √3.
   ))          e# Increment twice.
     ri        e# Read input and convert to integer.
       #       e# Raise 2+√3 to that power.
        i      e# Convert to integer, truncating the result.
         3,    e# Push [0 1 2]
           f+  e# Add the previous number to each of these.
             p e# Pretty-print the result.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.