কাউন্টডাউন নাম্বার নাম গোলাকার সমস্যা - এবং অ্যালগোরিদমিক সমাধান?


10

দর্শকদের মধ্যে নন-ব্রিটিশদের জন্য, একটি ডেটাইম গেম-শোের একটি অংশ রয়েছে যেখানে প্রতিযোগীদের 6 টি সংখ্যার সেট এবং এলোমেলোভাবে উত্পন্ন লক্ষ্য নম্বর রয়েছে। তাদের কেবলমাত্র গাণিতিক অপারেটরগুলি ব্যবহার করে 6 টি সংখ্যার কোনও (তবে অগত্যা সমস্ত নয়) লক্ষ্যবস্তুতে পৌঁছাতে হবে। সমস্ত গণনা অবশ্যই ইতিবাচক পূর্ণসংখ্যার ফলাফল হতে পারে।

একটি উদাহরণ: ইউটিউব: কাউন্টডাউন - এখন পর্যন্ত সবচেয়ে অসাধারণ সংখ্যা গেম?

উইকিপিডিয়া: কাউন্টডাউন (গেম শো) এর একটি বিশদ বিবরণ দেওয়া আছে

উদাহরণ স্বরূপ:

  • বিষয়বস্তু 6 টি সংখ্যা নির্বাচন করে - দুটি বৃহত (সম্ভাব্যতার মধ্যে 25, 50, 75, 100) এবং চারটি ছোট (সংখ্যার 1 .. 10, প্রত্যেকটি পুলটিতে দু'বার অন্তর্ভুক্ত)।
  • বাছাই করা নম্বর হয় 75, 50, 2, 3, 8, 7লক্ষ্য নম্বর দিয়ে দেওয়া হয় 812
  • একটি প্রচেষ্টা হ'ল (75 + 50 - 8) * 7 - (3 * 2) = 813 (এটি লক্ষ্যমাত্রার 5 টির মধ্যে সমাধানের জন্য 7 পয়েন্ট)
  • সঠিক উত্তরটি হবে (50 + 8) * 7 * 2 = 812 (এটি লক্ষ্যমাত্রার সাথে মিলের সাথে 10 পয়েন্ট অর্জন করতে পারে)।

স্পষ্টতই এই সমস্যাটি টিভির আবির্ভাবের আগে থেকেই ছিল, তবে উইকিপিডিয়া নিবন্ধটি এর নাম দেয় না। আমি এই গেমটি এমন একটি প্রাথমিক বিদ্যালয়েও দেখেছি যেখানে আমি অংশ নিয়েছিলাম যেখানে এই খেলাটিকে আন্তঃ-শ্রেণীর প্রতিযোগিতা হিসাবে "ক্রিপ্টো" বলা হয়েছিল - তবে এটি অনুসন্ধান করা এখন কিছুই প্রকাশ করে না।

আমি কয়েকবার এতে অংশ নিয়েছি এবং আমার বাবা একটি এক্সেল স্প্রেডশিট লিখেছিলেন যা সমস্যাটিকে চূড়ান্ত করার চেষ্টা করেছিল, আমি মনে করি না এটি কীভাবে কাজ করেছে (কেবলমাত্র এটি কার্যকর হয়নি , এক্সেলের 65535 সারির সীমাটি কী ছিল) তবে তবে অবশ্যই সমস্যার একটি অ্যালগরিদমিক সমাধান থাকতে হবে। হতে পারে এমন একটি সমাধান রয়েছে যা মানুষের জ্ঞানীয়ভাবে কাজ করে (যেমন, 'যথেষ্ট পরিমাণে' সংখ্যাগুলি খুঁজে পাওয়ার জন্য সমান্তরাল, তারপরে প্রার্থী নেওয়া এবং 'ছোট' ক্রিয়াকলাপ সম্পাদন করা)।


1
আমি এটি গ্রাফিকভাবে সমাধান করেছি - গণনাগুলির ফলাফলগুলি উপস্থাপনের জন্য নোডগুলি ব্যবহার করুন এবং সেই সংখ্যায় করা যায় এমন ক্রিয়াকলাপগুলি উপস্থাপন করতে প্রান্তগুলি উপস্থাপন করুন, তারপরে কাঙ্ক্ষিত পথটি অনুসন্ধানের জন্য একটি গ্রাফ অনুসন্ধান অ্যালগরিদম ব্যবহার করুন
ell

1
বিধিগুলি পড়া থেকে মনে হবে যে নিখুঁত সমাধানে পৌঁছানো সম্ভব নয় - উদাহরণস্বরূপ যদি নির্বাচিত সংখ্যাগুলি (1, 1, 2, 2, 3, 3) হয় এবং লক্ষ্য সংখ্যাটি 999 হয়। সুতরাং সত্যিই যে কোনও অ্যালগরিদমের লক্ষ্য হ'ল নিকটতম সম্ভাব্য সমাধান সন্ধান করা।
ধনী স্মিথ

1
@ ইল: আপনার গ্রাফ অনুসন্ধান সমাধানটি মূলত একটি নিষ্ঠুর বাহু অনুসন্ধান?
মার্টিন

আমি আমার বাস্তবায়নে সবেমাত্র গভীরতার প্রথম অনুসন্ধান ব্যবহার করেছি, তবে কেন ডিজকস্ট্রার মতো কিছু ব্যবহার করা গেল না তা আমি দেখছি না।
ইএলএল

1
আমাদের স্টেটগুলিতে কিছু অনুরূপ শো রয়েছে: আমরা প্রায় এক সপ্তাহে একটি বাড়িতে প্রায় 6 টি সাব-লিটারেড ইডিয়টকে আটকে রাখি এবং একে অপরের বিষয়ে কথা বলার এবং একে অপরের দিকে চিৎকার করার চিত্রায়িত করি । আমাদের টিভি জনপ্রিয় শোগুলিতে এই বুদ্ধিজীবী কিছু পাওয়ার মতো প্রায় কাছাকাছি।
আরবেরি ইয়ং

উত্তর:


4

দাবি অস্বীকার: এই উত্তরটি পুরোপুরি প্রশ্নের উত্তর দেয় না। তবে কোনও মন্তব্যের জন্য এটি অনেক দীর্ঘ।

দ্বারা NP-কঠিন? আমি বিশ্বাস করি, এই সমস্যাটি এনপি-হার্ড হতে পারে ।

ন্যাপস্যাক সমস্যার একটি বিশেষ ক্ষেত্রে বিবেচনা করুন :

ধনাত্মক পূর্ণসংখ্যার একটি সেট এবং ধনাত্মক পূর্ণসংখ্যার খ দেওয়া আছে , সেটটির কি একটি উপসেট রয়েছে যা উপসেটের সমস্ত সংখ্যার যোগফল সমান হয় ?

এটি আমাদের কাউন্টডাউন সমস্যার সাথে কিছুটা মিলে যায় এবং এটি আরও সহজ বলে মনে হচ্ছে। তবে, ন্যাপস্যাক (এবং ন্যাপস্যাকের এই বিশেষ ক্ষেত্রে) হ'ল এনপি-হার্ড (এবং অবশ্যই এনপি-সম্পূর্ণ) complete

কাউন্টডাউন এনপি-হার্ড এটি প্রমাণের জন্য আমি এটি ব্যবহার করতে পরিচালনা করি নি। আমি বিভাগ থেকে মুক্তি পেতে পারি না। বিবেচনা করুন আমাদের এক হাজার ২, এবং বি = have রয়েছে । এটি কখনই ন্যাপস্যাকের সাথে সমাধানযোগ্য হবে না, তবে সর্বদা (?) কাউন্টডাউন সহ, কমপক্ষে সমস্তভাবেই আমি সমস্যাটি স্থানান্তর করার চেষ্টা করেছি।

এখন, যদি কাউন্টডাউনটি সত্যিই এনপি-হার্ড হত , আমরা অনুমান করতে পারি যে খুব উচ্চ সম্ভাবনার সাথে সেখানে কোনও অ্যালগরিদম নেই যা সমস্ত সম্ভাবনার চেষ্টা করে ব্রুট-ফোর্সের চেয়ে উল্লেখযোগ্যভাবে কার্যকর efficient (এবং আমাদের যদি এমন একটি অ্যালগরিদম খুঁজে পাওয়া উচিত তবে আমরা খুব বিখ্যাত হয়ে যাব))

