एकदम सही पाँचवाँ भाग


10

1-टीईटी से शुरू करके, समान तापमान दें जो कि पूर्ण पांचवें (सिर्फ अनुपात 3/2) का बेहतर और बेहतर अनुमान है। ( OEIS अनुक्रम A060528 )

अनुक्रम का औपचारिक विवरण, OEIS से कॉपी किया गया:

समान स्वभावों (ऑक्टेव के समान विभाजनों) की सूची, जिनके निकटतम पैमाने पर कदम संगीत सामंजस्य के दो स्वरों के अनुपात के करीब और करीब हैं: एकदम सही 4, 4/3 और इसका सही 5, 3/2 पूरक है।

ध्यान दें कि समरूपता द्वारा, सही चौथा कोई फर्क नहीं पड़ता।

मान लीजिए कि हम जानते हैं कि 3 अनुक्रम में है। 3-TET में आवृत्तियों हैं:

2^0, 2^⅓, 2^⅔

2^⅔निकटतम लॉगरिदमिक का अनुमान कहां है 3/2

अनुक्रम में 4 है? 4-TET में आवृत्तियों हैं:

2^0, 2^¼, 2^½, 2^¾

कहाँ 2^½के निकटतम अनुमान होता है 3/2। यह से बेहतर नहीं है 2^⅔, इसलिए 4 अनुक्रम में नहीं है।

इसी तरह की विधि से, हम पुष्टि करते हैं कि 5 अनुक्रम में है, और इसी तरह।

जब एक पूर्णांक nइनपुट के रूप में दिया जाता है, तो आउटपुट क्रम में क्रम का पहला N नंबर होना चाहिए। उदाहरण के लिए, कब n = 7, आउटपुट होना चाहिए:

1 2 3 5 7 12 29

Xnor द्वारा अनुक्रम विवरण

अपरिमेय स्थिरांक log2(3)1.5849625007211563 तर्कसंगत भिन्नों के अनुक्रम द्वारा अनुमानित किया जा सकता है

21,32,53,85,117,1912,4629,

एक अंश को अनुक्रम में शामिल किया जाता है यदि यह पूर्ण दूरी से नया निकटतम है |pqlog2(3) |, जो कि छोटे या समान भाजक के साथ किसी भी अन्य अंश की तुलना में करीब है।

आपका लक्ष्य पहले आउटपुट के लिए है nक्रम में हर। ये क्रम A060528 ( तालिका ) हैं। संख्याएँ ( आवश्यक नहीं) A254351 ( तालिका ) द्वारा दी गई हैं

नियम:

  1. अनुक्रम A060528 को सीधे आयात न करें।
  2. जब तक संख्या अलग-अलग नहीं होती तब तक प्रारूप कोई मायने नहीं रखता। उपरोक्त उदाहरण में, आउटपुट भी हो सकता है:

    [1,2,3,5,7,12,29]

  3. जैसा कि यह एक कोड-गोल्फ है, बाइट्स में सबसे छोटा कोड जीतता है।


5
नमस्ते और कोड गोल्फ एसई में आपका स्वागत है! हमें इस बात की आवश्यकता है कि सभी चुनौतियाँ स्व-निहित हों, इसलिए अनुक्रम का यहाँ वर्णन एक बड़ी मदद करेगा।
AdmBorkBork

5
मैं OEIS के वर्णन से भ्रमित हूँ। इसमें सही 4 वें (अनुपात 4/3) का उल्लेख किया गया है, लेकिन चुनौती सही 5 वें (अनुपात 3/2) के बारे में है। मुझे लगता है कि यह भी स्पष्टीकरण की आवश्यकता है कि अनुक्रम मान तर्कसंगत अनुमानों के भाजक हैं।
21

5
मुझे चुनौती पसंद है, लेकिन मुझे लगता है कि विवरण में जोड़ा गया सामान अभी भी भ्रामक है, संगीत के बारे में ज्यादा नहीं जानता। उदाहरण के लिए, मुझे नहीं पता कि 1-TET या 4-TET क्या है, और Google पर कुछ भी नहीं दिखता है। मैं इस अनुक्रम का वर्णन कैसे करूँगा, इसका विवरण लिखने का प्रयास करूँगा।
23

3
@ डैनीयूएनडोस आह हाँ, 12-टोन समान स्वभाव। यह मेरा पसंदीदा साधन है
जो किंग

2
@DannyuNDos धन्यवाद इसलिए तुलना 1/2 और लॉग 2 (1.5) के बीच है, 2 ^ (1/2) और 1.5 के बीच नहीं। पाठ में स्पष्ट किया जाना चाहिए कि
लुइस मेंडो

जवाबों:


5

05AB1E , 19 18 बाइट्स

µ¯ßNLN/3.²<αßDˆ›D–

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

