জিসিডি = 1 দিয়ে ক্ষুদ্রতম উপসেটটির আকার সন্ধান করা


10

পোলিশ কলেজিয়েট প্রোগ্রামিং প্রতিযোগিতা ২০১২ এর অনুশীলন সেশন থেকে এটি একটি সমস্যা । যদিও আমি মূল প্রতিযোগিতার সমাধান খুঁজে পেতে পারি, তবে আমি কোথাও এই সমস্যার সমাধান খুঁজে পাচ্ছি না।

সমস্যা হয়: একটি সেট দেওয়া না তার চেয়ে অনেক বেশী স্বতন্ত্র ধনাত্মক পূর্ণসংখ্যা , আকার এটি ক্ষুদ্রতম উপসেট কোনো সাধারণ 1. ছাড়া অন্য ভাজক আছে এর হয় সর্বাধিক 500, এবং একটি সমাধান অস্তিত্ব ধারণা করা যায় ।N109mN

আমি যে দেখাতে পেরেছি । আমার যুক্তি: ধরুন একটি ন্যূনতম উপসেট অস্তিত্ব আছে আকারের , GCD সঙ্গে = 1. তারপর সব 9-সাব-সেট নির্বাচন থাকতে হবে GCD> 1. আছে ঠিক 10 যেমন সাব-সেট নির্বাচন হয়, এবং তাদের gcds হওয়া আবশ্যক pairwise coprime। এই জিসিডিএসকে , যেখানে , আই \ নেক জে । তারপর সর্বোচ্চ সংখ্যক এস হয় g_2g_3 ... g_ {10} । তবে g_2g_3 ... g_ {10} \ ge 3 \ times5 \ times7 \ times11 \ বার ... \ বার 29 = 3234846615> 10 ^ 9 , একটি বৈপরীত্য।m9S|S|=10S1<g1<g2<...<g10gcd(gi,gj)=1ijSg2g3...g10g2g3...g103×5×7×11×...×29=3234846615>109

তবে, এটির সাথেও, একটি সোজাসুজি ব্রুট ফোর্স এখনও খুব ধীর। কেউ অন্য কোন ধারনা আছে?


Hayহ্য g2 = 2 পারবেন না g2=2?
ভনব্র্যান্ড

g2>g12g1 1 হতে পারে না, যেহেতু 9-
উপগ্রহে

উত্তর:


1

এই সমস্যাটি নিম্নলিখিতগুলির সমতুল্য এবং উভয় উপায়ে হ্রাস তৈরি করা তুচ্ছ।

বিট ভেক্টরগুলির একটি তালিকা দেওয়া, তাদের ন্যূনতম সংখ্যাটি সন্ধান করুন যাতে সেগুলি andসকলেই বিট ভেক্টরের ফলস্বরূপ । ( )0()

তারপরে আমরা সেট কভারটি হ্রাস করে দেখি । সেট কভার দ্বারা, আমার অর্থ সেট , সেটগুলির একটি তালিকা দেওয়া হয়েছে তাদের ইউনিয়নটি অন্তর্ভুক্ত করে এমন ন্যূনতম সংখ্যার সেট সন্ধান করুন।এস 1 , , এস কে()S1,,Sk

আমরা সেটগুলিতে উপাদানগুলিকে হিসাবে অর্ডার করি । যাক , যেখানে যদি , অন্যথায় 0। নোট করুন যে এই ফাংশনটি একটি বাইজেকশন তাই এটির বিপরীত রয়েছে।( এস ) = ( 1 - χ একটি 1 ( এস ) , ... , 1 - χ একটি এন ( এস ) ) χ এক্স ( এস ) = 1 x এর এসa1,,anf(S)=(1χa1(S),,1χan(S))χx(S)=1xS

এখন, আমরা যদি উপর সমাধান করি এবং সমাধানগুলি হ'ল , কভার সেট করার সমাধান।( এস 1 ) , , ( এস কে ) { ( এস বি 1 ) , , ( এস বি এম ) } { - 1 ( এস বি 1 ) , , - 1 ( এস) মি ) }()f(S1),,f(Sk){f(Sb1),,f(Sbm)}{f1(Sb1),,f1(Sbm)}

