দৈর্ঘ্যের এলোমেলিক স্ট্রিম এন তৈরি করা


30

প্রদত্ত দৈর্ঘ্যের সাথে এবং কেবলমাত্র বর্ণানুক্রমিক অক্ষরের অনুমতি সহ এলোমেলো স্ট্রিং তৈরি করার সবচেয়ে সংক্ষিপ্ততম উপায় কী?

  • এলোমেলো স্ট্রিংয়ের উদাহরণ: এন = 9 আউটপুট সহ aZua7I0Lk
  • প্রদত্ত দৈর্ঘ্য N সর্বদা 0 এর চেয়ে বড় হতে পারে
  • প্রয়োজনে আপনি 256 কে N এর সর্বাধিক মান হিসাবে ধরে নিতে পারেন, তবে এন এর জন্য উচ্চতর সীমা রয়েছে এবং এখনও দ্রুত গণনার সময় রয়েছে এমন সমাধানগুলি অগ্রাধিকার দেওয়া হয়
  • অনুমোদিত অক্ষর: 0-9, এজেড এবং এজেড
  • একটি অক্ষর আউটপুট স্ট্রিং একাধিকবার ঘটতে পারে
  • প্রতিটি সম্ভাব্য স্ট্রিং সমানভাবে হওয়া উচিত (আপনার ভাষার এলোমেলো নম্বর জেনারেটরের যথার্থতার জন্য)

1
আমরা এন এর সর্বাধিক মান ধরে নিতে পারি?
জেএডি

উত্তর:


4

জেলি , 4 বাইট

ØBṗX

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

ব্যাখ্যা

ØBṗX
ØB     All letters (uppercase and lowercase) and digits
  ṗ    Cartesian power with {the input}
   X   Select a random possibility

কার্টেসিয়ান শক্তি মূলত প্রদত্ত দৈর্ঘ্যের সমস্ত তালিকা তৈরি করে যা উপাদানগুলির একটি নির্দিষ্ট সেট থেকে তৈরি হতে পারে; আমাদের এখানে এটিই প্রয়োজন।


যদি ইউটিএফ -8 অক্ষর জড়িত থাকে তবে তা কি কেবল 4 বাইট হতে পারে? একটি ইউটিএফ -8 অক্ষর কেবল একটি বাইটের বেশি হতে পারে ...
এম

@ m13r জেলি তার নিজস্ব কোড পৃষ্ঠা ব্যবহার করে যেখানে এগুলি সমস্ত একক বাইট অক্ষর রয়েছে
ফ্লিপট্যাক

13

ট্যাক্সি , 2577 বাইট

Go to Post Office:w 1 l 1 r 1 l.Pickup a passenger going to The Babelfishery.Go to The Babelfishery:s 1 l 1 r.Pickup a passenger going to Sunny Skies Park.Go to Sunny Skies Park:n 1 l 1 l 1 r.[a]Go to Heisenberg's:n 1 r 1 r 3 r.Pickup a passenger going to Cyclone.Go to Go More:n 1 l 3 l 3 l.Go to Starchild Numerology:e 2 r.62 is waiting at Starchild Numerology.Pickup a passenger going to Cyclone.Go to Cyclone:e 1 l 2 r.Pickup a passenger going to What's The Difference.Pickup a passenger going to Divide and Conquer.Pickup a passenger going to Divide and Conquer.Go to Divide and Conquer:n 2 r 2 r 1 r.Pickup a passenger going to Trunkers.Go to Trunkers:e 1 r 3 r 1 l.Pickup a passenger going to Multiplication Station.Go to Cyclone:w 2 r.Pickup a passenger going to Multiplication Station.Go to Multiplication Station:s 1 l 2 r 4 l.Pickup a passenger going to What's The Difference.Go to What's The Difference:n 2 l 1 r 3 l.Pickup a passenger going to Addition Alley.Go to Starchild Numerology:e 1 r 3 l 2 r.1 is waiting at Starchild Numerology.63 is waiting at Starchild Numerology.Pickup a passenger going to Addition Alley.Pickup a passenger going to The Underground.Go to Addition Alley:e 1 l 2 r 3 r 1 r.Pickup a passenger going to Joyless Park.Go to Writer's Depot:n 1 l 1 l.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789- is waiting at Writer's Depot.Pickup a passenger going to Chop Suey.Go to Joyless Park:n 3 r 2 r 2 l.Go to Chop Suey:w 1 r 1 r 1 l.[b]Pickup a passenger going to Narrow Path Park.Go to Narrow Path Park:n 1 l 1 r 1 l.Go to The Underground:e 1 r.Switch to plan "c" if no one is waiting.Pickup a passenger going to The Underground.Go to Fueler Up:s.Go to Chop Suey:n 3 r 1 l.Switch to plan "b".[c]Go to Joyless Park:n 1 r.Pickup a passenger going to The Underground.Go to Narrow Path Park:w 1 r 3 l.[d]Pickup a passenger going to KonKat's.Go to KonKat's:e 1 r.Pickup a passenger going to KonKat's.Go to The Underground:s.Switch to plan "e" if no one is waiting.Pickup a passenger going to The Underground.Go to Fueler Up:s.Go to Narrow Path Park:n 4 l.Switch to plan "d".[e]Go to KonKat's:n.Pickup a passenger going to Riverview Bridge.Go to Riverview Bridge:n 1 l.Go to Narrow Path Park:e 1 l 1 r.Pickup a passenger going to Post Office.Go to Post Office:e 1 r 4 r 1 l.Go to Sunny Skies Park:s 1 r 1 l 1 r.Pickup a passenger going to The Underground.Go to The Underground:n 1 r 1 r 2 r.Switch to plan "f" if no one is waiting.Pickup a passenger going to Sunny Skies Park.Go to Sunny Skies Park:n 3 l 2 l 1 l.Switch to plan "a".[f]

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

