আনুমানিক নিখুঁত পঞ্চম


10

1-টিইটি থেকে শুরু করে, সমান মেজাজগুলি দিন যা নিখুঁত পঞ্চম (আরও ভাল অনুপাত 3/2) এর আরও ভাল এবং আরও ভাল অনুমান করতে পারে। ( OEIS ক্রম A060528 )

ক্রমটির আনুষ্ঠানিক বিবরণ, ওইআইএস থেকে অনুলিপি করা হয়েছে:

সমান মেজাজের (অষ্টকের সমান বিভাগ) একটি তালিকা যার নিকটতম স্কেল পদক্ষেপগুলি দুটি সুরের সংগীতের সুরের অনুপাতের কাছাকাছি এবং কাছাকাছি: নিখুঁত 4 র্থ, 4/3 এবং এর পরিপূরক নিখুঁত 5 তম, 3/2।

লক্ষ করুন যে প্রতিসাম্য দ্বারা, নিখুঁত চতুর্থ কোনও বিষয় নয়।

ধরা যাক আমরা জানি যে 3টি ক্রমের মধ্যে রয়েছে। 3-টিইটির ফ্রিকোয়েন্সিগুলি হ'ল:

2^0, 2^⅓, 2^⅔

কোথায় 2^⅔নিকটস্থ হয় লগারিদমিক এর পড়তা 3/2।

ক্রম 4 হয়? 4-টিইটির ফ্রিকোয়েন্সিগুলি হ'ল:

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

যেখানে 2^½নিকটতম কাছাকাছি হয় 3/2। এটি এর চেয়ে ভাল নয় 2^⅔, সুতরাং 4 ক্রমটি নয়।

অনুরূপ পদ্ধতি দ্বারা, আমরা নিশ্চিত করি যে 5 ক্রমানুসারে রয়েছে, এবং আরও।

যখন nইনপুট হিসাবে পূর্ণসংখ্যা দেওয়া হয় , আউটপুট অবশ্যই ক্রমের প্রথম এন সংখ্যা হওয়া উচিত। উদাহরণস্বরূপ, কখন n = 7, আউটপুটটি হওয়া উচিত:

1 2 3 5 7 12 29

Xnor দ্বারা ক্রম বর্ণনা

অযৌক্তিক ধ্রুবক লগ2⁡(3)≈1,5849625007211563... যুক্তিযুক্ত ভগ্নাংশের ক্রম দ্বারা প্রায় অনুমান করা যায়

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

কোনও ভগ্নাংশটি ক্রমটিতে অন্তর্ভুক্ত করা হয়েছে যদি এটি পরম দূরত্বে নতুন নিকটতম হয় , এটি, ছোট বা সমান ডিনোমিনিটারের সাথে অন্য কোনও ভগ্নাংশের চেয়ে কাছাকাছি।|পিকুই-লগ2⁡(3) |

আপনার লক্ষ্যটি প্রথম ডিনোমিনেটরকে ক্রমানুসারে আউটপুট দেওয়া । এগুলি ক্রম A060528 ( সারণী )। অঙ্কগুলি ( প্রয়োজনীয় নয়) A254351 ( টেবিল ) দ্বারা দেওয়া হয়েছেএন

নিয়মাবলী:

  1. ক্রম A060528 সরাসরি আমদানি করবেন না।
  2. যতক্ষণ সংখ্যাগুলি পৃথক হয় ততক্ষণ বিন্যাসে কিছু আসে যায় না। উপরের উদাহরণে, আউটপুটটিও হতে পারে:

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

  3. এটি একটি কোড-গল্ফ হিসাবে, বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।


5
হাই এবং কোড গল্ফ এসই তে আপনাকে স্বাগতম! আমাদের প্রয়োজন যে সমস্ত চ্যালেঞ্জগুলি স্ব-অন্তর্ভুক্ত থাকে, সুতরাং ক্রমের বিবরণ এখানে একটি দুর্দান্ত সহায়তা হবে।
— অ্যাডমবর্কবার্ক