এইভাবে আমি ভাবব যে এই সমস্যাটি অনুসন্ধানের জায়গাগুলি ছাঁটাই করার দক্ষতার পরীক্ষা করছে।


আপনি ন্যূনতম শীর্ষ প্রান্তটি কীভাবে খুঁজে পাবেন?
যুবাল ফিল্মাস

ওহ এনভিএম এই সমাধান, এটি পরিবর্তে কভার সেট করে।
চাও Xu

1
এটি সত্য, তবে আমি ভাবছি আমরা সম্ভবত এই বিশেষ মামলার কিছু বৈশিষ্ট্য কাজে লাগাতে পারি। উদাহরণস্বরূপ, এই ক্ষেত্রে সেটগুলি সমস্ত খুব বিশাল, মাপগুলি চেয়ে কম নয় । আসলে, সেটে সংখ্যাগুলি যদি সমস্ত ছোট হয় তবে তাদের আকারগুলি আরও বড় হবে bigger তদ্ব্যতীত, আমরা অবশ্যই 9 টি সেট খুঁজে পেতে পারি যা সমস্ত কিছু কভার করে। যাইহোক, আপনি কীভাবে পরামর্শ দিবেন যে আমি অনুসন্ধানের জায়গার ছাঁটাই করব? n9
ওয়াকাাকা

আমি দেখতে পাচ্ছি না যে সমস্যা (*) প্রশ্নের মধ্যে দেওয়াটির সমতুল্য। একটি বিষয় হিসাবে, প্রশ্নটিতে দেওয়া সমস্যাটির প্রতিশ্রুতি রয়েছে যে সমস্ত পূর্ণসংখ্যা হবে , যা বিট ভেক্টরগুলির ওজন সম্পর্কে সমস্যাটির (*) উপস্থিত না হওয়া সম্পর্কে গ্যারান্টির সাথে মিলে যায়। 109
ডিডাব্লিউ

1

সমস্ত জোড় জিসিডি গণনা করে, নকলগুলি সরিয়ে, এবং পুনরাবৃত্তি করে তুলনামূলক দক্ষতার সাথে এটি সমাধান করা সম্ভব। এটি পুনরাবৃত্তি করার আগে ডুপ্লিকেটগুলি সরিয়ে ফেলার কাজ এটি কার্যকর করে তোলে।

আমি নীচে আরও বিস্তারিতভাবে অ্যালগরিদম ব্যাখ্যা করব, তবে প্রথমে, এটি বাইনারি অপারেটর সংজ্ঞায়িত করতে সহায়তা করে । যদি ধনাত্মক পূর্ণসংখ্যার সেট হয় তবে সংজ্ঞা দিনএস , টিS,T

ST={gcd(s,t):sS,tT}.

নোট করুনএবং (আপনার সমস্যায়); সাধারণত, সেগুলির চেয়েও ছোট হবে, যা অ্যালগরিদমকে দক্ষ করতে সহায়তা করে। এছাড়াও লক্ষ করুন যে আমরা সাথে গণনা করতে পারি সাধারণ গণনা দ্বারা জিসিডি অপারেশন।| এস টি | 10 9 এস টি এস টি | এস | × | টি ||ST||S|×|T||ST|109STST|S|×|T|

সেই স্বরলিপিটি সহ, এখানে আলগোরিদিম। যাক সংখ্যার ইনপুট সেট করা। কম্পিউট , তারপর , তারপর , ইত্যাদি। ক্ষুদ্রতম খুঁজুন যেমন যে কিন্তু । তারপরে আপনি জানেন যে এই জাতীয় ক্ষুদ্রতম উপসেটটির আকার হ'ল । আপনি যদি এই জাতীয় সাবসেটের একটি দৃ concrete় উদাহরণ আউটপুট করতে চান তবে ব্যাক-পয়েন্টার রেখে আপনি সহজেই এই জাতীয় সেটটি পুনর্গঠন করতে পারেন।এস 2 = এস 1এস 1 এস 3 = এস 1এস 2 এস 4 = এস 1এস 3 কে 1 এস কে 1 এস কে - 1 কেS1S2=S1S1S3=S1S2S4=S1S3k1Sk1Sk1k