ট্যাক্সি সুপার এর জন্য তৈরি হয় না তবে আপনি এটি করতে পারেন! আমি আন-গল্ফ সংস্করণের নীচে কী ঘটছে তা বোঝানোর চেষ্টা করব।

Go to Post Office: west 1st left 1st right 1st left.
Pickup a passenger going to The Babelfishery.
Go to The Babelfishery: south 1st left 1st right.
Pickup a passenger going to Sunny Skies Park.
Go to Sunny Skies Park: north 1st left 1st left 1st right.
[a]
Go to Heisenberg's: north 1st right 1st right 3rd right.
Pickup a passenger going to Cyclone.
Go to Go More: north 1st left 3rd left 3rd left.
Go to Starchild Numerology: east 2nd right.
62 is waiting at Starchild Numerology.
Pickup a passenger going to Cyclone.
Go to Cyclone: east 1st left 2nd right.
Pickup a passenger going to What's The Difference.
Pickup a passenger going to Divide and Conquer.
Pickup a passenger going to Divide and Conquer.
Go to Divide and Conquer: north 2nd right 2nd right 1st right.
Pickup a passenger going to Trunkers.
Go to Trunkers: east 1st right 3rd right 1st left.
Pickup a passenger going to Multiplication Station.
Go to Cyclone: west 2nd right.
Pickup a passenger going to Multiplication Station.
Go to Multiplication Station: south 1st left 2nd right 4th left.
Pickup a passenger going to What's The Difference.
Go to What's The Difference: north 2nd left 1st right 3rd left.
Pickup a passenger going to Addition Alley.
Go to Starchild Numerology: east 1st right 3rd left 2nd right.
1 is waiting at Starchild Numerology.
63 is waiting at Starchild Numerology.
Pickup a passenger going to Addition Alley.
Pickup a passenger going to The Underground.
Go to Addition Alley: east 1st left 2nd right 3rd right 1st right.
Pickup a passenger going to Joyless Park.
Go to Writer's Depot: north 1st left 1st left.
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789- is waiting at Writer's Depot.
Pickup a passenger going to Chop Suey.
Go to Joyless Park: north 3rd right 2nd right 2nd left.
Go to Chop Suey: west 1st right 1st right 1st left.
[b]
Pickup a passenger going to Narrow Path Park.
Go to Narrow Path Park: north 1st left 1st right 1st left.
Go to The Underground: east 1st right.
Switch to plan "c" if no one is waiting.
Pickup a passenger going to The Underground.
Go to Fueler Up: south.
Go to Chop Suey: north 3rd right 1st left.
Switch to plan "b".
[c]
Go to Joyless Park: north 1st right.
Pickup a passenger going to The Underground.
Go to Narrow Path Park: west 1st right 3rd left.
[d]
Pickup a passenger going to KonKat's.
Go to KonKat's: east 1st right.
Pickup a passenger going to KonKat's.
Go to The Underground: south.
Switch to plan "e" if no one is waiting.
Pickup a passenger going to The Underground.
Go to Fueler Up: south.
Go to Narrow Path Park: north 4th left.
Switch to plan "d".
[e]
Go to KonKat's: north.
Pickup a passenger going to Riverview Bridge.
Go to Riverview Bridge: north 1st left.
Go to Narrow Path Park: east 1st left 1st right.
Pickup a passenger going to Post Office.
Go to Post Office: east 1st right 4th right 1st left.
Go to Sunny Skies Park: south 1st right 1st left 1st right.
Pickup a passenger going to The Underground.
Go to The Underground: north 1st right 1st right 2nd right.
Switch to plan "f" if no one is waiting.
Pickup a passenger going to Sunny Skies Park.
Go to Sunny Skies Park: north 3rd left 2nd left 1st left.
Switch to plan "a".
[f]