µ                      # repeat until counter == input
 ¯                     #  push the global array
  ß                    #  get the minimum (let's call it M)
   N                   #  1-based iteration count
    L                  #  range 1..N
     N/                #  divide each by N
       3.²             #  log2(3)
          <            #  -1
           α           #  absolute difference with each element of the range
            ß          #  get the minimum
             Dˆ        #  add a copy to the global array
               ›       #  is M strictly greater than this new minimum?
                D–     #  if true, print N
                       #  implicit: if true, add 1 to the counter

1
अच्छा जवाब है, लेकिन मैं अभी सोच रहा हूँ कि क्यों-लूप में 1-आधारित सूचकांक है ..: एस
केविन क्रूज़सेन

4

वोल्फ्राम लैंग्वेज (मैथमेटिका) , 62 60 बाइट्स

Denominator@NestList[Rationalize[r=Log2@3,Abs[#-r]]&,2,#-1]&

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


कितनी सटीकता है?
डैनीउ एनडोस

@DannyuNDos यह फ़ंक्शन सटीक मानों का उपयोग करता है, इसलिए मनमानी परिशुद्धता के लिए गणना की जा सकती है।
अटिनाट

आप चुनौती जीतते हैं।
डैनीउ एनडोस

5
@DannyuNDos इसे शीघ्रता से उत्तर क्यों स्वीकार करते हैं? यह भी यकीनन बेहतर है कि एक उत्तर को बिल्कुल स्वीकार न किया जाए ..
Attinat

फ़्लोटिंग-पॉइंट त्रुटियों के बारे में अन्य भाषाएं पीड़ित हैं, मैं स्कोर आवंटित करने का एक वैकल्पिक तरीका पेश करना चाहता हूं। तो पकड़ो।
Dannyu NDos


2

पायथन 2 , 92 बाइट्स

E=k=input()
n=0
while k:
 n+=1;e=abs((3.169925001442312*n-1)%2-1)/n
 if e<E:print n;E=e;k-=1

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

निरंतर उपयोग करता है 3.169925001442312के लिए2लॉग2(3)। मुझे यकीन नहीं था कि सटीकता के कितने अंकों की आवश्यकता है, क्योंकि अशुद्धि अंततः अनुक्रम को तोड़ देगी, इसलिए मैंने पूर्ण फ़्लोट सटीक का उपयोग किया 2 * numpy.log2(3)


1
यह 665 के बाद दो अतिरिक्त शर्तें देता है: ..., 665, (1995), (4655), 8286, ... इसे ऑनलाइन आज़माएं!
Οurous

@ Οurous Yes, यह बहुत ही अपरिहार्य है या बाद में अनंत सटीकता के बिना किसी भी भाषा के लिए है, हालांकि मुझे आश्चर्य है कि यह 32-बिट फ्लोट के साथ इतनी जल्दी पॉप अप करता है जितना कि पायथन उपयोग करता है। मैं चुनौती देने वाले लेखक की प्रतीक्षा करूंगा कि वह इस बात को स्पष्ट करे कि कितने जवाबों के लिए काम करना है।
xnor

यह 2 * numpy.log2(3)पूरी तरह से बाहर की संख्या के बजाय उपयोग करने के लिए कम वर्ण नहीं होगा ? (या इससे भी बेहतर numpy.log2(9))
JDL

@JDL को इस कोड की आवश्यकता होगी: from numpy import*और log2(9)
जोनाथन एलन

आह, यही वह है जो मुझे आर की तरह अजगर काम करने के लिए मिलता है और आप पहले package::functionलोड किए बिना लिख सकते हैं package!
JDL


2

MATL , 27 25 बाइट्स

1`@:@/Q3Zl-|X<hY<tdzG-}df

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

व्याख्या

1       % Push 1. This initiallizes the vector of distances
  `     % Do...while
  @:    %   Range [1, 2, ..., k], where k is the iteration index, staring at 1
  @/    %   Divide by k, element-wise. Gives [1/k, 2/k, ..., 1]
  Q     %   Add 1, element-wise. Gives [(k+1/k, (k+2)/k, ..., 2]
  3Zl   %   Push log2(3)
  -|    %   Absolute difference, element-wise
  X<    %   Minimum
  h     %   Concatenate with vector of previous distances
  Y<    %   Cumulative minimum
  t     %   Duplicate
  dz    %   Consecutive differences, number of nonzeros. This tells how many
        %   times the cumulative minimum has decreased
  G-    %   Subtract input n. This is the loop condition. 0 means we are done
}       % Finally (execute on loop exit)
  d     %   Consecutive differences (of the vector of cumulative differences)
  f     %   Indices of nonzeros. This is the final result
        % End. A new iteration is executed if the top of the stack is nonzero
        % Implicit display

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