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


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.