না, আমি মনে করি না একটি দক্ষ অ্যালগরিদম অবশ্যই আছে ।

হিউরিস্টিক। প্রশ্নের সাথে লিঙ্কিত ইউটিউব ভিডিওটির একটি দুর্দান্ত উদাহরণ রয়েছে: প্রতিযোগী একটি সঠিক উত্তর পেয়েছিলেন 952 = ((100 + 6) * 3 * 75 - 50) / 25. এটি সম্পূর্ণ আমার অন্তর্দৃষ্টি বিরোধী, আমি কখনই এটি চেষ্টা করিনি প্রথম বারে: খুব বড় সংখ্যক উত্পাদন করুন, তারপরে এটি ভাগ করুন এবং ফলাফলটি দিন।

অন্যদিকে, আমরা মানবেরা অনুভব করি যে তিন অঙ্কের সংখ্যায় পৌঁছানোর জন্য আমাদের চেষ্টা করতে হবে (স্বেচ্ছাসেবী উদাহরণ) 50 * 75 * 100/2/3/7 কম্পিউটারগুলি কিছুই অনুভব করে না , তারা সাধারণ হিসাব করে।

সর্বোপরি, যদি আমরা কিছু হিউরিস্টিক্স প্রয়োগ করি এবং এই হিউরিস্টিক্সগুলি সঠিক সমাধান না খুঁজে পায়, তবে সত্যিকারের কোনওটিই নেই তা নিশ্চিত করার জন্য আমাদের এখনও অন্য সমস্ত সমাধান চেষ্টা করতে হবে।

