বাছাই করা উপাদানগুলির প্রদত্ত তালিকার সমস্ত সংমিশ্রণ তৈরি করুন


13

এমন একটি কোড তৈরি করুন যা একটি তালিকা এবং একটি সংখ্যাকে ইনপুট হিসাবে গ্রহণ করে এবং সংখ্যার দৈর্ঘ্যের সাথে সমস্ত সম্ভাব্য সংমিশ্রণ উত্পন্ন করে। উদাহরণস্বরূপ, {0,1 list তালিকা এবং 2 নম্বর সহ :

00
01
10
11

আপনার প্রোগ্রামটির তালিকায় দু'বার বা তার বেশি বার অক্ষর আশা করা উচিত নয়, যেমন {0,0,0,0,0,1,1,5,5}

নিশ্চিত হয়ে নিন যে আপনি সংযোজনগুলি সাজানো হয়েছে তালিকার ক্রম অনুসারে:

তালিকাটি, 0,1 5 এবং 5 নম্বর সহ (আমার কোড দ্বারা উত্পাদিত, যা জয়ের পক্ষে অনেক দীর্ঘ):

00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111

তবে তালিকাটি {1,0} এবং 2 নম্বর সহ :

11
10
01
00

আপনি দেখতে পাচ্ছেন, বিপরীত তালিকার অর্থ বিপরীত ক্রম।

কাঠামোটি একবার দেখুন, এটি গাছের মতো।

এটি কোড-গল্ফ, তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী!


3
আমি ভেবেছিলাম এটি সদৃশ হবে তবে আমি একটি খুঁজে পাচ্ছি না
লুইস মেন্ডো

1
ইনপুট তালিকাটি বাছাই না করা থাকলে বাছাই কিভাবে কাজ করবে?
জেএডি

@ জারকো আমি ধরে নিয়েছি ইনপুটটির সূচকের দ্বিগুণগুলি আউটপুটে সাজানো হয়েছে
লুইস মেন্ডো

1
@ ব্র্যাড, ওপি অন্য কিছু না বললে ডিফল্ট উত্তরটি হ্যাঁ।
স্টিভি গ্রিফিন

3
আমি বুঝতে পারছি না ... নিজের নামটি ব্যবহারকারীর নাম হিসাবে ব্যবহার করতে কি সমস্যা হয়েছে?
স্টিভি গ্রিফিন

উত্তর:


16

জেলি , 1 বাইট

TryItOnline

কার্টেসিয়ান শক্তি অন্তর্নির্মিত পরমাণু, আইটেম এবং ডান আর্গুমেন্ট গণনা হিসাবে একটি ডায়াডিক লিঙ্ক হিসাবে, বা প্রথম যুক্তিযুক্ত আইটেম এবং দ্বিতীয় যুক্তির সাথে গণনা সহ একটি সম্পূর্ণ প্রোগ্রাম হিসাবে।


1
এক বাইট! এটি সমাধান!
এলএমডি

4
আপনি কি জানেন, আমি জিরো বাইট উত্তর জমা দেব! জাভাতে! তুমি কেমন পছন্দ কর, হাহ? :) (গুরুতরভাবে, যদিও। দুর্দান্ত গল্ফিং।)
ওল্ডবুনি 2800

9

হাস্কেল, 20 বাইট

(mapM id.).replicate

ব্যবহার এক্সপেল:

*Main> ( (mapM id.).replicate )  2 "01" 
["00","01","10","11"]
*Main> ( (mapM id.).replicate )  2 "10" 
["11","10","01","00"]

replicateতোলে n2nd প্যারামিটারের কপি এবং mapM idসমন্বয় তৈরী করে। বিটিডব্লিউ, mapM idএকই sequence, তবে 1 বাইট কম।



6

পাইথ, 2 বাইট

^F

এমন একটি প্রোগ্রাম যা ফর্মটিতে ইনপুট নেয় list,numberএবং তালিকাগুলির একটি তালিকা মুদ্রণ করে।

পরীক্ষা স্যুট

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

^F   Program. Input: Q
^FQ  Implicit input fill
 F   Fold
^    repeated Cartesian power
  Q  over Q
     Implicitly print

এটি এটি সমাধান করে বলে মনে হচ্ছে, তবে সম্ভবত অন্য কেউ বাইট দিয়ে এটি করতে সক্ষম?
এলএমডি

হ্যাঁ, অন্য কেউ জিতলেন (জেলি, একটি বাইট) তবে দুর্দান্ত সমাধান, যাইহোক
এলএমডি

6

পার্ল 6 , 15 বাইট

{[X] @^a xx$^b}

ব্যাখ্যা:

{[X] @^a xx$^b}

{             } # bare block lambda

     @^a        # declare first parameter as Positional
           $^b  # declare second parameter
         xx     # list repeat 「@a」, 「$b」 times

# at this point given 「 (0,1), 5 」
# ((0 1) (0 1) (0 1) (0 1) (0 1))

 [ ]            # list reduce
  X             #    using cross meta-operator