শুরু করুন: স্টিডিন পান স্ট্যান্ডিন
মানটিকে পাঠ্য হিসাবে বেছে নিন, এটি একটি সংখ্যায় রূপান্তর করুন এবং অপেক্ষা করার জন্য এটি কোথাও আটকে যান।

একটি অংশ 1 পরিকল্পনা করুন: একটি এলোমেলোনা পূর্ণসংখ্যা 1-62
পান এলোমেলো পূর্ণসংখ্যা পান এবং তারপরে 62একটি সংখ্যা হিসাবে পান । এলোমেলো পূর্ণসংখ্যা এবং উভয়ই সদৃশ করুন 62কারণ আমাদের পরে তাদের প্রয়োজন হবে। আপনি শুধুমাত্র একবার তাই আমরা দিয়ে শেষ 3 যাত্রী বহন করতে পারে rand, randএবং 62। (অন্যটি 62আমাদের ফিরে না আসা পর্যন্ত অপেক্ষা করবে)) ভাগ randকরে ভাগ করে 62একটি পূর্ণসংখ্যা পেতে ফলাফল কেটে ফেলুন। অন্য অনুলিপিটি ফিরে পেতে ফিরে যান 62এবং বিভাগ থেকে ছেদকৃত পূর্ণসংখ্যার দ্বারা এটির গুণান। অবশেষে, এর প্রথম অনুলিপি থেকে পণ্যটি বিয়োগ করুন rand। এটি আমাদের 0-61 নম্বর দেয়। এখন আমাদের পিকআপ এ ফিরে যেতে হবে এবং 11-62 নম্বর পেতে ফলাফলটিতে এটি যুক্ত করতে হবে। হ্যাঁ, পাঠ্যের এই সমস্ত লাইনটি কেবলমাত্র mod(rand(),62)+1

একটি অংশ 2 পরিকল্পনা করুন: এমন সমস্ত অক্ষরের একটি অ্যারে তৈরি করুন যা থেকে
সমস্ত বৈধ অক্ষরের সাথে একটি স্ট্রিং পিকআপ চয়ন করতে হবে এবং শেষে আমরা চাই না এমন একটিও রয়েছে (এরপরে আরও)। 63আমরা এই স্ট্রিং দৈর্ঘ্য আগের ম্যাচ কুড়ান। এটি পৃথক যাত্রীদের মধ্যে বিভক্ত করতে চপ স্যুয়ের কাছে নিয়ে যান।

পরিকল্পনা বি: অ্যারেটি সরান যাতে আমরা
একের পর এক চরিত্র নির্বাচন করতে পারি, প্রতিটি অক্ষরকে সরু পথ পার্কে স্থানান্তরিত করতে পারি। এটি একমাত্র স্ট্যাক উপলভ্য এবং একমাত্র উপায় যে বাকী যাত্রীরা যাতে পথে না যায়। টাউনসবার্গের অন্য সব কিছুই ফিফো তাই আমাকে ফিরে যেতে হবে এবং সামগ্রিক লুপের প্রতিটি পুনরাবৃত্তি সমস্ত যাত্রীদের পরিষ্কার করতে হবে। এইভাবে, আমি কেবল তাদের পার্কে রেখে যেতে পারি এবং তারা প্রতিবার new৩ টি নতুন চরিত্রের মাধ্যমে পথ থেকে দূরে সরে যাবে। প্রথমটি Aসম্ভবত পালাতে পারে না

পরিকল্পনা সি: একটি চরিত্র নির্বাচন করার জন্য প্রস্তুত করুন
এটি সত্যিই মাত্র কয়েক স্টপ যা প্ল্যান ডি তে হওয়া দরকার ছিল না the

পরিকল্পনা ডি: আমরা চাই না এমন সমস্ত চরিত্রগুলি পান
যা বিপরীত "অ্যারে" (এটি আমরা চাই না এমন rd৩ তম অক্ষর) প্রথম চরিত্রের সাথে শুরু করা, modফাংশনটির ফলাফল থেকে গণনা করার সাথে সাথে চরিত্রগুলি বাছাই এবং সংক্ষেপণ অবিরত রাখুন প্ল্যান এ। একবার আপনি শূন্য হিট করার পরে, পরবর্তী চরিত্রটি আপনি চান তা হ'ল।

