সাবসেট ফ্যাক্টরগুলি সন্ধান করুন


14

আসুন কল্পনা করুন আমাদের ইতিবাচক পূর্ণসংখ্যার একটি সীমাবদ্ধ সেট রয়েছে। এই সেটটি বিন্দুগুলির একটি লাইন হিসাবে উপস্থাপিত হতে পারে যেখানে সেটে উপস্থিত প্রতিটি পূর্ণসংখ্যা স্ক্যানট্রন বা পাঞ্চ কার্ডের মতো পূর্ণ হয় । উদাহরণস্বরূপ সেটটি {1,3,4,6}উপস্থাপন করা যেতে পারে:

*.**.*

*আমাদের সেটের কোনও সদস্যকে উপস্থাপন করে এবং .একটি পূর্ণসংখ্যার প্রতিনিধিত্ব করে যা সে সেট করা সদস্যের নয়।

এই সেটগুলির "ফ্যাক্টর" রয়েছে। অল্প পরিমাণে x হ'ল একটি ফ্যাক্টর যদি y এর এক্স অনুলিপি তৈরি করা যায়। আরও কঠোরভাবে আমাদের ফ্যাক্টরের সংজ্ঞাটি নিম্নরূপ:

  • x হ'ল একটি ফ্যাক্টর এবং শুধুমাত্র যদি y হ'ল সংখ্যক বিভেদ সেটগুলির মিলন , যার সবগুলি অফসেট সহ এক্স are

আমরা কল করবে *.*একটি ফ্যাক্টর এর *.**.*কারণ এটা বেশ স্পষ্ট দুটি অনুলিপি গঠিত *.*শেষ করা শেষ।

*.**.*
------
*.*...
...*.*

ফ্যাক্টরগুলি শেষ হওয়ার দরকার নেই, আমরা এটিও বলব এটি *.*একটি কারণ*.*.*.*

*.*.*.*
-------
*.*....
....*.*

উপাদানগুলি ওভারল্যাপও করতে পারে। এর অর্থটিও *.*একটি কারণ****

****
----
*.*.
.*.*

তবে একটি সংখ্যা একবারে একটি ফ্যাক্টর দ্বারা আচ্ছাদন করা যায় না। উদাহরণস্বরূপ *.*হয় না একটি গুণক *.*.*


এখানে আরও জটিল উদাহরণ:

 *..*.**..***.*.*

এটি *..*.*একটি ফ্যাক্টর হিসাবে আছে । আপনি এটি নীচে দেখতে পাচ্ছেন যেখানে আমি তিনটি উদাহরণ সারি রেখেছি *..*.*

*..*.**..***.*.*
----------------
*..*.*..........
......*..*.*....
..........*..*.*

কার্য

যে কোনও যুক্তিসঙ্গত প্রতিনিধিত্ব আউটপুট দ্বারা সেট সেট দেওয়া সমস্ত সেট যা ইনপুটটির কারণ।

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

এটি একটি প্রশ্ন তাই আপনার লক্ষ্যটি হওয়া উচিত যতটা সম্ভব কম কয়েকটি বাইটে।

পরীক্ষার কেস

এই পরীক্ষার কেসগুলি হাতে হাতে করা হয়েছিল, বৃহত্তর ক্ষেত্রে ভুল বা দুটি হতে পারে

*                -> *
*.*.*            -> *, *.*.*
*.*.*.*          -> *, *.*, *...*, *.*.*.*
******           -> *, **, *..*, ***, *.*.*, ******
*..*.**..***.*.* -> *, *..*.*, *.....*...*, *..*.**..***.*.*
*...*****.**.**  -> *, *...**.**, *.....*, *...*****.**.**

আমরা যদি সংখ্যা (যেমন একটি তালিকা হিসাবে সেট নেওয়া [1,3,5,7]জন্য *.*.*.*) আমরা অনুমান করতে পারেন এটি সাজানো হচ্ছে?
মার্টিন ইন্ডার

1
এটি কি বহুবর্ষের বিভাজকগুলির সন্ধানের সমান, যার সহগগুলি 0 এবং 1 এর মধ্যে সীমাবদ্ধ?
xnor

1
@xnor আমি নিশ্চিত নই যদি *.*.*= x+x^2+x^4, তাহলে 1+x+x^2= ***বিভাজক হবে, তাই না? x+x^2+x^4 = (1-x+x^2)(1+x+x^2)
mbomb007

1
@ জোনাথান অ্যালান আপনার উদাহরণগুলির জন্য, *একটি ফ্যাক্টর হিসাবে তালিকাভুক্ত হয়েছে যা একই সাবসেটটিকে *.বা হিসাবে উপস্থাপন করে *..
মার্টিন ইন্ডার

1
@ জোনাথান অ্যালান এটি বলছে যে সমস্ত সেট আউটপুট দেয়, বৈধ সেটগুলির সমস্ত ASCII উপস্থাপনা আউটপুট দেয় না।
মার্টিন ইন্ডার

উত্তর:


3

গণিত, 71 68 বাইট

#&@@@Cases[(s=Subsets)@s@#,x_/;Sort[Join@@x]==#&&Equal@@(#&@@@x-x)]&

হিসাবে {1,3,5,7}সাজানো (সাজানো) এবং আউটপুট হিসাবে {{1, 3, 5, 7}, {1, 3}, {1, 5}, {1}}। ফাংশনটি একগুচ্ছ বার্তা ফেলে দেবে।

এটি ও (2 2 নোপ ) (যেখানে এন ইনপুটটির দৈর্ঘ্য এবং ও = পি = ই = 1 ...)। এটি সাবসেটের সমস্ত সাবসেট জেনারেট করে, তারপরে একসাথে যোগদানের সময় ইনপুট প্রেরণের ফলাফলগুলি সেগুলি নির্বাচন করে (আমরা কেবলমাত্র পার্টিশন বিবেচনা করছি তা নিশ্চিত করে) এবং যেখানে আমরা প্রতিটি উপসেটের ক্ষুদ্রতম মানটি বিয়োগ করি তবে সমস্ত উপাদান একই হয়)।


2

জেলি , 12 বাইট

;÷@DỊȦ
ÆDçÐf

ইনপুট এবং আউটপুট ব্যবহার 1এবং 0পরিবর্তে *এবং .

এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

ÆDçÐf   Main link. Argument: n (integer with decimal digits 1 and 0)

ÆD      Compute all divisors of n.
  çÐf   Filter; call the helper link with left argument d and right argument n for
        all divisors d of n. Return the array of d's for which the helper link
        returns a truthy value.


;÷@DỊȦ  Helper link. Left argument: d. Right argument: n

 ÷@     Divide n by d.
;       Concatenate, yielding [d, n÷d].
   D    Decimal; convert both integers in the pair to base 10.
    Ị   Insignificant; map 1 and 0 to 1, all other positive integers to 0.
     Ȧ  All; return 1 iff the result contains no zeroes.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.