ব্যাঙ্ক অ্যাকাউন্টের পাসওয়ার্ড ক্র্যাক করুন!


64

ভূমিকা

কীলগারদের ব্যবহারকারীর পাসওয়ার্ড চুরি করতে বাধা দেওয়ার জন্য, একটি নির্দিষ্ট ব্যাংক অ্যাকাউন্ট সিস্টেম নিম্নলিখিত সুরক্ষা ব্যবস্থাটি প্রয়োগ করেছে: প্রতিবারের জন্য নির্দিষ্ট কিছু সংখ্যার প্রবেশের অনুরোধ জানানো হয়।

উদাহরণস্বরূপ, আপনার টার্গেটের পাসওয়ার্ডটি বলুন 89097, সিস্টেমটি তাদের ২ য়, চতুর্থ এবং ৫ ম সংখ্যাতে প্রবেশের অনুরোধ জানাতে পারে:

997

অথবা এটি তাদের প্রথম, তৃতীয় এবং 5 ম সংখ্যা প্রবেশ করতে অনুরোধ জানাতে পারে:

807

আপনারা সমস্ত জানেন যে আপনার টার্গেটটি অঙ্কগুলিকে যথাযথভাবে প্রবেশ করেছে, তবে আপনি জানেন না যে আসল পাসওয়ার্ডে তারা কোন অবস্থানের অন্তর্ভুক্ত । আপনারা সকলেই জানেন যে এখানে দুটি 9 টি রয়েছে, যা অবশ্যই 7 এর আগে আসতে হবে; এবং এটি 8 0 এর আগে এবং 0 এর আগে আসে 7 সুতরাং, এখানে ছয়টি সম্ভাব্য পাসওয়ার্ড রয়েছে:

80997
89097
89907
98097
98907
99807

আপনার টার্গেটের কম্পিউটারে কীলগারটি কয়েক মাস ধরে পাসওয়ার্ড ইনপুট সংগ্রহ করে আসছে, তাই আসুন হ্যাক করি!

চ্যালেঞ্জ

তিন-অঙ্কের ইনপুটগুলির একটি তালিকা দেওয়া, সমস্ত সম্ভাব্য পাসওয়ার্ড আউটপুট যা সমস্ত ইনপুটগুলির জন্য বৈধ। গণনাগত জটিলতা হ্রাস করতে এবং সম্ভাব্য ফলাফলের পরিমাণ কম রাখতে, পাসওয়ার্ডটি সংখ্যাগত এবং 5 এর একটি নির্দিষ্ট আকারের নিশ্চয়তা রয়েছে এবং প্রতিটি ইনপুটটিতে অঙ্কগুলি ক্রমযুক্ত হয়: যদি এটি 123 হয় তবে লক্ষ্যটি প্রথমে 1 টাইপ করুন, তারপরে 2, তারপরে 3।

ইনপুট / আউটপুট উদাহরণ