পরিকল্পনা ই: আপনি যা চান না তা নিক্ষেপ করুন এবং নির্বাচিতটিকে ফিরিয়ে দিন।
"[পি] রিভারভিউ ব্রিজের যাত্রীরা সর্বদা পাশের ও নদীর তীরে পড়ে গিয়েছে বলে মনে হচ্ছে ..." হ্যাঁ, এটি হেরে যাওয়া লোকদের একত্রিত স্ট্রিং থেকে মুক্তি পেয়েছে। পরবর্তী অক্ষরটি বেছে নিন এবং স্টডআউটে প্রেরণ করুন। পরিশেষে, আসুন আমরা এখন পর্যন্ত কতগুলি অক্ষর মুদ্রণ করেছি তা পরীক্ষা করে দেখি। এতক্ষণ আগে আমরা যে স্টিন মানটি রেখেছি তা নিতে সানি আকাশে ফিরে যান। একটিকে বিয়োগ করুন এবং ফলাফলটি যদি শূন্যের বেশি হয় তবে এটি অপেক্ষা করতে আবার পাঠান এবং প্ল্যান এ এ আবার শুরু করুন


এটি কি টুরিংয়ের সম্পূর্ণ ভাষা? আমি কি কখনও শুনিনি? যদি তা হয় তবে এটি ইতিহাসের দীর্ঘতম কোড গল্ফ উত্তর হিসাবে যোগ্য হতে পারে!
ম্যাপেল_শ্যাফ্ট

4
@ ম্যাপল_শ্যাফ্ট ট্যাক্সি মজাদার এক ধরণের তবে আমি গ্যারান্টি দিতে পারি যে এটি দীর্ঘতম কোড গল্ফ উত্তর নয়। আছে কিছু একক উত্তর যে গম্ভীরভাবে তুরুপের করুন।
ইঞ্জিনিয়ার টোস্ট 18

1
@ ম্যাপেল_শ্যাফ্ট আমি কিছু খনন করেছি। পিপিসিজিতে আমি যে সবচেয়ে বড় উত্তর পেতে পারি তা হ'ল @ ডেনিস this (অবশ্যই এটি ডেনিস ♦) এর উত্তরটির মূল সংস্করণ তবে এটি থেকে এসেছে code-bowlingএবং এটি সংশোধিত হয়েছিল। code-golfআমি যে দীর্ঘতম উত্তরটি খুঁজে পেতে পারি তা হ'ল মূল কুইন চ্যালেঞ্জের আসল ব্রেইন- ফ্ল্যাক জমা দেওয়া । এটি 9.5 * 10 ^ 580 বাইটে আসে। দীর্ঘতম বর্তমান উত্তর আমি পাওয়া ছিল একক প্রধান পরীক্ষক 1,65 * 10 ^ 56 বাইট:।
ইঞ্জিনিয়ার টোস্ট

7

সি (জিসিসি) , 57 55 52 বাইট

পয়েন্টারগুলির জন্য 2501 ধন্যবাদ ...

i;f(n){for(;n-=isalnum(i=rand()%150)&&putchar(i););}

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


rand()%74হওয়া উচিতrand()%75
2501

2501 ভাল কল।
ক্লাবল্যাঙ্ক

1
আপনি &&putchar(i)টের্নারি অপারেটরের পরিবর্তে আকারটি আরও কমিয়ে আনতে পারেন ।
2501

নিস! ধন্যবাদ, দুর্দান্ত
ক্লাবল্যাঙ্ক

6

জেলি , 5 বাইট

একটি কৌশল মিস করেছেন - আইস 523 এর 4 বাইটার দেখুন

ØBX$€

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

কিভাবে?

ØBX$€ - Main link: n
    € - for each in range(n):
   $  -   last two links as a monad:
ØB    -     "base digits" - yields list of chars "01..9AB...Zab...z"
  X   -     random choice

আমি কোনও ইউটিএফ -8 চরিত্রটিকে একটি বাইট ওও দৈর্ঘ্য হিসাবে বিবেচনা করব না?
এম 13 ই

@ এম 13 এ জেলি এর নিজস্ব কোড পৃষ্ঠা রয়েছে - এটি দেখতে আমার উত্তরের শিরোনামে বাইট ক্লিক করুন।
জোনাথন অ্যালান

5

শেল + pwgen , 13 বাইট

pwgen -s $1 1