এটি তুলনামূলকভাবে দক্ষ হবে, কারণ মধ্যবর্তী সেটগুলির কোনওটিই above চেয়ে বেশি আকারে বৃদ্ধি পায় না (বাস্তবে, তাদের আকার সম্ভবত এর চেয়ে অনেক কম হবে), এবং চলমান জন্য প্রায় জিসিডি অপারেশন। 500 × ( | এস 1 | + | এস 2 | + )109500×(|S1|+|S2|+)

এখানে এমন একটি অপ্টিমাইজেশন যা আরও দক্ষতা আরও উন্নত করতে পারে। মূলত, আপনি মতো ক্ষুদ্রতম খুঁজে পেতে পুনরাবৃত্ত দ্বিগুণ ব্যবহার করতে পারেন । বিশেষ করে, একে উপাদান , আমরা ক্ষুদ্রতম উপসেট ট্র্যাক রাখতে1 এস এক্স এস আমি S 1 এস 1 , S 2 , S 4 , S 8 , এস 9 এস 2 = এস 1এস 1 এস 4 = এস 2এস 2 এস 8 = এস 4এস 4 এস 9 = এস 1 × এস 8 কে [ 1k1SkxSiS1 যার GCD হয় যার আকার আমি । (আপনি যখন সদৃশগুলি সরিয়ে ফেলেন, তখন আপনি ছোটটি সাবসেটের পক্ষে সম্পর্কগুলি সমাধান করুন)) এখন নয়টি সেট এস 1 , এস 2 , এস 3 , এস 4 , , এস 9 এর ক্রমটি গণনা করার চেয়েxiS1,S2,S3,S4,,S9আমরা পরিবর্তে পাঁচটি সেট ক্রম গনা , কম্পিউটিং দ্বারা , তারপর , তারপর , তারপর । আপনি যেতে গিয়ে, তেমন প্রথম । একবার আপনি পাওয়া করেছি যেমন যে , আপনি অবিলম্বে বন্ধ করতে পারবেন: আপনি ক্ষুদ্রতম উপসেট যার GCD হয় জানতে পারেন সঙ্গে যুক্ত উপসেট দিকে তাকিয়ে । সুতরাং, আপনি এমন কোনও সেট পৌঁছানোর সাথে সাথে আপনি থামতে পারবেনS1,S2,S4,S8,S9S2=S1S1S4=S2S2S8=S4S4S9=S1×S81 এস কে কে 1 এস কে 1 1 এস কে 1 এস কেk[1,2,4,8,9]1Skk1Sk11Sk1Sk, এটি আপনাকে কোনও ছোট উপসেট খুঁজে পেলে তাড়াতাড়ি থামতে দেয়।

এটি সময়-দক্ষ এবং স্থান-দক্ষ হতে হবে। প্রতিটি উপাদান each এর জন্য স্থান বাঁচানোর জন্য আপনাকে পুরো সেটটি সংরক্ষণ করতে হবে না: এটি দুটি ব্যাকপয়েন্টার সংরক্ষণ করার জন্য যথেষ্ট (যাতে এর দুটি উপাদান আপনি জিসিডি নিয়েছিলেন, পেতে ) এবং বৈকল্পিকভাবে সংশ্লিষ্ট সাবসেটের আকার।এস আই , এস জে এক্সxSkSi,Sjx

নীতিগতভাবে, আপনি যে কোনও ক্রম ক্রমটি অন্য কোনও সংযোজন দ্বারা প্রতিস্থাপন করতে পারেন । আমি জানি না যে আরও কিছু সংযোজন চেইন আরও ভাল হবে কিনা। সর্বোত্তম পছন্দটি সঠিক উত্তরগুলির বিতরণ এবং সেটগুলি এর প্রত্যাশিত আকারের উপর নির্ভর করবে যা আমার কাছে স্পষ্ট নয় তবে সম্ভবত পরীক্ষার মাধ্যমে প্রাপ্ত হতে পারে।এস কে[1,2,4,8,9]Sk

ক্রেডিট: প্রতিটি উপাদান সহ সংখ্যার একটি উপসেট জমা করার ধারণা জন্য KWillets আমার ধন্যবাদ , যা তাড়াতাড়ি বাঁধন অনুমতি দেয়।Si