|----------------------|--------------------------------------------|
|         Input        |                   Output                   |
|----------------------|--------------------------------------------|
| [320, 723, 730]      | [37230, 72320, 73203, 73230]               |
| [374, 842]           | [37842, 38742, 83742]                      |
| [010, 103, 301]      | [30103]                                    |
| [123, 124, 125, 235] | [12345, 12354, 12435]                      |
| [239, 944]           | [23944]                                    |
| [111, 120]           | [11201, 11120, 11210, 12011, 12110, 12101] |
| [456, 789]           | []                                         |
| [756, 586]           | [07586, 17586, 27586, 37586, 47586, 57586, 57856, 58756, 67586, 70586, 71586, 72586, 73586, 74586, 75086, 75186, 75286, 75386, 75486, 75586, 75686, 75786, 75806, 75816, 75826, 75836, 75846, 75856, 75860, 75861, 75862, 75863, 75864, 75865, 75866, 75867, 75868, 75869, 75876, 75886, 75896, 75986, 76586, 77586, 78586, 79586, 87586, 97586] |
| [123]                | [00123, 01023, 01123, 01203, 01213, 01223, 01230, 01231, 01232, 01233, 01234, 01235, 01236, 01237, 01238, 01239, 01243, 01253, 01263, 01273, 01283, 01293, 01323, 01423, 01523, 01623, 01723, 01823, 01923, 02123, 03123, 04123, 05123, 06123, 07123, 08123, 09123, 10023, 10123, 10203, 10213, 10223, 10230, 10231, 10232, 10233, 10234, 10235, 10236, 10237, 10238, 10239, 10243, 10253, 10263, 10273, 10283, 10293, 10323, 10423, 10523, 10623, 10723, 10823, 10923, 11023, 11123, 11203, 11213, 11223, 11230, 11231, 11232, 11233, 11234, 11235, 11236, 11237, 11238, 11239, 11243, 11253, 11263, 11273, 11283, 11293, 11323, 11423, 11523, 11623, 11723, 11823, 11923, 12003, 12013, 12023, 12030, 12031, 12032, 12033, 12034, 12035, 12036, 12037, 12038, 12039, 12043, 12053, 12063, 12073, 12083, 12093, 12103, 12113, 12123, 12130, 12131, 12132, 12133, 12134, 12135, 12136, 12137, 12138, 12139, 12143, 12153, 12163, 12173, 12183, 12193, 12203, 12213, 12223, 12230, 12231, 12232, 12233, 12234, 12235, 12236, 12237, 12238, 12239, 12243, 12253, 12263, 12273, 12283, 12293, 12300, 12301, 12302, 12303, 12304, 12305, 12306, 12307, 12308, 12309, 12310, 12311, 12312, 12313, 12314, 12315, 12316, 12317, 12318, 12319, 12320, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12330, 12331, 12332, 12333, 12334, 12335, 12336, 12337, 12338, 12339, 12340, 12341, 12342, 12343, 12344, 12345, 12346, 12347, 12348, 12349, 12350, 12351, 12352, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12403, 12413, 12423, 12430, 12431, 12432, 12433, 12434, 12435, 12436, 12437, 12438, 12439, 12443, 12453, 12463, 12473, 12483, 12493, 12503, 12513, 12523, 12530, 12531, 12532, 12533, 12534, 12535, 12536, 12537, 12538, 12539, 12543, 12553, 12563, 12573, 12583, 12593, 12603, 12613, 12623, 12630, 12631, 12632, 12633, 12634, 12635, 12636, 12637, 12638, 12639, 12643, 12653, 12663, 12673, 12683, 12693, 12703, 12713, 12723, 12730, 12731, 12732, 12733, 12734, 12735, 12736, 12737, 12738, 12739, 12743, 12753, 12763, 12773, 12783, 12793, 12803, 12813, 12823, 12830, 12831, 12832, 12833, 12834, 12835, 12836, 12837, 12838, 12839, 12843, 12853, 12863, 12873, 12883, 12893, 12903, 12913, 12923, 12930, 12931, 12932, 12933, 12934, 12935, 12936, 12937, 12938, 12939, 12943, 12953, 12963, 12973, 12983, 12993, 13023, 13123, 13203, 13213, 13223, 13230, 13231, 13232, 13233, 13234, 13235, 13236, 13237, 13238, 13239, 13243, 13253, 13263, 13273, 13283, 13293, 13323, 13423, 13523, 13623, 13723, 13823, 13923, 14023, 14123, 14203, 14213, 14223, 14230, 14231, 14232, 14233, 14234, 14235, 14236, 14237, 14238, 14239, 14243, 14253, 14263, 14273, 14283, 14293, 14323, 14423, 14523, 14623, 14723, 14823, 14923, 15023, 15123, 15203, 15213, 15223, 15230, 15231, 15232, 15233, 15234, 15235, 15236, 15237, 15238, 15239, 15243, 15253, 15263, 15273, 15283, 15293, 15323, 15423, 15523, 15623, 15723, 15823, 15923, 16023, 16123, 16203, 16213, 16223, 16230, 16231, 16232, 16233, 16234, 16235, 16236, 16237, 16238, 16239, 16243, 16253, 16263, 16273, 16283, 16293, 16323, 16423, 16523, 16623, 16723, 16823, 16923, 17023, 17123, 17203, 17213, 17223, 17230, 17231, 17232, 17233, 17234, 17235, 17236, 17237, 17238, 17239, 17243, 17253, 17263, 17273, 17283, 17293, 17323, 17423, 17523, 17623, 17723, 17823, 17923, 18023, 18123, 18203, 18213, 18223, 18230, 18231, 18232, 18233, 18234, 18235, 18236, 18237, 18238, 18239, 18243, 18253, 18263, 18273, 18283, 18293, 18323, 18423, 18523, 18623, 18723, 18823, 18923, 19023, 19123, 19203, 19213, 19223, 19230, 19231, 19232, 19233, 19234, 19235, 19236, 19237, 19238, 19239, 19243, 19253, 19263, 19273, 19283, 19293, 19323, 19423, 19523, 19623, 19723, 19823, 19923, 20123, 21023, 21123, 21203, 21213, 21223, 21230, 21231, 21232, 21233, 21234, 21235, 21236, 21237, 21238, 21239, 21243, 21253, 21263, 21273, 21283, 21293, 21323, 21423, 21523, 21623, 21723, 21823, 21923, 22123, 23123, 24123, 25123, 26123, 27123, 28123, 29123, 30123, 31023, 31123, 31203, 31213, 31223, 31230, 31231, 31232, 31233, 31234, 31235, 31236, 31237, 31238, 31239, 31243, 31253, 31263, 31273, 31283, 31293, 31323, 31423, 31523, 31623, 31723, 31823, 31923, 32123, 33123, 34123, 35123, 36123, 37123, 38123, 39123, 40123, 41023, 41123, 41203, 41213, 41223, 41230, 41231, 41232, 41233, 41234, 41235, 41236, 41237, 41238, 41239, 41243, 41253, 41263, 41273, 41283, 41293, 41323, 41423, 41523, 41623, 41723, 41823, 41923, 42123, 43123, 44123, 45123, 46123, 47123, 48123, 49123, 50123, 51023, 51123, 51203, 51213, 51223, 51230, 51231, 51232, 51233, 51234, 51235, 51236, 51237, 51238, 51239, 51243, 51253, 51263, 51273, 51283, 51293, 51323, 51423, 51523, 51623, 51723, 51823, 51923, 52123, 53123, 54123, 55123, 56123, 57123, 58123, 59123, 60123, 61023, 61123, 61203, 61213, 61223, 61230, 61231, 61232, 61233, 61234, 61235, 61236, 61237, 61238, 61239, 61243, 61253, 61263, 61273, 61283, 61293, 61323, 61423, 61523, 61623, 61723, 61823, 61923, 62123, 63123, 64123, 65123, 66123, 67123, 68123, 69123, 70123, 71023, 71123, 71203, 71213, 71223, 71230, 71231, 71232, 71233, 71234, 71235, 71236, 71237, 71238, 71239, 71243, 71253, 71263, 71273, 71283, 71293, 71323, 71423, 71523, 71623, 71723, 71823, 71923, 72123, 73123, 74123, 75123, 76123, 77123, 78123, 79123, 80123, 81023, 81123, 81203, 81213, 81223, 81230, 81231, 81232, 81233, 81234, 81235, 81236, 81237, 81238, 81239, 81243, 81253, 81263, 81273, 81283, 81293, 81323, 81423, 81523, 81623, 81723, 81823, 81923, 82123, 83123, 84123, 85123, 86123, 87123, 88123, 89123, 90123, 91023, 91123, 91203, 91213, 91223, 91230, 91231, 91232, 91233, 91234, 91235, 91236, 91237, 91238, 91239, 91243, 91253, 91263, 91273, 91283, 91293, 91323, 91423, 91523, 91623, 91723, 91823, 91923, 92123, 93123, 94123, 95123, 96123, 97123, 98123, 99123] |
|----------------------|--------------------------------------------|