-স, - সুরক্ষিত

সম্পূর্ণ এলোমেলো, হার্ড-টু-মুখস্ত পাসওয়ার্ডগুলি তৈরি করুন।

নমুনা আউটপুট

%pwgen -s 10 1
2cyhLovbfT

5

জাভা 8, 183 149 97 88 বাইট

n->{for(int t;n-->0;t*=Math.random(),System.out.printf("%c",t+=t>9?t>35?61:55:48))t=62;}

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

@ 2501 এর সি উত্তর পোর্টিং করে -9 বাইটস , তাই তাকেও আপভোট করতে ভুলবেন না!

পুরানো উত্তর, 97 বাইট

n->{for(int t;n-->0;t*=Math.random(),System.out.printf("%c",t>9?(t<36?65:97)+t%26:48+t%10))t=62;}

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

ব্যাখ্যা:

n->{                           // Method with integer parameter and String return-type
  for(int t;                   //  Temp integer
      n-->0                    //  Loop the input amount of times:
      ;                        //    After every iteration:
       t*=Math.random(),       //     Set `t` to a random integer in the range [0,62)
       System.out.printf("%c", //     Print as character:
         t+=                   //      The random integer, after we've added:
            t>9?               //       If the random integer is larger than 9:
             t>35?             //        If the random integer is larger than 35:
              61               //         Add 61
             :                 //        Else:
              55               //         Add 55
            :                  //       Else:
             48))              //        Add 48
    t=62;}                     //   (Re)set `t` to 62 for the random

n->{for(int t;n-->0;t*=Math.random(),System.out.printf("%c",...))t=62;}
                               // Similar as above
         t>9?                  //      If the random integer is larger than 9:
          (t<36?               //       If the random integer is smaller than 36:
            65                 //        Start with 65 ('A')
           :                   //       Else:
            97)                //        Start with 97 ('a')
               +t%26           //       And add the random integer modulo-26
         :                     //      Else:
          48                   //       Start with 48 ('0')
            +t%10)             //       And add the random integer modulo-10

4

সি, 60 বাইট

r;f(n){for(;n--;)r=rand()%62,putchar(r+=r>9?r>35?61:55:48);}

এটি এখানে কাজ দেখুন ।

এখানে বিতরণ দেখুন ।

এটি অভিন্নভাবে বিতরণ করা হয়, ধরে নেওয়া rand() % 62একটি অভিন্ন বিতরণ উত্পাদন করে। যেহেতু 62 সাধারণত RAND_MAX কে সমানভাবে ভাগ করে না, তাই খুব ছোট পক্ষপাত রয়েছে।


4

স্নোম্যান , 58 বাইট

((}#`""*:48vn58nR|65vn91nR,aC|97vn123nR,aCAsH1AaL#aC*;bR))

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

এটি একটি সাবরুটাইন যা ইনপুট হিসাবে একটি পূর্ণসংখ্যার গ্রহণ করে এবং এলোমেলো স্ট্রিং প্রদান করে।

((             subroutine
  }            make b, e, g active
  #`           e = input (from +)
  ""*          store an empty string in +
  :            what follows is the block to prepend a random char to +
    48vn58nR|  generate range(48..58) and place in g (need b and e for next step)
    65vn91nR   generate range(65..91) in b
    ,aC|       move g to e, concatenate b and e, and move the result to g
    97vn123nR  generate range(97..123) in b
    ,aC        move g to e, concatenate b and e, keeping the result in b
    AsH        shuffle the array of candidate ASCII codes stored in b
    1AaL       equivalent to 0aAwR - get the first element wrapped in an array
    #aC        retrieve + and prepend the randomly generated character
    *          store back into +
  ;bR          repeat this block e times, where e has been set to the input
))             output is given via +