আমি বিশ্বাস করি বাইনারি অনুসন্ধান প্রয়োজনীয় নয়; আপনি প্রতিটি গিসিডির সাথে উপাদান গণনা সঞ্চয় করতে পারেন এবং প্রতিটি দ্বিগুণ করার সময় এটি সর্বনিম্ন জোড়া যোগ করতে পারেন।
KWillets

দুর্দান্ত পয়েন্ট, @ কে উইলিটস! সুন্দর ধারণাটির জন্য আপনাকে ধন্যবাদ! আমি আমার উত্তরে এটি অন্তর্ভুক্ত করেছি।
ডিডাব্লু

0

সম্ভবত এটি অন্যভাবে এটি দ্রুত দেখছে ... the এর চেয়ে কম বড় প্রাইম 31607, 2 এবং 31607 এর মধ্যে 3401 প্রাইমের মোট গণনার জন্য, খুব বেশি সংখ্যক নয়। আপনাকে 31607 অবধি প্রাইমগুলির উপরে সম্পূর্ণরূপে সজ্জা দেওয়া প্রতিটি সংখ্যা লিখুন: ai=p n i 1 1 p n i 2 2Pi এখানেপিi1 বা বড় প্রাইম। তারপর একটি সেটএকটিআমিএর অপেক্ষাকৃত মৌলিক সংশ্লিষ্ট যদিএনআমিভেক্টর সুসংগত স্বাধীন (এবং তাদেরপিগুলি বিভিন্ন অথবা উভয় 1 হয়), এবং আপনি খুঁজছেনর্যাঙ্কএকটি ম্যাট্রিক্স করুন।109

ai=p1ni1p2ni2Pi
PiainijP

(1,1)(1,0)(1,0)(0,0)

1
p3401 pi500 PiAppBAp|ApB|1NPঅসম্পূর্ণ, তবে এই আকারের জন্য দ্রুত কিছু বাস্তবায়ন হতে পারে।
polkjh

আপনি কি আমাকে কার্যকর করতে পারে এমন কিছু বাস্তবায়নের দিকে পরিচালিত করতে পারেন? এখনও অবধি আমি প্রায় আনুমানিক আলগোরিদিমগুলি খুঁজে পেতে পারি। ধন্যবাদ!
ওয়াকাাকা

এই জরিপ কাগজটি আনুমানিক এবং সঠিক উভয় সমাধানের দিকে নজর দেয়। এবং একটি মন্তব্যে জবাব দেওয়ার সময়, দয়া করে মন্তব্যে @ নাম-ব্যক্তির যোগ করুন। এটি সেই ব্যক্তিকে একটি বিজ্ঞপ্তি প্রেরণ করবে। অন্যথায় তারা আপনার মন্তব্য সম্পর্কে কখনও জানতে পারে না।
polkjh

-1

আপনি যদি জিসিডি (এস) = 1 সহ একটি উপসেট সন্ধান করতে সক্ষম হন তবে আমি সবসময় উপসেট থেকে অপ্রয়োজনীয় উপাদানগুলি কেবল 2 টি উপাদান অবধি অপসারণ করতে পারি, যার মধ্যে জিসিডি (এস) = 1 রয়েছে। সুতরাং, আমি দাবি করতে পারি যে ক্ষুদ্রতম সাবসেটে 2 টি উপাদান থাকবে বা এটি বিদ্যমান থাকবে না।

এখন, আমরা এই সমস্যাটি সমাধান করতে পুনরাবৃত্তি ব্যবহার করি। আসুন সংখ্যার অ্যারেটিকে 2 ভাগে বিভক্ত করুন, একটিতে এন -1 উপাদান এবং একটিতে 1 উপাদান (শেষ উপাদান)। হয় 2 সংখ্যাটি প্রথম এন -1 উপাদানগুলিতে থাকবে বা একটি উপাদান থাকবে প্রথম এলিমেন্টের সাথে যুক্ত করা প্রথম অংশের সাথে। অতএব, আমরা এই সমস্যাটি সমাধান করতে সক্ষম হয়েছি

টি (এন) = টি (এন -1) + ও (এন) সময়। যার অর্থ টি (এন) = ও (এন ^ 2)।


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