বিধি

  • ইনপুটটি খালি-খালি নিশ্চিত।
  • শীর্ষস্থানীয় এবং অনুসরণীয় শূন্যগুলি: 01234থেকে পৃথক 12340এবং 1234কোনও পাসওয়ার্ড ক্র্যাক করে না। বাস্তব পাসওয়ার্ডগুলি কীভাবে কাজ করে তা ভেবে দেখুন!
  • স্ট্যান্ডার্ড আই / ও বিধি প্রযোজ্য।
  • কোনও মানক ফাঁক নেই
  • এটি , তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তর ins নন-কোডগলফিং ভাষা স্বাগত!

5
অঙ্কগুলি কি সর্বদা ক্রমে থাকে? পরীক্ষাগুলির কেসগুলির ভিত্তিতে আমি ধরে নিই যে সেগুলি, তবে আমি এটিগুলি না পড়তে পারলে নিয়মে এটি উল্লেখ করা দেখতে পেতাম না।
কেভিন ক্রুইজসেন

13
পিপিসিজিতে আপনাকে স্বাগতম! এটি একটি সুন্দর, সুগঠিত এবং সুন্দরভাবে ফর্ম্যাট করা প্রথম চ্যালেঞ্জ। আপনার হোমওয়ার্কটি এতটা কমিয়ে দেওয়া পর্যন্ত আপনি পরিষ্কারভাবে করে ফেলেছেন। আমি এর উত্তর দেওয়ার অপেক্ষায় রয়েছি (যদি কেউ প্রথমে এর উত্তর না দেয়!)। ভবিষ্যতে, আমরা মূল পোস্ট করার আগে প্রতিক্রিয়া জানাতে স্যান্ডবক্স ব্যবহার করার পরামর্শ দিই । আশা করি আপনি পিপিসি তে আপনার সময় উপভোগ করবেন!
জিউসেপ