এটা তোলে হওয়া উচিত: ((}#`""*:48vn58nR|65vn91nR,aC|97vn123nR,aCAsH1AaL#aC*;bR))
2501

@ 2501 আহ, আপনি ঠিক বলেছেন। স্থির, ধন্যবাদ।
ডুরকনব

4

পাওয়ারশেল, 58 54 বাইট

-4 আন্দ্রে ওদেগোভকে ধন্যবাদ - একটি চর অ্যারে তৈরি করার জন্য লুপিংয়ের পরিবর্তে একটি চর অ্যারেতে কাস্টিং।

-join[char[]](65..90+97..122+48..57|random -C "$args")

1..2+4..5 = 1,2,4,5সমস্ত গ্রহণযোগ্য চর্যাটার কোডের একটি ব্যাপ্তি তৈরি করে , তারপরে $argsএলোমেলোভাবে ব্যবহার করে উপাদানগুলির সংখ্যা নির্বাচন করে random -Count- ফলস্বরূপ উপাদানগুলি লুপ করা হয় |%{}এবং গুলিগুলিতে পরিণত হয় [char], ব্যবহার করে অক্ষরের একটি অ্যারেতে ফেলে দেওয়া হয় [char[]]- তারপরে পুরো জিনিসটি বন্ধনীতে আবদ্ধ হয় এবং -joinএকসাথে এড হয় ed

PS C:\users\sweeneyc\Desktop> .\grstr.ps1 5
oaCE5
PS C:\users\sweeneyc\Desktop> .\grstr.ps1 10
UReh6McG7D
PS C:\users\sweeneyc\Desktop> .\grstr.ps1 30
t1YrhZf5egyzqnPlWUKV3cEoIudMTs

প্যারামিটারের Get-Randomজন্য কেবল 1 এর উপরে সংখ্যাগুলি গ্রহণ করে 0 এর ইনপুটটির জন্য কাজ করে না -Count


আপনি ব্রেসের প্রাপ্ত অ্যারেটিকে একক পুরো হিসাবে অক্ষরের অ্যারেতে ফেলে দিতে পারেন। এটি 4 টি বাইট সংরক্ষণ করতে সহায়তা করবে:-join[char[]](65..90+97..122+48..57|random -C "$args")
আন্দ্রে ওদেগোভ 7:58



2

পার্ল 5 , 41 বাইট

40 বাইট কোড + -pপতাকা।

$\.=(a..z,A..Z,0..9)[rand 62]for 1..$_}{

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

(a..z,A..Z,0..9)সমস্ত অক্ষর এবং সংখ্যা সমন্বিত একটি অ্যারে তৈরি করে [rand 62], এই অ্যারের একটি এলোমেলো উপাদান প্রদান করে, যা এতে সংযোজন ( .=) হয় $\, যা -pপতাকা সহ ধন্যবাদ সহ প্রচ্ছন্নভাবে মুদ্রিত হয় }{


বা, একই বাইটেকউন্টের জন্য, তবে স্ট্যান্ডার্ড ইনপুটের চেয়ে পরামিতিগুলি ব্যবহার করে:

print+(a..z,A..Z,0..9)[rand 62]for 1..pop

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


2

আর, 51 বাইট

অন্যান্য আর উত্তর হিসাবে একই দৈর্ঘ্য, কিন্তু একটি ভিন্ন পদ্ধতির।

cat(sample(c(letters,LETTERS,0:9),scan(),T),sep="")

lettersএবং LETTERSউভয় হ'ল যথাক্রমে সমস্ত নিম্ন এবং বড় হাতের অক্ষর সমন্বিত ভেরিয়েবল। এতে যোগ 0:9করা এবং আমাদের কাছে বর্ণমালার সম্পূর্ণ অক্ষর রয়েছে।


2

আর, 54 52 51 49 বাইট

intToUtf8(sample(c(65:90,97:122,48:57),scan(),T))

ব্যাখ্যা:

  1. ইনপুট পূর্ণসংখ্যা পড়ুন এন :scan()
  2. ASCII মান সহ ভেক্টর: c(65:90,97:122,48:57)
  3. প্রতিস্থাপনের সাথে নমুনা এন এএসসিআইআই মানসমূহ:sample(c(65:90,97:122,48:57),scan(),T)
  4. ASCII মানগুলি একটি অক্ষরের স্ট্রিংয়ের সাথে রূপান্তর করুন intToUtf8

আমি একই দৈর্ঘ্যের সাথে অন্য একটি পদ্ধতির সন্ধান পেয়েছি।
জেএডি

@ জারকো ডাবডেলডাম ভাল ধারণা, এটি আমাকে দুটি বাইট সংরক্ষণ করতে সহায়তা করেছে
সোভেন হোহেনস্টেইন

ডি আহা! চমৎকার কাজ :)
জেএডি

2

জাভাস্ক্রিপ্ট (ES6), 61 54 39 52 64 বাইট

এটি প্রায় রিভার্স-গল্ফের মতো! তিনটি গোষ্ঠীর অক্ষরের পুরো ব্যাপ্তি ব্যবহার করা হবে তা নিশ্চিত করে বাইট গণনাটি বড় হিট করেছে।

f=n=>n--?btoa(String.fromCharCode(Math.random()*248))[0]+f(n):""
  • আর্নউল্ডের পুনরাবৃত্তির কাজটি করার পরামর্শের জন্য 15 বাইট সংরক্ষণ করা হয়েছে (এক পর্যায়ে) ।

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

