এক্সেল: প্রদত্ত মোটটিতে যোগ হওয়া সংখ্যার একটি উপসেট সন্ধান করবেন?


10

আমার কাছে সংখ্যার কলাম রয়েছে (এটি এ 1: এ 100 বলে দিন) এবং আমার সেগুলির একটি উপসেট খুঁজে পাওয়া দরকার যা একটি নির্দিষ্ট মোটের সমষ্টি।


: তুচ্ছ বস্তু: এটি একটি দ্বারা NP-সম্পূর্ণ সমস্যা একটি দৃষ্টান্ত হল en.wikipedia.org/wiki/Subset_sum_problem
ডেভ এল

উত্তর:


25

সলভার অ্যাড-ইন * দিয়ে এটি সম্ভব। নিম্নলিখিত পদক্ষেপগুলি এক্সেল 2007 এবং 2010 এ আমার জন্য কাজ করেছিল।

  1. ফলাফলটি ধরে রাখার জন্য একটি ঘর নির্ধারণ করুন (এই উদাহরণের জন্য সি 1) - এটি টার্গেট সেল এবং একটি কলাম যা স্ক্র্যাচ-কাজের জন্য ব্যবহার করতে পারে (বি 1: বি 100 এই উদাহরণের জন্য)
  2. লক্ষ্য কক্ষে, সূত্রটি লিখুন "= সমমূল্য (এ 1: এ 100, বি 1: বি 100)" (কোনও উদ্ধৃতি নেই)। এটি A1 * B1 + A2 * B2 + ... ইত্যাদির যোগফল গণনা করবে
  3. সলভার খুলুন নির্বাচন করুন (ডেটা ট্যাব, বিশ্লেষণ গোষ্ঠী)
  4. লক্ষ্য কক্ষটি সুস্পষ্ট হওয়া উচিত (এই উদাহরণের জন্য $ C $ 1)
  5. 'ইক্যুয়াল টু:' এর জন্য 'মান:' নির্বাচন করুন এবং পছন্দসই মান লিখুন
  6. 'সেলস চেঞ্জ করে' এ "$ বি $ 1: $ বি $ 100" লিখুন (কোনও উদ্ধৃতি নেই, এবং এই মানগুলি নিজেকে 0 থেকে শুরু করার প্রয়োজন হতে পারে)
  7. পরিবর্তিত হতে পারে এমন কক্ষগুলিতে একটি সীমাবদ্ধতা যুক্ত করুন। টানুন-এ, 'বিন' (বাইনারি) নির্বাচন করুন। এটি এই ঘরের মানগুলি 0 (যোগফল থেকে সংশ্লিষ্ট এ ঘরটি সরিয়ে) বা 1 (যোগফলের সাথে সংশ্লিষ্ট একটি ঘর যুক্ত করে) এর মধ্যে সীমাবদ্ধ করে।
  8. 'সমাধান' ক্লিক করুন এবং অপেক্ষা করুন। আপনি যে উপসেটটির সন্ধান করছেন সেগুলির অংশ যা বি কলামে থাকবে 1

উদাহরণ


যদি সল্ভারটি দীর্ঘ সময় নিচ্ছে, আপনি অবশ্যই সারিগুলি সরিয়ে এটির সাহায্য করতে পারবেন যা স্পষ্টতই কাজ করবে না (মোট ডলারে রয়েছে এবং কেবল একটি সারিতে ননজারো সেন্ট রয়েছে)


বোনাস: আপনি যে কক্ষগুলি সন্ধান করছেন সেগুলিতে শর্তসাপেক্ষ বিন্যাস যোগ করে স্বয়ংক্রিয়ভাবে হাইলাইট করতে পারেন। আপনি যে ঘরগুলি ফর্ম্যাট করতে চান সেগুলি এবং (হোম ট্যাব) থেকে >> (স্টাইলস গ্রুপ) >> শর্তসাপেক্ষ বিন্যাস >> নতুন নিয়মটি 'কোন কোষের বিন্যাস করতে হবে তা নির্ধারণের জন্য একটি সূত্র ব্যবহার করুন' নির্বাচন করুন। সূত্রে, '= $ বি 1 = 1' লিখুন (কোনও উদ্ধৃতি নেই) যা বি কলামের সংশ্লিষ্ট সারিটি 1 হলে সত্য হিসাবে মূল্যায়ন করবে the ফর্ম্যাটের জন্য, আপনি যা চান তা যুক্ত করতে পারেন (সাহসী, তির্যক, সবুজ ফিল, ইত্যাদি)।