1
@ জিউসেপ ধন্যবাদ! আমি বেনামে কয়েক বছর ধরে এই সাইটে প্রশ্নগুলি পড়ছি এবং আমি কয়েক মাস ধরে এই নির্দিষ্ট সমস্যাটি লিখছি এবং টুইট করছি এবং আসলেই সমাধান করছি: স্যান্ডবক্সটি এড়িয়ে যাওয়ার পক্ষে আমার এটি যথেষ্ট পছন্দ হয়েছে। আমি পরের বার সেখানে পোস্ট করব!
শে

2
@ আর্নল্ড ওয়েল, যদি আপনার পাসওয়ার্ড 01234 বা 12340 হয় আপনি 1234 টাইপ করে লগইন করতে পারবেন না Pass কমপক্ষে সংখ্যায় রচিত হলেও পাসওয়ার্ডগুলি একটি সংখ্যার চেয়ে বেশি স্ট্রিং। হ্যাঁ, নেতৃস্থানীয় এবং অনুসরণীয় শূন্যগুলি বাধ্যতামূলক।
সিফেল

2
চূড়ান্ত পরীক্ষার কেসটি 22123 অনুপস্থিত বলে মনে হচ্ছে ... যদি না আমি কিছু ভুল বুঝি?
জোনা

উত্তর:


24

পাইথন, 100 বাইট

lambda e,d='%05d':[d%i for i in range(10**5)if all(re.search('.*'.join(x),d%i)for x in e)]
import re

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

পাইথন 2 তে পাশাপাশি পাইথন 3 তেও কাজ করে।

( পাইথন ৩.৮ এ 97 বাইট :)

lambda e:[p for i in range(10**5)if all(re.search('.*'.join(x),p:='%05d'%i)for x in e)]
import re

1
এটি একটি সুন্দর সমাধান ...
জোনা

1
আপনার নন-৩.৮ কোডটি স্ট্রিংকে এলিয়াস করার "দরিদ্র-পুরুষের অ্যাসাইনমেন্ট এক্সপ্রেশন" করতে পারে '%05d'
xnor


12

জাভাস্ক্রিপ্ট (ES6), 88 বাইট

এর সাথে ফলাফলগুলি মুদ্রণ করে alert()

a=>{for(k=n=1e5;n--;)a.every(x=>(s=([k]+n).slice(-5)).match([...x].join`.*`))&&alert(s)}

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

মন্তব্য