f=n=>n--?btoa(String.fromCharCode(Math.random()*248))[0]+f(n):""
i.addEventListener("input",_=>o.innerText=f(+i.value))
<input id=i type=number><pre id=o>


আমি এটি আপডেট করেছি যাতে সমস্ত 3 টি চরিত্রের গোষ্ঠী অন্তর্ভুক্ত থাকে, @ আর্নল্ড; আমি কেবল এমন একটি সূচীটি অনুসন্ধান করার চেষ্টা করছি যা এর মধ্যে 2 টিরও বেশি থাকতে পারে। পুনরাবৃত্তির বিকল্পটি পরামর্শ দেওয়ার জন্য ধন্যবাদ।
শেগি

আমি ধারণাটি পছন্দ করি তবে আমি মনে করি আপনি এখন [0-5w-z]একচেটিয়াভাবে অক্ষর তৈরি করছেন ।
আর্নল্ড

আমি btoa(String.fromCharCode(Math.random()*248))[0]পুরো পরিসীমাটি সমানভাবে কভার করার পরামর্শ দেব ।
আর্নল্ড

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

এটি ভাল তবে এখনও অসম্পূর্ণ: 014589ABEFIJMNQRUVYZcdghklopstwx(এবং অভিন্ন নয়)।
আর্নল্ড

2

অ্যালিস , 24 বাইট

/w9u"Uz;r
\0.rdao"ki@/t&

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

এই লেআউটটি ইতিমধ্যে আমার কাছে (32 বাইট) যা ছিল তার চেয়ে অনেক ভাল, তবে আমি নিশ্চিত যে এটি এখনও অনুকূল নয় ...

ব্যাখ্যা

/      Reflect to SE. Switch to Ordinal.
       The IP now bounces diagonally up and down through the code.
09     Append 0 and 9 to an (implicit) empty string to create "09".
r      Range expansion, turns the string into "0123456789".
"az"   Push this string.
r      Range expansion, turns it into the lower-case alphabet.
i      Read all input as a string.
/      Reflect to E. Switch to Cardinal.
t      Implicitly convert the input string to the integer value N it
       contains and decrement it.
&      Run the next command N-1 times.
       The IP wraps around to the first column.
\      Reflect to NE. Switch to Ordinal. (This is not a command.)
w      Push the current IP address to the return address stack N-1
       times. This starts a loop whose body will run N times.
  .      Duplicate the lower-case alphabet.
  u      Convert it to upper case.
  d      Push the concatenation of all values on the stack. This pushes
         a single string with digits, lower-case and upper-case alphabet.
  U      Random choice. Pick a character from this string uniformly at random.
  o      Print it.
  ;      Discard the upper-case alphabet, because it will be regenerated
         in the next loop iteration (and if we leave it, then upper-case
         letters will become more and more likely as the output grows).
k      As long as there is still an address on the return address stack,
       jump back to that address (i.e. to the w). Once the return address
       stack has been depleted, this does nothing and the loop is exited.
@      Terminate the program.


2

পাইথন 2, 79 83 79 বাইট

import random as r,string as s;lambda x:''.join(r.sample(s.printable[:62]*x,x))

+4 বাইট (পুনরাবৃত্তির জন্য অ্যাকাউন্ট হয়নি)

-4 বাইট (ব্যবহারের পরামর্শের জন্য @ রডকে ধন্যবাদ printable[:62])


1
কাজ করে না, এতে অবশ্যই পুনরাবৃত্তি থাকতে হবে। (s.letters+s.digits)*xপরিবর্তে এটি স্থির করা যেতে পারেs.letters+s.digits
রড

@ রড ফিক্সড, ধন্যবাদ!
ওয়ানড্রিকেট 5'17

আপনি এর `r.sample(...)`[2::5]পরিবর্তে ''.join(r.sample(...))বাইট সংরক্ষণ করতে (কেবল অজগর 2) সংরক্ষণ (s.letters+s.digits)*xকরতে s.printable[:62]*xপারেন এবং 4 বাইট সংরক্ষণ করতে স্যুইচ করতে পারেন
রড

@ রড পরামর্শের জন্য ধন্যবাদ। আমি বাস্তবায়ন করেছি printable, কাজ করতে পেলাম না [2::5](সম্ভবত আমি এটি ভুল করছিলাম?)
ওয়ানড্রিকেট

আপনি তালিকার ঘিরে প্রয়োজন r.sample()ব্যাকটিক সঙ্গে `` এটি সম্পর্কে কিছু তথ্য
ডান্ডা