গুরুত্বপূর্ণ সারিগুলি সন্ধান করার আর একটি সহজ উপায় হ'ল কলাম B Z-> A কে বাছাই করা এবং সমস্ত 1 টি শীর্ষে আসবে।


* এই পদক্ষেপগুলির সাথে সলভার অ্যাড-ইন ইনস্টল করা যেতে পারে

  1. মাইক্রোসফ্ট অফিস বোতামটি ক্লিক করুন এবং তারপরে এক্সেল বিকল্পগুলি ক্লিক করুন।
  2. অ্যাড-ইনগুলি ক্লিক করুন এবং তারপরে পরিচালনা বাক্সে এক্সেল অ্যাড-ইন নির্বাচন করুন।
  3. যান ক্লিক করুন।
  4. অ্যাড-ইন উপলভ্য বাক্সে সলভার অ্যাড-ইন চেক বাক্সটি নির্বাচন করুন এবং তারপরে ওকে ক্লিক করুন। (যদি সলভার অ্যাড-ইন অ্যাড-ইন উপলভ্য বাক্সে তালিকাভুক্ত না হয় তবে অ্যাড-ইনটি সনাক্ত করতে ব্রাউজ ক্লিক করুন))
  5. যদি আপনাকে অনুরোধ করা হয় যে সলভার অ্যাড-ইন বর্তমানে আপনার কম্পিউটারে ইনস্টল করা নেই তবে এটি ইনস্টল করতে হ্যাঁ ক্লিক করুন।

1
এক্সেল 2013 এ আপনাকে বিকল্পগুলি মেনু থেকে "পূর্ণসংখ্যার প্রতিবন্ধকতাগুলি উপেক্ষা করুন" অন্বেষণ করা দরকার। অন্যথায় আপনি 0 এবং 1 এর জন্য অ INT মান পাবেন
ওমর শাহাইন

1
এই কাজটি সঠিকভাবে করার জন্য: ১. সেল সি 1-এ সূত্রের যোগফল হওয়া উচিত (কেবল যোগফল নয়) ২. কলাম বি এর কোষগুলির সমস্তগুলিতে শূন্য ইনপুট থাকা উচিত।

ধন্যবাদ! আমার জন্য, পুরানো পদক্ষেপগুলি এখনও কাজ করে তবে আমি উন্নততর উত্পাদন পছন্দ করি কারণ এটি অ্যারে সূত্র বৈশিষ্ট্যটির উপর নির্ভর করে না।
নাট পার্সনস

যাইহোক সমস্ত সংমিশ্রণগুলি সন্ধান করুন ... যদিও সলভার দ্বারা একটি সমাধান পাওয়া গেছে .. অন্য সমাধানগুলি কীভাবে সন্ধান করবেন ??? আমার অ্যারে এখানে: v = [1100, 1105, 11830, 14790, 2325, 2455, 2555, 2935, 3050, 3150, 3185, 3370, 3475, 350, 3530, 3590, 3680, 3745, 885, 9624] যোগ = 43029 ... সমাধান1 = [350, 1100, 2325, 2455, 2555, 2935, 3150, 3745, 9624, 14790], সমাধান 2 = [350, 885, 1100, 1105, 2325, 2455, 2555, 3530, 3590, 3680 , 9624, 11830]
ihightower

2

স্বল্পমূল্যের এক্সেল অ্যাড-ইন সামম্যাচ রয়েছে , যা সংখ্যার যোগফলের যোগফলগুলিকে হাইলাইট করবে।

এখানে চিত্র বর্ণনা লিখুন


1
হ্যালো এআইসফ্ট, ভাল সন্ধান করুন। সম্ভবত পরবর্তী সময় আপনি আরও কিছু তথ্য যুক্ত করতে পারেন।
নিক্সদা

@pnuts আমি কি ভুল করেছি? আপনি AUD $ 30
নিক্সদা

@ পনুতস আহ ঠিক আছে, এটি একটি ভাল পয়েন্ট।
নিক্সদা

6
আমার জন্য নোট: AUD $ 30 = 30 অস্ট্রেলিয়ান মার্কিন ডলার। এটি কোনও নির্দিষ্ট কলাম সহ কোনও এক্সেল সেল [AUD30] এর সাথে সম্পর্কিত নয় ....: ডি
নিক্সদা

1
স্পষ্ট নির্দেশাবলীর অভাবের মতো দামের ট্যাগটিও একটি অপূর্ণতা। পণ্যের ওয়েবসাইট থেকে 1 বাক্য + 1 চিত্রের বেশি কিছু, সত্যই।
নাট পার্সনস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.