অনন্য প্যাডলক পিন তালিকা!


16

ভূমিকা

একটি ব্যক্তিগত আড্ডায়, আমার এক বন্ধু আপাতদৃষ্টিতে একটি সুরক্ষা ব্যবস্থা জুড়ে হোঁচট খেয়েছিল যার বৈধ পিনগুলিতে নিম্নলিখিত দুটি বিধিনিষেধ রয়েছে:

  • প্রতিটি অঙ্ক অবশ্যই অনন্য হতে হবে (এটি "1" কেবল একবার উপস্থিত হতে পারে)
  • অঙ্কগুলির ক্রম কিছু যায় আসে না ("1234" = "4321")

সুতরাং এই প্যাডলক সিস্টেমটি কতটা খারাপ তা চিত্রিত করার জন্য আসুন আমরা সমস্ত বৈধ পিন গণনা করি!

ইনপুট

আপনার ইনপুটটিতে একটি একক, ধনাত্মক পূর্ণসংখ্যা থাকবে, যা পিনের দৈর্ঘ্যকে নির্দেশ করে।

আউটপুট

আপনার আউটপুটটিতে অ-নেতিবাচক পূর্ণসংখ্যা বা স্ট্রিং * এর একটি তালিকা রয়েছে, যা প্রদত্ত দৈর্ঘ্যের সমস্ত বৈধ পিনকে গণনা করে।

* আরও স্পষ্টভাবে এমন কিছু যা কোনও মানুষ সমস্ত সংমিশ্রণের জন্য ব্যবহার করতে পারেন যদি আপনি তাদের জন্য এটি মুদ্রণ করেন। এর অর্থ ডিজিটের সেটগুলির সংখ্যা এবং অ্যারের অঙ্কগুলির অ্যারে ঠিক আছে।

কে জিতলো?

এটি তাই বাইটের সংক্ষিপ্ত উত্তরটি জয়! স্ট্যান্ডার্ড নিয়ম এবং ফাঁকগুলি প্রযোজ্য।

কর্নার কেস

  • 10 এর চেয়ে বড় সংখ্যার ইনপুট হলে আউটপুট আচরণটি অপরিজ্ঞাত হয়।
  • প্রতিটি আউটপুট প্রবেশের মধ্যে অঙ্কগুলির ক্রম নির্ধারণ করা হয় না, কারণ শূন্যের সাথে প্রবেশকারীগুলিতে শূন্যই থাকে, আপনি "0123" থেকে "123" স্ট্রিপ নাও করতে পারেন তবে "1230", "1203" এবং "1023" সমস্ত বৈধ যেমন "0123"।

পরীক্ষার কেস

1
[0,1,2,3,4,5,6,7,8,9]

2
[10,20,30,40,50,60,70,80,90,21,31,41,51,61,71,81,91,32,42,52,62,72,82,92,43,53,63,73,83,93,54,64,74,84,94,65,75,85,95,76,86,96,87,97,98]

3
[210,310,410,510,610,710,810,910,320,420,520,620,720,820,920,430,530,630,730,830,930,540,640,740,840,940,650,750,850,950,760,860,960,870,970,980,321,421,521,621,721,821,921,431,531,631,731,831,931,541,641,741,841,941,651,751,851,951,761,861,961,871,971,981,432,532,632,732,832,932,542,642,742,842,942,652,752,852,952,762,862,962,872,972,982,543,643,743,843,943,653,753,853,953,763,863,963,873,973,983,654,754,854,954,764,864,964,874,974,984,765,865,965,875,975,985,876,976,986,987]