1

ব্যাচ, 175 বাইট

@set s=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
@for /l %%i in (1,1,%1)do @call :c
@echo %s:~62%
:c
@set/an=%random%%%62
@call set s=%s%%%s:~%n%,1%%

sএটি দ্বিগুণ শুল্ক সম্পাদন করে কারণ এতে উভয় বর্ণমালা তালিকা এবং এলোমেলোভাবে নির্বাচিত অক্ষর রয়েছে। ফলাফল মুদ্রণের পরে কোডটি সাবরুটিনের মধ্যে পড়ে যার ফলাফল উপেক্ষা করা হয়।


1

পাইকে , 4 বাইট

~JfH

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

~J   -   "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  f  -  cominbations(^, length=input)
   H - random.choice(^)

এটি 3 এর বেশি কোনও ইনপুটটির জন্য কাজ করবে বলে মনে হয় না এবং আমি নিশ্চিত নই যে এটি একই চরিত্রটি একাধিকবার তৈরি করতে পারে।
এটাকো

এটি 3 এর চেয়ে বেশি ইনপুটগুলির জন্য কাজ করে না আমি এখানে চেষ্টা করে দেখেছি
m13r

মাত্র 4 টি বর্ণানুক্রমিক অক্ষরের একটি স্ট্রিং তৈরি করতে এটির জন্য প্রায় 1 গিগাবাইট র‌্যামের প্রয়োজন ... 10 এর MemoryError
ইনপুটটির

1

পাইথ, 7 11 বাইট

O^s++rG1GUT

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

ব্যাখ্যা

O^s++rG1GUT
    +rG1G      Take the uppercase and lowercase alphabets.
   +     UT    Add it to the list [0, ..., 9].
  s            Concatenate to get a string.
 ^         Q   Get all strings of length N.
O              Choose one at random.

এর মধ্যে কেবল ছোট হাতের বর্ণমালা এবং সংখ্যা রয়েছে, বড় হাতের অক্ষর নয়
ব্লু

পছন্দ করুন সংশোধন করা হয়েছে।

1

সি # - 121 বাইট

void g(int n){Console.Write(Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(new Random().Next().ToString())).Substring(0,n));}

1

এজিএল সহ এপিএল (ডায়ালগ) , 17 বাইট

(⎕A,∆a,⎕D)[?⎕⍴62]

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

(... )[... ] সূচক মধ্যে

⎕A,∆a,⎕D বড় হাতের বর্ণমালা এর পরে ছোট হাতের বর্ণমালা পরে অঙ্ক করে

ব্যবহার

62 (সম্ভাব্য প্রতীক সংখ্যা

দ্বারা পুনরায় আকার দেওয়া

 মূল্যায়ন ইনপুট ( এন )

? প্রতিটি 62 পরিসীমা 1… 62 এর এলোমেলো সংখ্যায় পরিবর্তন করুন

এপিএল (এপিএলএক্স) , 17 বাইট

(⎕A,⎕a,⎕D)[?⎕⍴62]



1

সিনক্লেয়ার জেডএক্স 8১ / টাইমেক্স টিএস 1000/1500 বেসিক, ~ 63 টোকেনযুক্ত বেসিক বাইট

 1 INPUT N
 2 IF NOT N THEN STOP
 3 FOR N=SGN PI TO N
 4 PRINT CHR$ (CODE "A"+RND*26);
 5 NEXT N

জেডএক্স 8১-তে কোনও সমাবেশ বা ব্যবহার না করে কোনও রকম ইউডিজি রম বা কিছু না নিয়ে কোনও ছোট-বড় অক্ষর নেই এবং আপাতত এটি কেবল আউটপুট দেয় A-Z। যদি শূন্য প্রবেশ করানো হয় তবে প্রোগ্রামটি থেমে যায় এবং সরাসরি মোডে ফিরে আসে।



0

স্ট্যাকড , 33 বাইট

:>[alpha 10:>ALPHA,,''#`randin]"!

এটি অনলাইন চেষ্টা করুন! স্ট্যাকের শীর্ষ থেকে ইনপুট নেয় এবং স্ট্যাকের শীর্ষে আউটপুট দেয়।

:>[alpha 10:>ALPHA,,''#`randin]"!
:>                                  range from 0 to n-1
  [                           ]"!   on each, do:
   alpha                            push "abc...xyz"
         10:>                       push (0 1 2 ... 8 9)
             ALPHA                  push "ABC...XYZ"
                  ,,                concat twice
                    ''#`            join by nothing
                        randin      select random member in it
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.