# results in a list of lists
# ((0 0 0 0 0)
#  (0 0 0 0 1)
#  (0 0 0 1 0)
#  (0 0 0 1 1)
#  (0 0 1 0 0)
#  (0 0 1 0 1)
#  ...
#  (1 1 1 1 1))
say {[X] $^a xx$^b}( (0,1), 2 ); # ((0 0) (0 1) (1 0) (1 1))
say {[X] $^a xx$^b}( (1,0), 2 ); # ((1 1) (1 0) (0 1) (0 0))
say {[X] $^a xx$^b}( (0,1,2), 2 );
# ((0 0) (0 1) (0 2) (1 0) (1 1) (1 2) (2 0) (2 1) (2 2))

put {[X] $^a xx$^b}( (0,1), 5 )».join;
# 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111

তারা কখনও একটি রিলিজ আপগ্রেড তাহলে Rakudo অফিসিয়াল মুক্তির পর থেকে পার্ল 6 তোমার দিকে এই রান করতে সক্ষম হবে Ideone
ব্র্যাড গিলবার্ট

5

জাভাস্ক্রিপ্ট (ফায়ারফক্স 30+), 55 বাইট

f=(a,n)=>n?[for(b of a)for(c of f(a,n-1))[b,...c]]:[[]]

আমি জাভাস্ক্রিপ্টে এটি সম্পর্কে সবচেয়ে ভাল উপায় 99% নির্দিষ্ট পুনরাবৃত্তি।


4

পার্ল, 30 বাইট

28 বাইট কোড + -nlপতাকা।

$"=",";say for glob"{@F}"x<>

এটি চালানোর জন্য:

perl -alE '$"=",";say for glob"{@F}"x<>' <<< "1 0
2"

আমি মনে করি যে সংখ্যার তালিকা হিসাবে ইনপুট নেওয়া পার্লের পক্ষে যৌক্তিক। তবে, আমরা যদি কিছু কল্পনা করার অনুমতি দিই এবং বন্ধনী এবং কমা দিয়ে (ইনপুটটি) যেমন প্রশ্নটিতে দেখানো হয়), তবে আমরা 20 বাইটে যেতে পারি :

perl -nlE 'say for glob$_ x<>' <<< "{1,0}
2"