a => {                    // a[] = input array of 3-character strings
  for(k = n = 1e5; n--;)  // initialize k to 100000; for n = 99999 to 0:
    a.every(x =>          // for each string x = 'XYZ' in a[]:
      ( s =               //   define s as the concatenation of
          ([k] + n)       //   '100000' and n; e.g. '100000' + 1337 -> '1000001337'
          .slice(-5)      //   keep the last 5 digits; e.g. '01337'
      ).match(            //   test whether this string is matching
        [...x].join`.*`   //   the pattern /X.*Y.*Z/
      )                   //
    ) &&                  // end of every(); if all tests were successful:
      alert(s)            //   output s
}                         //

8

হাস্কেল, 81 80 78 76 বাইট

f x=[p|p<-mapM(:['1'..'9'])"00000",all(`elem`(concat.words<$>mapM(:" ")p))x]

হাস্কেলের সুস্পষ্ট বর্বর শক্তি পদ্ধতির: সমস্ত সম্ভাব্য পাসওয়ার্ডের একটি তালিকা তৈরি করে এবং যেখানে ইনপুট তালিকা থেকে সমস্ত উপাদানগুলি পরবর্তী অংশের তালিকায় রয়েছে তাদের রাখুন।

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

সম্পাদনা করুন: -1 বাইট @ এক্সনোরকে ধন্যবাদ , -2 -4 বাইট ধন্যবাদ @ এইচ.পি.উইজকে


1
দেখে মনে হচ্ছে আপনি সাবকেকে নিজের চেয়ে ছোট করে তুলতে পারেন ।
xnor

1
concat.words<$>mapM(:" ")pআরও ছোট
এইচ.পি.উইভিজ

3
p<-mapM(:['1'..'9'])"00000"আরও 2 টি বাইট সংরক্ষণ করতে ব্যবহার করুন
এইচ.পি.উইজ



5

রুবি , 54 বাইট

