পুনরাবৃত্তির সাথে অর্ডারযুক্ত সংমিশ্রণগুলি তৈরি করুন


9

বিভিন্ন অক্ষরের একটি স্ট্রিং এবং একটি সংখ্যা এন দেওয়া হয়েছে, সেই অক্ষরগুলি ব্যবহার করে 1 থেকে n দৈর্ঘ্যের পুনরাবৃত্তির সাথে সমস্ত আদেশযুক্ত সংমিশ্রণ উত্পন্ন করুন।

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

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

উদাহরণ:

ab, 3-> a,b,aa,ab,ba,bb,aaa,aab,aba,baa,abb,bab,bba,bbb
0123456789, 2->0,1,2,3,4,5,6,7,8,9,00,01,...,09,10,11,...,99


সিরিয়াসলি? "গণনা"?
পিটার টেলর

@ পিটারটেলর @ আপনার অর্থ কি?
অডিটসু ছেড়ে গেছে কারণ এসই এভিল

2
আপনি সেই সমস্যা সমাধানে চিনতে পারেন যে আপনি কেবল লোক গণনা করতে বলছেন। আপনি কি মনে করেন না যে এটি কিছুটা অস্বস্তিকর?
পিটার টেলর

3
@ পিটারটেলর ঠিক আছে বেস 10 সংখ্যা ব্যবহার করার পরেও এটি সরল গণনা নয়। আমি এটি সংক্ষিপ্ত কোডে কীভাবে করব তা দেখতে চাই। এটি কঠিন হওয়ার উদ্দেশ্যে নয়। আমি আরও তুচ্ছ প্রশ্ন দেখেছি এবং মনে হয় না যে এটিকে কোনও সমস্যা হওয়া উচিত।
অ্যাডিটসু ছেড়ে গেছে কারণ এসই এভিল

তদ্ব্যতীত, কমপক্ষে বেশ কয়েকটি সমস্যা রয়েছে যেখানে আমি এটি প্রয়োগ করতে পারি :)
অ্যাডিটসু ছাড়ুন কারণ এসই ইভিল

উত্তর:


4

এপিএল (ডায়ালগ ইউনিকোড) , 13 বাইট এসবিসিএস

⊃,/,¨∘.,\⎕⍴⊂⍞

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

স্ক্যান ব্যবহার করার সুযোগটি কখনও মিস করবেন না :)

"অঙ্কগুলি" এর স্ট্রিংয়ের জন্য অনুরোধ জানায় এবং তারপরে n

]boxটিআইও-তে কীভাবে সক্ষম করতে হবে তা বলার জন্য @ অ্যাডামকে ধন্যবাদ


5

পাইথন 2, 56 বাইট

nসর্বোচ্চ দৈর্ঘ্য এবং sএটি অক্ষরের তালিকা হিসাবে প্রত্যাশিত। এটি আমার কাছে পরিষ্কার নয় যে n = 0 বা খালি চরিত্রের তালিকাটি বৈধ ইনপুট কিনা, তবে এই ফাংশনটিও তাদের সঠিকভাবে পরিচালনা করে।

f=lambda s,n:n*s and s+[x+c for x in f(s,n-1)for c in s]

4