ব্যাখ্যা: glob পার্লের প্রাথমিক উদ্দেশ্যটি ফাইলের নামগুলির মাধ্যমে তালিকাভুক্ত এবং পুনরাবৃত্তি হয়, তবে যখন তার যুক্তিতে কোঁকড়ানো বন্ধনী থাকে, তখন এটি প্রতিটি বন্ধনী গোষ্ঠীর একটি উপাদানের সমন্বয় তৈরি করে।
-aইনপুট ফাঁক করে অটোস্প্লিট করুন এবং ফলাফলটিকে @Fঅ্যারের ভিতরে রাখুন ।
$"তালিকাটি পৃথককারী: এটি স্ট্রিংয়ের ভিতরে তালিকার উপাদানগুলির মধ্যে বিভাজক .োকানো হয়। আমরা এটি সেট করে রেখেছি ,, সুতরাং "{@F"}উত্পাদন করে {.,.}(যদি @F0 এবং 1 থাকে)।
তারপরে xস্ট্রিং পুনরাবৃত্তি অপারেটর (এবং <>ইনপুটটির এক লাইন পায়)।
এবং পরিশেষে, say forতালিকার মাধ্যমে পুনরাবৃত্তিগুলি globউপাদানগুলির দ্বারা উত্পন্ন এবং মুদ্রণ করে।


4

গণিত, 6 বাইট

Tuples

জেলির চেয়েও খারাপ :(

ব্যবহার

Tuples[{0, 1}, 5]

{{0, 0, 0, 0, 0}, {0, 0, 0, 0, 1}, {0, 0, 0, 1, 0}, {0, 0, 0, 1, 1}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 1}, {0, 0, 1, 1, 0}, {0, 0, 1, 1, 1}, {0, 1, 0, 0, 0}, {0, 1, 0, 0, 1}, {0, 1, 0, 1, 0}, {0, 1, 0, 1, 1}, {0, 1, 1, 0, 0}, {0, 1, 1, 0, 1}, {0, 1, 1, 1, 0}, {0, 1, 1, 1, 1}, {1, 0, 0, 0, 0}, {1, 0, 0, 0, 1}, {1, 0, 0, 1, 0}, {1, 0, 0, 1, 1}, {1, 0, 1, 0, 0}, {1, 0, 1, 0, 1}, {1, 0, 1, 1, 0}, {1, 0, 1, 1, 1}, {1, 1, 0, 0, 0}, {1, 1, 0, 0, 1}, {1, 1, 0, 1, 0}, {1, 1, 0, 1, 1}, {1, 1, 1, 0, 0}, {1, 1, 1, 0, 1}, {1, 1, 1, 1, 0}, {1, 1, 1, 1, 1}}


3

পাইথন, 57 বাইট

from itertools import*
lambda o,n:list(product(*([o]*n)))

repl.it

অজানা ফাংশন অবজেক্টের একটি তালিকা oএবং একটি গণনা নেওয়া nএবং সংমিশ্রনের একটি তালিকা ফেরত দেওয়া।


3

খাঁটি বাশ, 36

printf -vv %$2s
eval echo ${v// /$1}

কমান্ড-লাইন প্যারাম দ্বারা ইনপুট - তালিকাটি ব্রেসগুলিতে কমা দ্বারা পৃথক করা তালিকা, যেমন:

./elemcombo.sh "{0,1}" 2

নোট করুন ইনপুট তালিকাটি উদ্ধৃত করা দরকার যাতে কলিং শেলটি খুব তাড়াতাড়ি প্রসারিত হয় না।

ভাবনা


এটি কাজ করে না বলে মনে হচ্ছে।
ইপোর সিরসর

এটি কেবলমাত্র ইনপুট n বার পুনরাবৃত্তি করে, সমস্ত সম্ভাব্য সংমিশ্রণ মুদ্রণ করে না।
ইপুর সিরার

@ ইপ্পারসিরসর আমি প্রয়োজনীয় ইনপুট ফর্ম্যাটটি পরিষ্কার করে দিয়েছি। এটা কি এখন আপনার পক্ষে কাজ করে?
ডিজিটাল ট্রমা

bash a.sh "{0,1}" 2-> {0,1}{0,1}(সংস্করণ 4.4.5 (1) -রিলিজ)
ইপোর সেরার

1
@ আইপোরসিরসার দেখে মনে হচ্ছে টিআইও সম্ভবত কোনও এক্সিকিভেট () বা অনুরূপ কলটিতে অর্গগুলি রাখছে। কলিং শেলটি ধনুর্বন্ধনীগুলির বিস্তারকে বাধা দেওয়ার জন্য যখন অন্য শেল থেকে স্ক্রিপ্টটি কল করা হয় তখনই উদ্ধৃতিগুলি আবশ্যক। আমি টিআইও কেস, তালিকার জন্য কোট লাগবে না। tio.run/nexus/…
ডিজিটাল ট্রমা

3

আর , 53 45 বাইট

function(x,n)rev(expand.grid(rep(list(x),n)))

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

rev অনুরোধ করা সুনির্দিষ্ট ক্রম আদেশের সাথে সামঞ্জস্য রয়েছে (যা আসলেই সমস্যাটির পক্ষে অপরিহার্য বলে মনে হয় না) এবং 5 বাইট যুক্ত করে।


শুধু revজন্য 45 বাইট :)
JayCe

মনে ম্যাট্রিক্স ছিল এবং ফলাফল ভুলে গেছে আসলে একটি তালিকা (ডেটা ফ্রেম)।
এনজিএম

1

র‌্যাকেট 123 বাইট

(let p((s "")(l(map number->string(sort l <))))
(if(= n(string-length s))(displayln s)(for((i l))(p(string-append s i)l))))

Ungolfed:

(define(f l n)
  (let loop ((s "")
             (l (map number->string (sort l <))))
    (if (= n (string-length s))
        (displayln s)
        (for ((i l))
          (loop (string-append s i) l)))))

পরীক্ষামূলক:

(f '(0 1) 2)
(f '(0 1) 3)
(f '(0 1) 5)

আউটপুট:

00
01
10
11

000
001
010
011
100
101
110
111

00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111

1

পিএইচপি, 109 বাইট

for($o=$a=array_slice($argv,2);--$argv[1];$o=$c,$c=[])foreach($a as$n)foreach($o as$s)$c[]=$n.$s;print_r($o);

প্রথম আর্গুমেন্ট হিসাবে দৈর্ঘ্য এবং পরবর্তী কোনও যুক্তি হিসাবে তালিকা নেয়।
এর মতো ব্যবহার করুন:

php -r "for($o=$a=array_slice($argv,2);--$argv[1];$o=$c,$c=[])foreach($a as$n)foreach($o as$s)$c[]=$n.$s;print_r($o);" 5 0 1

দৈর্ঘ্য 0 জিজ্ঞাসা করা হলে একটি "মেমরির বাইরে" মারাত্মক ত্রুটিতে চলে যাবে।


আপনাকে দৈর্ঘ্য 0 পরিচালনা করতে হবে না
এলএমডি

1

05 এ বি 1 , 2 1 বাইট এস

ã

-1 বাইট @ ইনিগমা ধন্যবাদ ।

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

ইনপুট হিসাবে number\nlist, তালিকার তালিকা হিসাবে আউটপুট।

ব্যাখ্যা:

     # Implicit input `a`, `b`
ã    # Take the Cartesian product of list `b` repeated `a` times

1
তোমার Iএখানে দরকার নেই
এমিগানা

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