->a{(?0*5..?9*5).select{|x|a.all?{|y|x=~/#{y*'.*'}/}}}

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

অক্ষর অ্যারের অ্যারে হিসাবে ইনপুট নেয় T


সাবাশ! আপনি আমাকে 25 বাইট দ্বারা মারলেন আমার উত্তর মুছে ফেলা উচিত?
এরিক ডুমিনিল

1
না, যতক্ষণ না আপনার কাছে বৈধ উত্তর রয়েছে, এটি মুছার দরকার নেই।
কিরিল এল।

5

পাইথন 3 , 98 বাইট

f=lambda l,s='':any(l)or print(s)if s[4:]else[f([x[x[:1]==c:]for x in l],s+c)for c in'0123456789']

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

পুনরাবৃত্তভাবে প্রতিটি পাঁচ-অঙ্ক সংখ্যার স্ট্রিংটি বিল্ডিংয়ের চেষ্টা করে, আঘাতগুলি এখনও অবধি অবশিষ্ট sউপসর্গগুলি ট্র্যাক করে l। সব শেষে যদি খালি থাকে তবে ফলাফলটি মুদ্রণ করে।

পাইথন 3.8 (প্রাক রিলিজ) , 94 বাইট

lambda l:[s for n in range(10**5)if all(''in[x:=x[x[:1]==c:]for c in(s:='%05d'%n)]for x in l)]

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

অ্যাসাইনমেন্ট এক্সপ্রেশন শক্তি দেখুন ! উপসর্গগুলি পরীক্ষা করার জন্য এখান থেকে পদ্ধতিটি ব্যবহার করে ।



4

রেটিনা , 53 বাইট

~(`
.$*
m`^
G`
^
K`¶5+%`$$¶0"1"2"3"4"5"6"7"8"9¶
"
$$"

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

~(`

স্ক্রিপ্টটি কার্যকর করার পরে, ফলাফলটি একটি নতুন স্ক্রিপ্ট হিসাবে নিন এবং এটিও কার্যকর করুন।

.$*

ঢোকান .*সর্বত্র। এটি .*3.*2.*0.*কেবল আমাদের প্রয়োজন হলেও 3.*2.*0এটির জন্য এটি গুরুত্বপূর্ণ নয় in

m`^
G`

একটি ঢোকান G`প্রতিটি লাইনে শুরুতে। এটি একটি রেটিনা গ্রেপ কমান্ডে রূপান্তরিত করে।

^
K`¶5+%`$$¶0"1"2"3"4"5"6"7"8"9¶
"
$$"

উপসর্গ আরও দুটি রেটিনা কমান্ড। ফলস্বরূপ স্ক্রিপ্টটি এরকম কিছু দেখায়:

K`

বাফার সাফ করুন (এতে মূল ইনপুট রয়েছে)।

5+

5 বার পুনরাবৃত্তি করুন ...

%`$

... প্রতিটি লাইনে যুক্ত করুন ...

0$"1$"2$"3$"4$"5$"6$"7$"8$"9

... অঙ্ক 0, তারপর লাইন একটি কপি, তারপর অঙ্ক 1পর্যন্ত ইত্যাদি 9। এর অর্থ হ'ল nলুপগুলির পরে আপনার কাছে সমস্ত- nডিজিট নম্বর থাকবে।

G`.*3.*2.*0.*
G`.*7.*2.*3.*
G`.*7.*3.*0.*

ইনপুট উপর ভিত্তি করে সম্ভাব্য সংখ্যা ফিল্টার আউট।


4

আর , 80 82 বাইট

Reduce(intersect,lapply(gsub("",".*",scan(,"")),grep,sprintf("%05d",0:99999),v=T))

রেজেক্স ব্যবহার করে এখানে একটি বেস আর সমাধান রয়েছে। এই নেস্টেড সিরিজ ফাংশনগুলি লেখার ফলে আমি বুঝতে পেরেছিলাম যে আমি ম্যাজিস্ট্রি প্যাকেজটির প্রশংসা করতে কতটা শিখেছি!

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

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


@ ডিজিম সব কি বলে যে এটি 82 বাইট না? ইনপুটটিতে শীর্ষস্থানীয় শূন্যগুলির সম্ভাবনার কারণে আপনি পূর্ণসংখ্যা ব্যবহার করতে পারবেন না।
নিক কেনেডি

দুঃখিত, আমি শিরোনামটি পড়েছি এবং অজ্ঞান হয়ে আমি সর্বনিম্ন সংখ্যাটি বেছে নিয়েছিলাম যে এটি স্ট্রাইকথ্রু ছিল ... এবং হ্যাঁ, দুঃখিত, আপনি আবার স্ট্রিং ইনপুট সম্পর্কে ঠিক বলেছেন;)
digEmAll

2

রুবি , 79 77 বাইট

->x{(0...1e5).map{|i|'%05d'%i}.select{|i|x.all?{|c|i=~/#{c.gsub('','.*')}/}}}

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

ইনপুট স্ট্রিংগুলির একটি অ্যারে।

এখানে একই কোডটির আরও পাঠযোগ্য সংস্করণ:

def f(codes)
  (0...10**5).map{|i| '%05d'%i}.select do |i|
    codes.all? do |code|
      i =~ Regexp.new(code.chars.join('.*'))
    end
  end
end

BTW, আপনার পদ্ধতির এছাড়াও অ্যারে ইনপুট হিসাবে উপরের মান বিন্যাস দ্বারা -2 আরো বাইট গৃহস্থালি, আমার সংস্করণে, এবং সুইচিং দ্বারা খাটো করা যেতে পারে 1e5, মত এই
কিরিল এল

@KirillL। -২ বাইটের জন্য ধন্যবাদ আমি ইনপুট ফর্ম্যাটটি পরিবর্তন করব না কারণ আমার উত্তরটি আপনার মতো দেখায়। চিয়ার্স!
এরিক ডুমিনিল

2

পিএইচপি 128 বাইট

for(;$i++<1e5;$k>$argc||print$s)for($k=0;$n=$argv[++$k];)preg_match("/$n[0].*$n[1].*$n[2]/",$s=sprintf("%05d
",$i-1))||$k=$argc;

অথবা

for(;$i<1e5;$i+=$k<$argc||print$s)for($k=0;$n=$argv[++$k];)if(!preg_match("/$n[0].*$n[1].*$n[2]/",$s=sprintf("%05d
",$i)))break;

কমান্ড লাইন আর্গুমেন্ট থেকে ইনপুট নিন। তাদের সাথে চালান -nrবা অনলাইনে চেষ্টা করুন



2

জাপট, 21 বাইট

1e5o ù'0 f@e_XèZË+".*

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

1e5o ù'0 f@e_XèZË+".*    # full program

1e5o                     # generate numbers under 100k
     ù'0                 # left pad with 0's
         f@              # filter array
           e_            # check every element of input array
             Xè          # X is the number to be tested.
                         # test it against a regex.
               ZË+".*    # the regex is an element from the input array
                         # with wildcards injected between each character

-২ বাইট @ শাগগিকে ধন্যবাদ!


অল্প অকেজো চলক:: 1e5o ù'0 fA{Ue@AèX®+".*পি
ASCII- কেবল

এছাড়াও 23:1e5o ù'0 fA{Ue@AèX¬q".*
ASCII- কেবল


আকর্ষণীয় ... আমি বুঝতে পারি নি return X,Y,Zযে শেষ শব্দটি বেছে নেবে। টিপসের জন্য ধন্যবাদ :)
ডানা

1
@dana; : হ্যাঁ, যে জাভাস্ক্রিপ্ট এর একটি বৈশিষ্ট্য এর tio.run/##y0osSyxOLsosKNHNy09J/Z9m@1@jQqdS09auuii1pLQoTwHIq/...
রোমশ

2

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) , 116 বাইট

x=>{for(int i=0;i<1e5;){var s=$"{i++:D5}";if(x.All(t=>t.Aggregate(-6,(a,c)=>s.IndexOf(c,a<0?a+6:a+1))>0))Print(s);}}

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

// x: input list of strings
x=>{
  // generate all numbers under 100k
  for(int i=0;i<1e5;){
    // convert the current number to
    // a 5 digit string padded with 0's
    var s=$"{i++:D5}";
    // test all inputs against the 5 digit
    // string using an aggregate.
    // each step of the aggregate gets
    // the index of the next occurrence
    // of the current character starting
    // at the previously found character.
    // a negative index indicates error.
    if(x.All(t=>t
             .Aggregate(-6,(a,c)=>
               s.IndexOf(c,a<0?a+6:a+1)
             )>0))
      // output to STDOUT
      Print(s);
  }
}

সম্পাদনা: একটি বাগ ঠিক করা যেখানে একই অক্ষরটিকে একাধিকবার গণনা করা হয়েছিল। উদাহরণস্বরূপ, যদি 000লগ করা থাকে তবে ফাংশনটি একটি এককযুক্ত সমস্ত পাসওয়ার্ড ফেরত দিতে ব্যবহৃত হত 0



1

কে 67 বাইট

{n@&{&/y in\:x@/:&:'a@&3=+/'a:(5#2)\:'!32}[;x]'n:{"0"^-5$$x}'!_1e5}

কে এর একটি (খুব) আদিম রেজেক্স ক্ষমতা আছে, তাই আমি একটি ভিন্ন পদ্ধতির চেষ্টা করেছি।

{... a একটি ল্যাম্বডা সংজ্ঞায়িত করে। উদাহরণ ব্যবহার করুন:{...}("320";"723";"730")

আয় ("37230";"72320";"73203";"73230")

  • n 0-প্যাডযুক্ত স্ট্রিং হিসাবে 0..9999 ব্যাপ্তির পূর্ণসংখ্যার তালিকা

    • _1e5 ভাসমান 1e5 (বৈজ্ঞানিক স্বরলিপি) এ মেঝে প্রয়োগ করে -> পূর্ণসংখ্যা 100000 জেনারেট করে

    • !_1e5 পূর্ণসংখ্যা-তালিকা 0..99999 উত্পন্ন করে

    • {..}'!_1e5 0..99999 এ প্রতিটি মান লাম্বদা প্রয়োগ করে

    • $x যুক্তি x (অন্তর্নিহিত আর্গ) স্ট্রিংয়ে রূপান্তর করুন

    • -5$$xডান আকার 5 (প্রাক্তন একটি ক্ষেত্র সমন্বয় স্ট্রিং $ x এর। -5$$12দ্বারা উত্পন্ন" 12"

    • "0"^stringফাঁকাগুলি "0" চরের সাথে প্রতিস্থাপন করে, তাই "0"^-5$$12উত্পন্ন করে"00012"

  • a 5-বিট মান হিসাবে 0..31 রেঞ্জের পূর্ণসংখ্যার তালিকা

    • !32 0_31 মান উত্পন্ন করুন

    • (5#2) পাঁচবার পুনরাবৃত্তি করুন (তালিকা 2 2 2 2 2)

    • (5#2)\:'!32 0..31 সীমাতে প্রতিটি মানের জন্য 5-বিট মান (2-বেস পাঁচ বার) উত্পন্ন করে

  • আমরা ঠিক তিনটি দিয়ে একটি এর মান ফিল্টার করি। যে মান এই সমস্ত সমন্বয় (স্থান) যেখানে প্যাটার্ন অবস্থিত করা যেতে পারে: 11100 11010 11001 10110 10101 10011 01110 01101 01011 00111। যাত্রা। "এবিসি" প্যাটার্নের জন্য আমাদের রেগেক্সগুলির সাথে সমতা রয়েছেabc?? ab?c? ab??c a?bc? a?b?c a??bc ?abc? ?ab?c ?a?bc ??abc?

    • +\'a প্রতিটি বাইনারি উপস্থাপনার যোগফল গণনা করে (এর সংখ্যা)

    • 3=+\'a বুলিয়ানগুলির তালিকা তৈরি করে (যদি প্রতিটি মানের সাথে 3 টি থাকে তবে)

    • a@&3=+\'a "এটি যেখানে 3 = + \ 'a সত্য" হিসাবে পড়ে

  • পূর্ববর্তী জায়গাগুলির জন্য সূচকের তালিকা তৈরি করুন: (0 1 2; 0 1 3; 0 1 4; 0 2 3; 0 2 4; 0 3 4; 1 2 3; 1 2 4; 1 3 4; 2 3 4)এবং একটি পাসওয়ার্ডের জন্য সম্ভাব্য প্রবেশকৃত মানগুলি (x)

    • &:' "যেখানে প্রতিটি" হিসাবে পড়ে, বাইনারি-কোডযুক্ত পূর্ণসংখ্যার তালিকার জন্য প্রযোজ্য এবং প্রতিটি 1-বিটের সূচী গণনা করে

    • x@/: সূচকের তালিকার প্রতিটি এলেমে পাসওয়ার্ড এক্স প্রয়োগ করে (সমস্ত প্রবেশ করা মান উত্পন্ন করে)

  • সমস্ত নিদর্শনগুলি সমস্ত সম্ভাব্য প্রবেশ করা মানগুলির তালিকায় অবস্থিত কিনা তা নির্ধারণ করে

    • y নিদর্শন তালিকার প্রতিনিধিত্ব করে যে আর্গুমেন্ট

    • y in\: ডানদিকে তালিকার y এর প্রতিটি মান হিসাবে পড়ে reads

    • &/"এবং শেষ" &/y in\:..যদি y এর সমস্ত নিদর্শন তালিকার তালিকায় থাকে তবে সত্যটি ফিরে আসে ..

  • অবশেষে, প্রতিটি সূচকে প্রতিটি স্ট্রিংকে এন-এ ফিরিয়ে দিন যা ল্যাম্বদা সত্য করে

    • n@&{..} "এন যেখানে ল্যাম্বদা {.. true সত্য প্রত্যাবর্তন করে" হিসাবে পড়ে

0

সি (জিসিসি) 222 বাইট

#define C(p)*f-p?:++f;
#define I(x,y)x<10?:++y,x%=10;
a,b,c,d,e;f(int**H){for(;a<10;){int**h=H,*f,g=0;for(h=H;*h;){f=*h;C(a)C(b)C(c)C(d)C(e)f>*h+++2?:(g=1);}g?:printf("%d%d%d%d%d,",a,b,c,d,e);++e;I(e,d)I(d,c)I(c,b)I(b,a)}}

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

কলিং কোড

int main() {
  int hint1[5] = {9,9,7,-1,-1};
  int hint2[5] = {8,0,7,-1,-1};
  int* hints[3] = {hint1,hint2,0};
  f(hints);
}

আউটপুট

80997,89097,89907,98097,98907,99807,

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