4
[3210,4210,5210,6210,7210,8210,9210,4310,5310,6310,7310,8310,9310,5410,6410,7410,8410,9410,6510,7510,8510,9510,7610,8610,9610,8710,9710,9810,4320,5320,6320,7320,8320,9320,5420,6420,7420,8420,9420,6520,7520,8520,9520,7620,8620,9620,8720,9720,9820,5430,6430,7430,8430,9430,6530,7530,8530,9530,7630,8630,9630,8730,9730,9830,6540,7540,8540,9540,7640,8640,9640,8740,9740,9840,7650,8650,9650,8750,9750,9850,8760,9760,9860,9870,4321,5321,6321,7321,8321,9321,5421,6421,7421,8421,9421,6521,7521,8521,9521,7621,8621,9621,8721,9721,9821,5431,6431,7431,8431,9431,6531,7531,8531,9531,7631,8631,9631,8731,9731,9831,6541,7541,8541,9541,7641,8641,9641,8741,9741,9841,7651,8651,9651,8751,9751,9851,8761,9761,9861,9871,5432,6432,7432,8432,9432,6532,7532,8532,9532,7632,8632,9632,8732,9732,9832,6542,7542,8542,9542,7642,8642,9642,8742,9742,9842,7652,8652,9652,8752,9752,9852,8762,9762,9862,9872,6543,7543,8543,9543,7643,8643,9643,8743,9743,9843,7653,8653,9653,8753,9753,9853,8763,9763,9863,9873,7654,8654,9654,8754,9754,9854,8764,9764,9864,9874,8765,9765,9865,9875,9876]

1
ইনপুটটি অ-নেতিবাচক - সুতরাং ইনপুট শূন্যে, প্রোগ্রামটি একটি মান, খালি স্ট্রিং যুক্ত একটি তালিকা হওয়া উচিত?
aschepler

@ এস্পেল্পার আসলেই, শূন্যের ঘটনাটি 11 টির মতো সংবেদনশীল, তাই আমি এটিকে "ইতিবাচক পূর্ণসংখ্যায়" পরিণত করেছি।
SEJPM

উত্তর:


7

জেলি , 4 বাইট

ØDœc

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

ব্যাখ্যা

ØDœc  Double-builtin; main link
  œc  Number of combinations of          of length
ØD                              [digits]
                                                   <right argument>

আচরণ n > 10খালি তালিকার জন্য।


এটি কীভাবে 10 এর চেয়ে বেশি ইনপুট নিয়ে কাজ করে না (এটি চেষ্টা করে দেখে আমার কাছে অদ্ভুত লাগছিল)?
উইন্ডমিল কুকিজ

2
@ gnu- কেউ এটি খালি তালিকা দেয় না কারণ আপনার কাছে 10 টি পছন্দ সহ 11 টি উপাদানের সংমিশ্রণ থাকতে পারে না।
হাইপারনিউটারিনো

ওহ, ØD হ'ল "0123456789"। ধন্যবাদ।
উইন্ডমিল কুকিজ

6

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

žhæsù

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

ব্যাখ্যা

   sù  # keep elements the length of the input
  æ    # from the powerset
žh     # of 0123456789

জানতাম না ùএকটা জিনিস। খুব নিশ্চিত যে আমি এর আগে ফিল্টার ব্যবহার করেছি। এটা কতটা নতুন?
যাদু অক্টোপাস উরন

1
@ ম্যাজিক অ্যাক্টোপাস উর্ন: বেশ বয়স্ক। অনেক দিন সেখানে ছিলেন: পি
এমিগানা

আমার মস্তিষ্ক এখনকার আগে কমান্ডটি দেখতে পাবে না। আমার ব্রেইন না স্মার্ট।
ম্যাজিক অক্টোপাস উরন

আমার সাথে দু'বার হয়েছে। একাধিকবার কিছু কমান্ডের পাশাপাশি, যা ...
Emigna

... নিজের মতো কোনও godশ্বর-স্তরীয় 05AB1Er (05AB1E-ite? 05AB1E-an?) গ্রহণযোগ্য।
যাদু অক্টোপাস উরন

6

জাভাস্ক্রিপ্ট (ইএস 7), 89 বাইট

অঙ্কগুলির তালিকার একটি তালিকা (অক্ষর হিসাবে), বা n> 10 হলে একটি খালি তালিকা প্রদান করে ।

n=>[...2**29+'4'].reduce((a,x)=>[...a,...a.map(y=>[x,...y])],[[]]).filter(a=>a.length==n)

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