জে, 41 চর

   f=.}:@;@({@(,&(<',')@(]#<@[))"1 0>:@i.@])

   'ab' f 3
a,b,aa,ab,ba,bb,aaa,aab,aba,abb,baa,bab,bba,bbb

3

এপিএল (31)

{,/⍺∘{↓⍉⍺[1+(⍵⍴⍴⍺)⊤⍳⍵*⍨⍴⍺]}¨⍳⍵}

ব্যবহার: বাম আর্গুমেন্টটি স্ট্রিং এবং ডান আর্গুমেন্টটি সংখ্যাটি, এর মতো:

    'ab'{,/⍺∘{↓⍉⍺[1+(⍵⍴⍴⍺)⊤⍳⍵*⍨⍴⍺]}¨⍳⍵}3
b  a  ab  ba  bb  aa  aab  aba  abb  baa  bab  bba  bbb  aaa  

আউটপুট দৈর্ঘ্য অনুসারে অর্ডার করা হয়, তবে দৈর্ঘ্যের গোষ্ঠীর মধ্যে এগুলি একটি বামে স্থানান্তরিত হয়, এটি সবচেয়ে সহজ ছিল।

ব্যাখ্যা:

  • ,/⍺∘{... }¨⍳⍵: ১. for⍵ এর জন্য the এ ফাংশনটি প্রয়োগ করুন এবং ফলাফলগুলিতে একসাথে যোগদান করুন।
  • (⍵⍴⍴⍺)⊤⍳⍵*⍨⍴⍺: প্রতিটি সংখ্যার জন্য 1 থেকে (⍵ = (বর্তমান দৈর্ঘ্য)) ^ (⍴⍺ = (অক্ষরের পরিমাণ)), base সংখ্যা ব্যবহার করে বেস to তে রূপান্তর করুন।
  • 1+: একটি যুক্ত করুন কারণ অ্যারেগুলি 1-সূচকযুক্ত।
  • ⍺[... ]: স্ট্রিং এ সূচী হিসাবে ব্যবহার করুন
  • ↓⍉: ম্যাট্রিক্সটি ঘোরান, সুতরাং 'সংখ্যাগুলি' কলামের পরিবর্তে সারিগুলিতে থাকে এবং তারপরে ম্যাট্রিক্সকে সারি দ্বারা বিভক্ত করুন।

1
এপিএল এর চিহ্নগুলির জন্য কী একক-বাইট এনকোডিং রয়েছে?
অ্যাডিটসু ছেড়ে গেছে কারণ এসই এভিল

@ অ্যাডিটসু: ডায়ালগ এপিএল ইউনিকোড ব্যবহার করে, আমার ধারণা অন্যান্য সমস্ত আধুনিক এপিএল একই কাজ করে। তবে, ইউনিকোড থাকার আগে আপনি একটি কোডপেজ ব্যবহার করতেন যাতে এটি সম্ভব হয়।
মেরিনাস

আমি প্রধানত জিজ্ঞাসা করছি কারণ আমি না সম্পর্কে উদ্বিগ্ন। বাইট বনাম নং অক্ষর। এপিএল কতগুলি পৃথক চিহ্ন ব্যবহার করে তা আমি জানি না।
অ্যাডিটসু ছেড়ে গেছে কারণ এসই এভিল

আমি কিছু ভুলে না গিয়ে বা ভুল হিসাব না করা হলে ডায়ালগ এপিএলে function৪ টি ফাংশন এবং অপারেটর চরিত্র রয়েছে যা te-বিট এএসসিআইআইয়ের সাথে একত্রে একটি বাইটে মাপসই হবে। এবং সেইগুলি এবং সাধারণ চরিত্রগুলির মধ্যে কিছুটা ওভারল্যাপও রয়েছে ?!/\-+*~&=,.|এবং সম্ভবত আরও কিছু। এখানে একক-বাইট এপিএল এনকোডিং রয়েছে তবে ইউনিকোড ব্যবহার করা সহজ।
মেরিনাস

3

হাস্কেল, 34 টি অক্ষর

x%n=do k<-[1..n];mapM(\_->x)[1..k]

তালিকার সোজা ব্যবহার মোনাদ mon শুধুমাত্র বাস্তব golfing ব্যবহার mapMআরো কথ্য (এবং খাটো) পরিবর্তে replicateMযা আমদানি করতে হবে Control.Monad

ব্যবহার

> "ab" % 3
["a","b","aa","ab","ba","bb","aaa","aab","aba","abb","baa","bab","bba","bbb"]

2

পাইথন, 97 94

from itertools import*
s,n=input()
L=t=[]
exec"t=t+[s];L+=map(''.join,product(*t));"*n
print L

t=t+[s]সংক্ষিপ্ত করা যাবে না t+=[s]কারণ এল এবং টি একই তালিকার দিকে নির্দেশ করবে।

ইনপুট: 'ab', 3

আউটপুট:

['a', 'b', 'aa', 'ab', 'ba', 'bb', 'aaa', 'aab', 'aba', 'abb', 'baa', 'bab', 'bb
a', 'bbb']

2

গণিত 29 19 28

Join@@(i~Tuples~#&/@Range@n)

ব্যবহার

i={a, 4, 3.2};n=3;

Join@@(i~Tuples~#&/@Range@n)

{{a}, {4}, {3.2}, {a, a}, {a, 4}, {a, 3.2}, {4, a}, {4, 4}, {4, 3.2}, { 3.2, এ a, {3.2, 4}, {3.2, 3.2}, {ক, এ, এ,}, {এ, এ, ৪}, {এ, এ, ৩.২}, {এ, ৪, এ}, { a, 4, 4}, {a, 4, 3.2}, {a, 3.2, a}, {a, 3.2, 4}, {a, 3.2, 3.2}, {4, a, a a, {4, a, 4}, {4, a, 3.2}, {4, 4, a}, {4, 4, 4}, {4, 4, 3.2}, {4, 3.2, a}, {4, 3.2, 4}, {4, 3.2, 3.2}, {3.2, a, a}, {3.2, a, 4}, {3.2, a, 3.2}, {3.2, 4, a}, {3.2, 4, 4 , {3.2, 4, 3.2}, {3.2, 3.2, a}, {3.2, 3.2, 4}, {3.2, 3.2, 3.2}


ম্যাথমেটিকাকে না কিনে এটিকে চালানো কি সম্ভব? এছাড়াও, আপনি কি আউটপুটটিকে "সমতল" করতে পারবেন যাতে এটি দৈর্ঘ্য অনুসারে ভাগ করা যায় না?
অ্যাডিটসু ছেড়ে গেছে কারণ এসই এভিল

আপনার গাণিতিক কিনতে হবে। (নীতিগতভাবে, কোডটি
ওল্ফ্রামআল্ফা ডটকমে

গণিত কিনবেন? দুঃখিত, ঘটবে না: p কোডটি ওল্ফ্রামালফায় অশোধিত কাজ করে না, তবে আমি আপনার আগের লিঙ্কগুলির মধ্যে কিছু আউটপুট দেখতে পেয়েছি, যাইহোক আমি সাময়িকভাবে উত্তরটিকে স্বল্পতম উত্তর হিসাবে স্বীকার করছি।
অ্যাডিটসু ছেড়ে গেছে কারণ এসই এভিল

2

এমএটিএল, 9 8 বাইট

x:"1G@Z^

এমএটিএল অনলাইনে এটি ব্যবহার করে দেখুন!

(এই চ্যালেঞ্জ পোস্ট হওয়ার পরে এমএটিএল তৈরি হয়েছিল, তবে আমি বিশ্বাস করি যে আজকাল মেটা conকমত্যের মাধ্যমে তা ঠিক আছে))

(-১ বাইটস @ লুইস মেন্ডোকে ধন্যবাদ।)

x - স্ট্যাক থেকে স্ট্রিং ইনপুট মুছুন (স্বয়ংক্রিয়ভাবে এটি ক্লিপবোর্ড জি-তে অনুলিপি করুন)

:" - n সংখ্যাটির অন্তর্নির্মিত ইনপুট, 1 থেকে n এ লুপ করুন

1G - স্ট্যাকের ক্লিপবোর্ড জি থেকে ইনপুট স্ট্রিংটি পেস্ট করুন

@ - বর্তমান লুপ পুনরাবৃত্তি সূচক টিপুন

Z^- কার্টেসিয়ান শক্তি: @সংখ্যার সাথে নিজেই ইনপুটটির কার্টেসিয়ান পণ্য

কার্টেসিয়ান পাওয়ারের ফলাফলগুলি ( @প্রদত্ত বেসে "ডিজিট" সংখ্যা ") স্ট্যাকের উপর জমে এবং শেষে সুস্পষ্টভাবে প্রদর্শিত হয়।


1
আপনি এর মাধ্যমে 1 বাইট সংরক্ষণ করতে পারেনx:"1G@Z^
লুইস মেন্ডো

@ লুইসমেডো আপডেট হয়েছে (শেষ পর্যন্ত!) ধন্যবাদ।
সূন্দর - মনিকা পুনরায় ইনস্টল করুন

1

পাইথন - 106

সরল, অবাস্তব সমাধান। আপনি যদি উল্লেখযোগ্য উন্নতিগুলি খুঁজে পান তবে দয়া করে একটি পৃথক উত্তর হিসাবে পোস্ট করুন।

s,n=input()
l=len(s)
for i in range(1,n+1):
 for j in range(l**i):t='';x=j;exec't+=s[x%l];x/=l;'*i;print t

ইনপুট: "ab",3
আউটপুট:

a
b
aa
ba
ab
bb
aaa
baa
aba
bba
aab
bab
abb
bbb


1

পার্ল 5 + -nlF -M5.010 -MList::Util+(uniq), 41 বাইট

$,=$"=",";say grep/./,uniq glob"{,@F}"x<>

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

-১ বাইট @ এক্সকলিকে ধন্যবাদ !


1
আউটপুট আইটেমগুলির মধ্যে কমা ব্যবহার করে আপনি একটি বাইট সংরক্ষণ করতে পারেন: এটি অনলাইনে চেষ্টা করুন!
Xcali

@ এক্সালি আহ ভালো জায়গা, আপনাকে ধন্যবাদ!
ডম হেস্টিংস 11

1

পাইথ, 6 বাইট

s^LQSE

1 ম ইনপুট হিসাবে অক্ষরের সেট, 2 য় হিসাবে সংখ্যার সংখ্যা আশা করে। ২ য় ইনপুট বারবার অ্যাক্সেস করার জন্য যদি একক-বাইট পদ্ধতি থাকত তবে একটি বাইট সংরক্ষণ করা যায় las

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

s^LQSE   Implicit: Q=input 1, E=evaluate next input
    SE   Range [1,2,...,E]
 ^LQ     Perform repeated cartesian product of Q for each element of the above
s        Flatten


0

পিএইচপি 180

আমার কোনও ধারণা নেই ... আমি অলস অনুভব করছি।

<?php $f=fgetcsv(STDIN);$l=strlen($f[1]);$s=str_split($f[1]);for($i=1;$i<=$f[0];$i++)for($j=0;$j<pow($l,$i);$j++){$o="";$x=$j;for($q=0;$q<$i;$q++){$o.=$s[$x%$l];$x/=$l;}echo"$o ";}


0

এরলং 89 (118)

মডিউল সংস্করণ:

-module(g).
-export([g/2]).
h(_,0)->[[]];h(X,N)->[[A|B]||A<-X,B<-h(X,N-1)].
g(X,N)->[V||Y<-lists:seq(1,N),V<-h(X,Y)].

বাধ্যতামূলক হিসাবরক্ষণ (মডিউল এবং রফতানি) ছাড়াই চরগুলি গণনা করা হয়।




0

জেলি , 6 বাইট

WẋŒpƤẎ

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

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

ব্যাখ্যা

WẋŒpƤẎ                      (called with arguments, e.g. [1,2,5], 3)
Wẋ       Make {argument 2} copies of {argument 1}  (e.g. [[1,2,5],[1,2,5],[1,2,5])
    Ƥ    For each prefix:                          (e.g. 1-3 copies of [1,2,5])
  Œp       take Cartesian product of its elements
     Ẏ   Flatten one level

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


0

05 এ বি 1 ই , 6 বাইট

「˜Ùé

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

ã         # Cartesian product of the second input repeated the first input amount of times
          #  i.e. 3 and 'ab' → ['aaa','aab','aba','abb','baa','bab','bba','bbb']
 €Œ       # Take all the substrings for each of those results
          #  i.e. 'aba' → ['a','ab','aba','b','ba','a']
   ˜      # Flatten the list of lists
    Ù     # Remove all duplicated values
     é    # Sort the list by length

6-বাইট বিকল্প:

দ্রষ্টব্য: নমনীয় আউটপুট: প্রতিটি দৈর্ঘ্যের জন্য একই প্রিন্ট-লাইনে একটি নতুন তালিকা আউটপুট দেয়।
এটিকে একটি তালিকায় রূপান্তর করা 2 বাইট দীর্ঘ হবে: Lv²yã`})( এটি অনলাইনে চেষ্টা করুন )।

Lv²yã?

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

Lv        # Loop `y` in the range [1, integer_input]
  ²yã     #  Take the second input and create an `y` times repeated cartesian product of it
          #   i.e. y=2 and 'ab' → ['aa','ab','ba','bb']
     ?    #  Print this list (without new-line)

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