5
আমি ওইআইএস-এর বিবরণ পেয়ে বিভ্রান্ত হয়ে পড়েছি। এটি নিখুঁত ৪ র্থ হিসাবেও (অনুপাত 4/3) উল্লেখ করেছে, তবে চ্যালেঞ্জটি নিখুঁত 5 তম (অনুপাত 3/2)। আমি মনে করি এটিরও ব্যাখ্যা দরকার যে ক্রম মানগুলি যুক্তিযুক্ত আনুমানিকতার বিভাজন।
— xnor

5
আমি চ্যালেঞ্জটি পছন্দ করি, তবে বিবরণে থাকা জিনিসগুলি এখনও বিভ্রান্তিকর, সংগীত সম্পর্কে খুব বেশি জেনে না পেলাম। উদাহরণস্বরূপ, আমি জানি না 1-TET বা 4-TET কী এবং গুগলে কিছুই দেখা যাচ্ছে না। আমি এই ক্রমটি কীভাবে বর্ণনা করব তার ব্যাখ্যা লেখার চেষ্টা করব।
— xnor

3
@ ড্যানইউনডোস হ্যাঁ, 12-স্বরের সমান মেজাজ। এটি আমার প্রিয় উপকরণ
— জো কিং

2
ধন্যবাদ সুতরাং তুলনাটি 1/2 এবং লগ 2 (1.5) এর মধ্যে, 2 ^ (1/2) এবং 1.5 এর মধ্যে নয়। এটি পাঠ্যটিতে আরও পরিষ্কার করা উচিত
— লুইস মেন্ডো

উত্তর:


5

05 এ বি 1 ই , 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
উত্তম উত্তর, তবে আমি এখনই অবাক হয়ে যাচ্ছি কেন কেননা
— লুপটিতে

4

ওল্ফ্রাম ভাষা (গণিত) , 62 60 বাইট

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

এটি অনলাইন চেষ্টা করুন!


কত নির্ভুলতা?
— ড্যানইউ এনডোস

@ ড্যানইউনডোস এই ফাংশনটি সঠিক মান ব্যবহার করে, সুতরাং নির্বিচারে নির্ভুলতার জন্য গণনা করা যেতে পারে।
— এ্যাটিনেট

আপনি চ্যালেঞ্জ জয়।
— ড্যানইউ এনডোস

5
@ ড্যানিউনডোজরা কেন এই উত্তরটি দ্রুত গ্রহণ করবেন? উত্তরটি মোটেও মেনে না নেওয়ার পক্ষে যুক্তিযুক্তভাবে আরও ভাল ..
— এ্যাটিনিট করুন

ভাসমান-পয়েন্ট ত্রুটিগুলি সম্পর্কে অন্যান্য ভাষাগুলি ভুগছে, আমি স্কোর বরাদ্দের বিকল্প পদ্ধতি উপস্থাপন করতে চাই। তাই ধরুন।
— ড্যানইউ এনডোস


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, ... এটি অনলাইনে চেষ্টা করুন!
— 31urous

@ অরিউস হ্যাঁ, অসীম নির্ভুলতা ছাড়াই যেকোন ভাষার জন্য তাড়াতাড়ি বা পরে অনিবার্য, যদিও আমি আশ্চর্য হয়েছি যে পাইথনের ব্যবহার হিসাবে এটি 32-বিট ভাসমানের সাথে এত তাড়াতাড়ি পপ আপ হয়ে গেছে। আমি চ্যালেঞ্জ লেখকের জন্য কতদূর উত্তরগুলির কাজ করা দরকার তা পরিষ্কার করার জন্য অপেক্ষা করব।
— xnor

2 * numpy.log2(3)সম্পূর্ণ বানান সংখ্যার চেয়ে কম অক্ষর ব্যবহার করা হবে না ? (বা আরও ভাল, numpy.log2(9))
— জেডিএল

@ জেডিএল যে এই কোড প্রয়োজন হবে: from numpy import*এবং log2(9)।
— জোনাথন অ্যালান

আহ, অজগরটি আর এর মতো কাজ করে ধরে নিয়ে আমি এটি পেয়েছি এবং আপনি প্রথমে package::functionলোড না করে লিখতে পারেন package!
— জেডিএল


2

এমএটিএল , 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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.