কিভাবে?

আমরা প্রথমে 2 29 = 536870912 অনুপস্থিত '4' যোগ করে এবং বিভাজনকে অক্ষর হিসাবে সমস্ত দশমিক অঙ্কের তালিকা তৈরি করি :

[...2**29+'4']  [ '5', '3', '6', '8', '7', '0', '9', '1', '2', '4' ]

এরপরে আমরা পাওয়ারসেটটি গণনা করি:

.reduce(                                   ,[[]]) // starting with a[] holding an empty list
        (a,x)=>[                          ]       // for each decimal digit x:
                ...a,                             //   copy all previous entries in a[]
                     ...a.map(y=>        )        //   and duplicate each previous entry y
                                 [x,...y]         //   with x prepended at the beginning

পরিশেষে, আমরা ফলাফলগুলি তাদের দৈর্ঘ্যে ফিল্টার করি:

.filter(a=>a.length==n)










2

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

f 0=[[]]
f n=[a:x|x<-f$n-1,a<-[0..9],all(/=a)x]

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

ব্যাখ্যা

যখন সংখ্যাগুলির সংখ্যা শূন্য হয় তখন কেবল একটি সংমিশ্রণ থাকে, তা হ'ল খালি:

f 0=[[]]

যখন সংখ্যার সংখ্যা হয় nএবং n/=0সংমিশ্রণগুলি হ'ল সংমিশ্রণগুলিতে অঙ্কগুলি যুক্ত করার সমস্ত উপায় f$n-1যে কোনও সংখ্যায় ইতিমধ্যে এটি সংমিশ্রণে যুক্ত করা হয় না।

f n=[a:x|x<-f$n-1,a<-[0..9],all(/=a)x]

2

গাইয়া ,  4  3 বাইট

₸…K

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

আমি গাইয়ায় একটি উত্তর পোস্ট করার পরে কিছুদিন হয়ে গেল! বাইট সংরক্ষণ করার জন্য মিঃ এক্সকোডারকে ধন্যবাদ!

      % implicit input n
₸     % push 10
 …    % pop 10, push 0..9
  K   % all subsets of size n
      % print top of stack implicitly

আপনি প্রয়োজন হবে না @
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার ধন্যবাদ বুঝতে পারিনি যে; এটি খুব পরিষ্কারভাবে নথিভুক্ত বলে মনে হয় না।
জিউসেপে

2

রেটিনা , 51 36 বাইট

