দুটি নোটের নাম দেওয়া হয়েছে, আপনাকে এমন একটি প্রোগ্রাম লিখতে হবে যা নির্ধারণ করে যে এই দুটি নোটের দ্বারা গঠিত বিরতি ব্যঞ্জনাত্মক বা বিচ্ছিন্ন কিনা if
ভূমিকা
পশ্চিমা সংগীতে, কেবল 12 "বিভিন্ন" টোন রয়েছে। তাদের নাম সর্বনিম্ন থেকে সর্বোচ্চ সাজানো, সেগুলি হল: C, C#, D, D#, E, F, F#, G, G#, A, A#, B
। ক্রমটি চক্রাকার, অর্থাত্ এটি অনন্তর C
পরে অন্যটির সাথে চলতে থাকে B
।
দুটি স্বরের মধ্যবর্তী দূরত্বকে অন্তর বলা হয় । উপরের সিরিজের (যেমন C — C#
বা E — F
) দুটি সংলগ্ন দুটি নোটের মধ্যবর্তী ব্যবধানকে সেমিটোন বলে । আরও দূরবর্তী নোটের মধ্যবর্তী ব্যবধানটি প্রথম থেকে দ্বিতীয় পর্যন্ত পৌঁছানোর জন্য প্রয়োজনীয় সেমিটোন পদক্ষেপগুলির সংখ্যার হিসাবে সংজ্ঞায়িত করা হয় (সম্ভবত অনুক্রমের চারপাশে মোড়ক দেওয়ার সময়)। কয়েকটি উদাহরণ: D to E
= 2 টি সেমিটোনস, C to G
= 7 টি সেমিটোনস, B to D#
= 4 টি সেমিটোনস (এটি ক্রমের চারপাশে মোড়ানো)। 1
এখন, এই অন্তরগুলিকে দুটি বিভাগে বিভক্ত করা হয়েছে: ব্যঞ্জনবর্ণ (আপনি দুটি নোট একবারে খেললে আনন্দিতভাবে শোনা যাচ্ছে) এবং বিচ্ছিন্ন (এত বেশি নয়)।
আসুন ব্যঞ্জন অন্তরগুলি সংজ্ঞায়িত করুন: 0, 3, 4, 5, 7, 8 এবং 9 সেমিটোনগুলি।
তাদের বাকিগুলি অসম্পূর্ণ, যথা: 1, 2, 6, 10 এবং 11 সেমিটোন।
চ্যালেঞ্জ
নিম্নলিখিতটি করার জন্য একটি "প্রোগ্রাম" (শব্দের স্বাভাবিক বিস্তৃত অর্থে: একটি ফাংশন পুরোপুরি ঠিক আছে) লিখুন:
একটি ইনপুট হিসাবে দুটি নোটের নাম (উপরের ক্রম থেকে স্ট্রিং) নিন। আপনি নিজের পছন্দ মতো এগুলি নিতে পারেন (স্টিডিন থেকে, আর্গুমেন্ট হিসাবে, যা খুশি তাই আলাদা করে নিতে পারেন এমনকি অক্ষরের তালিকা হিসাবে নির্দ্বিধায় উদার হন (উদাহরণস্বরূপ
["C","#"]
)) তবে আপনি নোটগুলিতে অন্য কোনও নাম নির্ধারণ করতে পারবেন না (বিশেষত আপনি তাদের 0 থেকে 11 পর্যন্ত সংখ্যা না দিয়ে সংখ্যাগুলি ব্যবহার করতে পারে)।আপনার সংগীত গিকসের জন্য, নোটগুলি অষ্টক ব্যতীত নির্দিষ্ট করা হবে। এই ক্ষেত্রে, নোটগুলি কোন আদেশে আসে এবং কোনটি কম এবং কোনটি বেশি সেগুলিও গুরুত্বপূর্ণ নয়। শেষ অবধি, উপরের তালিকায় আপনার কোনও নাম হ্যান্ডেল করার দরকার নেই। অন্য কোনও enharmonics যেমন
E#
, কোনও ফ্ল্যাট নেই, ডাবল-পরিবর্তন এবং এই জাতীয় andদুটি পৃথক মান চয়ন করুন। আপনার প্রোগ্রামটি অবশ্যই তাদের মধ্যে একটির আউটপুট আবশ্যক যখনই ইনপুটটিতে দুটি নোট দ্বারা গঠিত বিরতি ব্যঞ্জনাত্মক হয় এবং অন্যটি সেগুলি না হয়। (হতে পারে
True
এবংFalse
, তবে π এবং ই আপনি চাইলে :))এটি একটি কোড-গল্ফ। প্রতিটি ভাষায় বাইটের মধ্যে সংক্ষিপ্ততম প্রোগ্রামটি জয়লাভ করে। আনন্দ কর!
উদাহরণ এবং পরীক্ষার কেস
Note 1 Note 2 Output Interval [semitones]
C D Dissonant 2
A# A# Consonant 0
G D Consonant 7 (wraparound)
D# A Dissonant 6
F E Dissonant 11
A C Consonant 3
এর মধ্যে আর কোনও বিশেষভাবে বিশ্বাসঘাতকতার মামলা না থাকায় আমি তাদের আরও যুক্ত করি না।
এটি আমার প্রথম চ্যালেঞ্জ, সুতরাং যে কোনও গঠনমূলক সমালোচনা আন্তরিকভাবে স্বাগত :—)। আপনি যদি তত্ত্বের ব্যাখ্যাটি ম্লান দেখতে পান তবে নির্দ্বিধায় প্রশ্ন জিজ্ঞাসা করুন। অবশেষে, আমাকে বলুন করবেন না দয়া করে যে এই একটি প্রতারিত হয় এই বা এই । আমি নিশ্চিত করেছিলাম যে তা নেই। (উত্তরোত্তরটি বেশ অনুরূপ তবে আরও জটিল I আমি ভেবেছিলাম যে কিছুটা সহজ চ্যালেঞ্জ গ্রহণ করা মানুষের পক্ষে যোগ দেওয়া সহজ করে দেবে))
1 : আমি যথাসম্ভব এই ব্যাখ্যাটি সহজ করার চেষ্টা করেছি। অন্তরগুলিকে ঘিরে আরও অনেক তত্ত্ব রয়েছে। এটি ছেড়ে দেওয়ার জন্য দয়া করে আমাকে মারধর করবেন না