ইউটিউব ভিডিওতে প্রতিযোগী যা করেন তা হ'ল, আমি মনে করি খুব দ্রুত সংখ্যক সম্ভাবনাগুলি পরীক্ষা করা এবং যেগুলি সমাধান দেয় না (বা সম্ভবত তা করবে না) তাদের দ্রুত তাড়িয়ে দেওয়া।

উপসংহার। অ্যালগরিদম বাস্তবায়নের সময়, কেউ সমান গণনা যেমন / বি / সি = এ / (বি * সি) কেড়ে নিতে যত্ন নিতে পারে তবে আমি মনে করি এটি করা বেশ কঠিন এবং এটি রানটাইমকে উল্লেখযোগ্যভাবে উন্নত করে কিনা তা আমি জানি না।

বিপুল সংখ্যক সম্ভাবনা যাচাই করার ক্ষেত্রে কম্পিউটার অবশ্যই কম্পিউটারের চেয়ে দ্রুত। এবং আজকাল, এমনকি স্মার্টফোনগুলিও এই সমস্যাটি সমাধান করতে পারে এত দ্রুত, আমি মনে করি, কেবলমাত্র সমস্ত সম্ভাবনার চেষ্টা করে এক সেকেন্ডের মধ্যে। (আমি এটি পরীক্ষা করিনি)) এখানে কেবল ছয়টি সংখ্যা রয়েছে, যদি তাদের মধ্যে 60০ টি থাকে তবে ভিন্ন হবে।


উদাহরণটির সমাধান, এটি চূড়ান্তভাবে চিত্তাকর্ষক হলেও, যতটা জটিল তা প্রথম দেখা যায় না। তার চিন্তাভাবনা প্রক্রিয়া, তিনি যে চেষ্টা করেছেন তার বিয়োগাত্মক আরও সুস্পষ্ট স্টাফ সম্ভবত সম্ভবত "আমি (100 + 6) * 9 ব্যবহার করে 954 এ যেতে পারি, যা আমি (100 + 6) * 3 * 75/25 এর মাধ্যমে করতে পারি। আমার একটি 50 টি বাকি আছে এবং 50/25 দুটি হয়, তাই আমি 25 দ্বারা বিভক্ত হওয়ার আগে 50 টি (100 + 6) * 3 * 75 টি নিতে পারি।
টিম ডাউন

1

একটি অ্যালগরিদম আসলে খুব কঠিন নয়।

A এবং b দুটি সংখ্যা দেওয়া, আমরা ফলাফল a + b, অ্যাবস (এ - বি) তৈরি করতে পারি (আমি জানি না নেতিবাচক সংখ্যার অনুমতি দেওয়া হয়েছে কিনা, এক্ষেত্রে আমরা একটি - b এবং a + b উত্পাদন করতে পারি), * বি, এবং সম্ভবত একটি / বি বা বি / এ ফলাফল পূর্ণসংখ্যা হয়। সুতরাং সম্ভাব্য ফলাফলগুলি পাঁচটি সংখ্যা পর্যন্ত একটি সেট। এই সেটটি এস (ক, খ) কল করুন।

ক, খ, সি, ডি, ই এবং চ ছয়টি সংখ্যা নিন।

দুটি সংখ্যার প্রতিটি উপসেটের জন্য, তারা যে সংখ্যাটি তৈরি করতে পারে তা সন্ধান করুন।

তারপরে তিনটি সংখ্যার প্রতিটি উপসেটের জন্য তারা যে সংখ্যাটি তৈরি করতে পারে তা সন্ধান করুন: এস (এ, বি, সি) = এস (এস (এ, বি), সি) ইউনিয়ন এস (এস (এ, সি), বি) ইউনিয়ন এস ( এস (খ, সি), ক)।

তারপরে 4 বা 5 সংখ্যার প্রতিটি উপসেটের জন্য একই, তারপরে সমস্ত 6 সংখ্যার জন্য।

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