.+
10*
"$+"{%`^.
*_$&
L$v`_+
$.%`$%'

এটি অনলাইন চেষ্টা করুন! ফলাফল কিছুই না n>10। ব্যাখ্যা:

.+
10*

ইনপুটটি 10 _টি দিয়ে প্রতিস্থাপন করুন ।

"$+"{

প্রোগ্রামের বাকি nসময়গুলি পুনরাবৃত্তি করুন ।

%`^.
*_$&

প্রতিটি সংখ্যাটিকে _তার প্রথম সংখ্যা অনুসারে পুনরাবৃত্তি সহ উপস্থাপিত করুন ।

L$v`_+

সমস্ত _গুলি ম্যাচ করুন তবে নীচের _সমস্তগুলি ম্যাচেও অন্তর্ভুক্ত করুন, যার জন্য আমাদের ওভারল্যাপিং ম্যাচগুলি সক্ষম করতে হবে।

$.%`$%'

প্রতিটি _পাওয়া জন্য, _এর বাম থেকে সংখ্যার s এর সংখ্যার উপসর্গ করুন ।

এটি কিছুটা জটিল তাই সম্ভবত একটি আসল কেস আরও ভাল হবে। ধরা যাক আমরা ইতিমধ্যে দু'বার লুপটি চালিয়েছি, যাতে সমস্ত 2-সংখ্যার পিন তৈরি করা হয়েছে এবং আমরা বর্তমানে 3-অঙ্কের পিন তৈরি করতে তাদের মাধ্যমে কাজ করছি। যা ঘটেছিল তা আমরা খতিয়ে দেখব 36: প্রথম সংখ্যাটি হ'ল 3, তাই তৈরি করতে তিনটি উপসর্গ করা _হয় ___36। এরপরে এটি নিম্নলিখিত চিহ্নগুলি তৈরি করে, এখানে `'এস দ্বারা চিহ্নিত :

Match   $%` $.%`
`___'36     0
_`__'36 _   1
__`_'36 __  2

$%'থেকে evalutes 36সব তিনটি ক্ষেত্রে, 3 অঙ্ক PIN গুলি ফলে 036, 136এবং 236

যদি আমরা তখন 4-সংখ্যার পিন তৈরি করতে যাই, তবে 036কোনও _পূর্বনির্ধারিত না হত, এবং ফলস্বরূপ চূড়ান্ত আউটপুটে কোনও মিল নেই।


প্রশ্নটি বলে যে ইনপুটটি অ-নেতিবাচক। ইনপুট শূন্যে, এটি দশ আন্ডারস্কোর অক্ষর আউটপুট করে।
aschepler

পছন্দ করেছেন আমি দেখতে পাচ্ছি ওপি সেই কেসটি বাদ দেওয়ার সিদ্ধান্ত নিয়েছে, তবে আপনি যদি ভাবছেন তবে এই সমাধানটি আগে থেকে বেন্ডিং করা হবে ^0এবং 5 বাইটের ব্যয় হবে।
নিল

1

প্রোটন , 43 বাইট

(0..9)&__import__("itertools").combinations

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

প্রোটন অবশেষে পাইথনকে ছাড়িয়ে গেছে: ডিআই ভেবেছিল (import itertools)মানটি ফিরিয়ে দেবে তবে স্পষ্টতই আমি তাতে ব্যর্থ হয়েছি। এছাড়াও আমদানি করার *পরেও কাজ করে না কারণ এটি ল্যাম্বডায় নয়, এটি শীর্ষ স্তরের প্রকাশ।


1

জাপট, 5 বাইট

অঙ্কের অ্যারেগুলির একটি অ্যারে আউটপুট করে। আউটপুট সব সমন্বয় ইনপুট হলে 0বা একটি খালি অ্যারে যদি ইনপুট <0বা >10

Ao àU

চেষ্টা করে দেখুন


ব্যাখ্যা

          :Implicit input of integer U
A         :10
 o        :Range [0,10)
   àU     :Combinations of length U

আমি 0 ইনপুট জন্য আউটপুট সঠিক মনে করি না। আউটপুটটি এমন একটি উপাদান থাকা তালিকা থাকা উচিত যা খালি।
aschepler

@ এসচেপলার, আপনি এটি কোথা থেকে পাচ্ছেন?
শেগি

1

স্ট্যাক্স , 4 বাইট

Vd,S

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

Vdহয় "0123456789",ইনপুটটিকে মূল স্ট্যাকের দিকে ঠেলে দেয়। Sনির্দিষ্ট আকারের সংমিশ্রণ পায়।

টিও লিঙ্কে, mপ্রতিটি আউটপুট মুদ্রণ করতে ফুটারে ব্যবহৃত হয়।


1

স্ট্যান্ডার্ড এমএল , 124 122 121 বাইট

open List;fun f(s:: &)m=(if exists(fn x=>x=m)s then[]else[m::s])@f&m|f&m= &
fun!0=[[]]| !n=concat(tabulate(10,f(!(n-1))))

এটি অনলাইন চেষ্টা করুন! ব্যবহারের উদাহরণ: !2ফলন[[0,1],[0,2],[0,3],[0,4],[0,5],[0,6],[0,7],[0,8],[0,9],[1,0],[1,2],[1,3], ...]

Ungolfed:

open List;

(* int list list -> int -> int list list *)
fun f (s::r) m =
    if exists (fn x => x=m) s 
    then f r m
    else (m::s) :: f r m
  | f [] m = []

(* int -> int list list *)
fun g 0 = [[]]
  | g n = concat(tabulate(10, f(g(n-1))))

কিছু বিকল্প:

125 123 বাইট

fun f(s:: &)m=(if List.exists(fn x=>x=m)s then[]else[m::s])@f&m|f&m= &
fun!m 0=[[]]| !10n=[]| !m n=f(!0(n-1))m@ !(m+1)n;!0;

এটি অনলাইন চেষ্টা করুন! আবদ্ধ একটি বেনাম ফাংশন সংজ্ঞায়িত করে it

127 124 বাইট

fun!0=[[]]| !n=let fun f(s:: &)m=(if List.exists(fn x=>x=m)s then[]else[m::s])@f&m|f&9=[]|f&m=f(!(n-1))(m+1)in f(!(n-1))0end

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



1

ওরাকল 18 এসকিউএল, 169 বাইট

গল্ফ করার ভাষা নয় তবে:

WITH t(v)AS(SELECT*FROM SYS.ODCINUMBERLIST(0,1,2,3,4,5,6,7,8,9)),n(a,b,c)AS(SELECT a,-1,''FROM i UNION ALL SELECT a-1,v,v||c FROM n,t WHERE v>b)SELECT c FROM n WHERE a=0

প্রত্যাশাটি iকলাম সহ কোনও টেবিলে থাকবে a:

CREATE TABLE i (a INT);
INSERT INTO i VALUES ( 3 );

অরাকল লাইভ এসকিউএল এ এটি অনলাইনে চেষ্টা করুন (একটি নিখরচায় লগইন প্রয়োজন তারপর সমাধানটি একটি ওয়ার্কশিটে কপি-পেস্ট করুন) বা এসকিউএলফিডাল (কোনও লগইন নয় তবে নীচের ওরাকল সংস্করণে কাজ করতে +7 বাইট প্রয়োজন)।


1

সিজেম , 13 11 বাইট

{Ae!f<:$_|}

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

টেকনিক্যালি tio.run উপর চালিত হয় না, যেহেতু হ্যাপ স্পেস শেষ হয়ে যায়। তবে এটি 9 ডিজিটের কীপ্যাড পর্যন্ত সঠিকভাবে কাজ করে এবং আরও র‌্যামের সাথে ঠিকঠাক চালানো উচিত।

ডেনিসকে ধন্যবাদ 2 বাইট সংরক্ষণ করা


0

বাশ , 113 99 বাইট

p()(r $1 0 $[10-$1])
r()for i in `seq $2 $3`;{ (($1>1))&&r $[$1-1] $[i+1] $[$3+1] $4$i||echo $4$i;}

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


r 0কাজ করে না
aschepler

rএটি পুনরাবৃত্ত ফাংশন: এটি কেবলমাত্র 1 টি প্যারামিটার দিয়ে চালু করা নয় meant p 0আচরণ প্রশ্নে অনির্ধারিত।
গ্লেন জ্যাকম্যান

0

জাভাস্ক্রিপ্ট (ফায়ারফক্স 30-57), 67 বাইট

n=>n?[for(x of f(n-1))for(y of Array(x?+x[0]:10).keys())y+x]:['']

আমার রেটিনা উত্তরের পোর্ট, তবে এটির n=0জন্যও কাজ করে (খালি স্ট্রিংয়ের একটি তালিকা ফিরে আসা, এর জন্য খালি তালিকার থেকে আলাদা n>10)।


0

কাঠকয়লা , 21 বাইট

⊞υωFχ≔⁺υEυ⁺κIιυΦυ⁼θLι

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

⊞υω

পূর্বনির্ধারিত তালিকায় খালি স্ট্রিংটি পুশ করুন।

Fχ

প্রতিটি অঙ্কের উপর লুপ।

Eυ⁺κIι

তালিকার প্রতিটি স্ট্রিংয়ে অঙ্ক যুক্ত করুন।

≔⁺υ...υ

ফলাফলটি মূল তালিকায় যুক্ত করুন।

Φυ⁼θLι

অঙ্কের সঠিক সংখ্যা সহ সমস্ত স্ট্রিং মুদ্রণ করুন।



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