একটি সাইফার তৈরি করুন


15

একটি নম্বর এবং স্ট্রিং প্রদত্ত একটি সাইফার তৈরি করুন

আপনার কাজ সহজ। একটি স্ট্রিং sএবং 0 <= n <= 9ইনপুট হিসাবে একটি নম্বর দেওয়া , স্ট্রিং nসময়ের প্রতিটি অক্ষরের মধ্যে একটি সিউডো-এলোমেলো মুদ্রণযোগ্য ASCII অক্ষর .োকান । যেমন প্রতিটি চরিত্রের জন্য sতাদের মধ্যে nএলোমেলো অক্ষর আছে । স্পেসগুলি ছাঁটাই করা উচিত।

ইনপুট:

  • sসাইফারে এনক্রিপ্ট করার জন্য স্ট্রিং ফ্রেজ
  • nব্যাপ্তি মধ্যে পূর্ণসংখ্যা0 <= n <= 9

উদাহরণ:

ইনপুট:

The treasure is here
2

আউটপুট:

T ! 0 h 32 e F4 t 0i r lk e hm a 7y s # 0 u * & r * h e ! 2 i H ^ s B, h ! @ E 0) r $ h e


এটি তাই সংক্ষিপ্ততম কোডটি জয়ী! গুড লাক এবং মজা আছে!


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

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

5
@ জ্যাকসকনাক "র্যান্ডম" একটি খুব বিস্তৃত শব্দ। আমি কি একটি সাধারণ বিতরণ সহ অক্ষরগুলি চয়ন করতে পারি, যাতে চারপাশের অক্ষরগুলি Oস্পেস বা তার চেয়ে বেশি হয় ~? যদি এটি অভিন্ন হতে হয়, তবে আপনার তাই স্পষ্টভাবে বলা উচিত। এবং যদি এটি অভিন্ন না হয়, তবে আপনার কমপক্ষে প্রতিটি চরিত্রের মতো এমন কিছু বলা উচিত যা শূন্য-শঙ্কার সম্ভাবনা থাকতে পারে। এছাড়াও আপনি একটি পূর্ববর্তী মন্তব্যে বিবৃত করেছি প্রতিটি অক্ষর যে নেই একটি স্বাধীন বন্টন আছে, তাই যদি এটা গুরুত্বপূর্ণ, এটি চ্যালেঞ্জ উল্লেখ করতে হবে। এলোমেলোতার একটি খুব বিস্তৃত বর্ণালী আছে।
মার্টিন ইন্ডার

3
এটি আসলে কোনও সিফার নয়। এটি সম্ভবত স্টেইনোগ্রাফিক।
গ্রেগ মার্টিন

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

উত্তর:


7

সি #, 141 131 বাইট

@ জিওবিটের জাভা উত্তরের সাথে সমান সুন্দর , বর্তমানে আর ব্যতীত :(

(I,n)=>{var R=new System.Random();var o="";int i,r;foreach(var c in I)if(c>32)for(i=r=0,o+=c;i++<n;){r=R.Next(33,127);o+=(char)r;}return o;};

পূর্ণ ল্যাম্বদা স্টাফ:

Func<string, int, string> a = (I,n) =>
{
    var R=new System.Random();
    var o="";
    int i;
    foreach(var c in I)
        if(c>32)
            for(i=0,o+=c;i++<n;o+=(char)R.Next(33,127));
    return o;
};

R=...আপনি কেন কেবলমাত্র new System.Random().Next(...)আমার মনে হয় সরাসরি ব্যবহার করতে পারেন
রোমান গ্রাফ

2
@ RomanGräf msdn.microsoft.com/en-us/library/h343ddh9(v=vs.110).aspx সি # 'গুলি এলোমেলো বর্গ, একটি বীজ ছাড়া সিস্টেম ঘড়ি ব্যবহার করা হবে, তাই আপনি যদি (যেমন মধ্যে যেমন দ্রুত পারম্পর্য মধ্যে কল সেখানে লুপ), মূল্যবোধের সবচেয়ে হচ্ছে অভিন্ন শেষ বেশিরভাগ ক্ষেত্রেই কাজ আমার কথা বিশ্বাস করুন :( না যা আমি সবসময় চেষ্টা করুন এবং তারপর যে মনে রাখবেন।
Yodle

7

05 এ বি 1 , 11 বাইট

ð-vy²FžQ.RJ

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

ব্যাখ্যা

ð-           # remove spaces from input string
  v          # for each char in the string
   y         # push the char
    ²F       # input-2 number of times do:
      žQ.R   # push a random ascii character
          J  # join to string

ঘনিষ্ঠ! ফাঁকা জায়গা ছাঁটাই! :)
জ্যাকসোনাক

@ জ্যাকসকোনাকাক: দুঃখিত এই অংশটি মিস করেছেন। এখনই স্থির হয়েছে :)
এমিগানা

সুন্দর কাজ! ওই কাজগুলো!
জ্যাকসোনাক

1
@ কারাসোকম্পুটিং: এটি শেষ অক্ষরের পরেও এলোমেলো অক্ষর যুক্ত করেছে। শুধু চিঠির মধ্যেই নয়।
এমিগানা

1
@ এমিগনা এই প্রশ্নের অধীনে একটি সাম্প্রতিক মন্তব্য করার পরে এটি ঠিক আছে বলে মনে হচ্ছে :)
geisterfurz007

6

জাভা 7, 132 124 বাইট

String f(int n,char[]a){String o="";int i;for(char b:a)if(b>32)for(i=0,o+=b;i++<n;o+=(char)(33+Math.random()*94));return o;}

অভিনব কিছুই নয়, আপনার প্রত্যাশা মতো কেবল একটি ডাবল লুপ। স্ট্রিং লুপ করার জন্য আউটডোর, এলোমেলোভাবে পূরণের জন্য অভ্যন্তরীণ:

String f(int n,char[]a){
    String o="";
    int i;
    for(char b:a)
        if(b>32)
            for(i=0,
                o+=b;
                    i++<n;
                        o+=(char)(33+Math.random()*94));
    return o;
}

প্রয়োজন নেই k: String f(int n,char[]a){String o="";for(char b:a)if(b>32){o+=b;for(int i=0;i++<n;o+=(char)(33+Math.random()*94));}return o;}(125 বাইট)
অলিভিয়ার গ্রাগোয়ার

ওহ ঠিক আছে। আমি এটি একটি অন্য পদ্ধতি দিয়ে ব্যবহার করছিলাম। আমি যখন charকাস্টের সাথে গেলাম তখন এটি বের করার বিষয়ে ভাবেনি। ধন্যবাদ!
জিওবিটস

আমার খারাপ। আমি miscounted, আমার পরামর্শ ছিল এছাড়াও 124 বাইট: আমি দৈর্ঘ্যের পরিবর্তে কলাম চেক করা;)
অলিভিয়ের Gregoire

হ্যাঁ, আমি লক্ষ করেছি যে দুটির তুলনা করার সময় :)
জিওবিটস

5

পাইকে, 12 11 9 বাইট

d-FQV~KHs

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

d-        -  remove spaces from input
  F       - for i in ^:
   QV     -  repeat (number) times:
     ~KH  -    random_from(printable)
        s -   sum(^)

ওপেন অনুসারে এলোমেলো অক্ষরগুলি অনুসরণ করা ঠিক আছে।


5

অক্টাভা, 43 বাইট

@(s,n)[s(s>32);33+94*rand(n,nnz(s>32))](:)'

এটি ইনপুট হিসাবে একটি স্ট্রিং sএবং একটি পূর্ণসংখ্যার লাগে n। অক্টাভে একটি স্ট্রিং কেবল অক্ষরের অ্যারে। কোনও স্থান-অবিশ্বাস্য পাঠকদের জন্য s>32একটি যৌক্তিক মানচিত্র 1। কোডটি একটি ম্যাট্রিক্সকে nসারি এবং একই সংখ্যক কলামগুলিতে সংযুক্ত করে s(s>32)যেখানে 33 এবং 126 এর মধ্যে ভাসমান পয়েন্ট সংখ্যা থাকে It এটি স্ট্রিংয়ের সাথে সংমিশ্রিত হলে এটি স্পষ্টতই পূর্ণসংখ্যার সাথে বৃত্তাকারে পরিণত হয় এবং ASCII- অক্ষরে রূপান্তরিত হয় s(:)'এটি অক্ষরের একটি অনুভূমিক অ্যারেতে সোজা করে।

এখানে পরীক্ষা!


1
অন্তর্নিহিত গোল! ভাল
লুইস মেন্ডো

4

পাইথন 2, 123 122 118 114 98 বাইট

ম্যান, আমার ইচ্ছা randomএত ব্যয়বহুল না (এবং আমাদের স্পেসগুলির জন্য ফিল্টার করতে হবে না)। শেষে আমাদের কাছে সাইফার অক্ষর থাকার অনুমতি থেকে বড় সঞ্চয় হয়েছে :) যাইহোক, আপনি এখানে যান:

from random import*
f=lambda s,n:s and(' '<s[0])*eval('s[0]'+'+chr(randint(32,126))'*n)+f(s[1:],n)

4

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

(s,n)=>s.replace(/. */g,x=>x[0]+String.fromCharCode(...[for(_ of Array(n))Math.random()*95+32]))

খাঁটি ES6 দীর্ঘ দুটি বাইট দীর্ঘ:

(s,n)=>s.replace(/. */g,x=>x[0]+String.fromCharCode(...[...Array(n)].map(_=>Math.random()*95+32)))

এখানে একটি দুর্দান্ত শীতল পদ্ধতি যা দু: খজনকভাবে 26 বাইট দীর্ঘতর:

(s,n)=>String.raw({raw:s.split` `.join``},...[for(_ of s)String.fromCharCode(...[for(_ of Array(n))Math.random()*95+32])])

কঠোরভাবে বলতে গেলে /. *(?=.)/স্ট্রিংগুলি স্পেসে শুরু বা শেষের জন্য কাজ করে না, কারও এটিই যত্নশীল নয়। (আপনি এখন এলোমেলো অক্ষরগুলিও অনুসরণ করার অনুমতি পেয়েছেন))
নীল

@ নীল ট্রেলিং এলোমেলো চরগুলি অনুমোদিত? আমার ধারণা আমি (?=.)স্ট্রিংয়ের শেষে যে জায়গাগুলি যত্ন করে সেগুলি সরাতে পারি ।
ইটিএইচ প্রডাকশনগুলি



3

সিজেম , 21 18 বাইট

lS-(ol~f{{95mrSc+\}*}

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

nএলোমেলোভাবে অনুসরণযোগ্য অক্ষর মুদ্রণ করে ।

ব্যাখ্যা

lS-        e# Read line and remove spaces.
l~         e# Read and evaluate another line.
f{         e# For each character (passing in N)...
  {        e#   Do this N times...
    95mr   e#     Push random integer in [0, 95).
    Sc+    e#     Add to space character, giving a random printable ASCII character.
  }*
}
           e# All characters remaining on the stack are printed implicitly
           e# at the end of the program.

3

বাশ, 124 বাইট

খাঁটি বাশ + কোরিউটিলস , কোনও নিয়ন্ত্রণ প্রবাহ কাঠামো নেই, উপ-ভাষা নেই, "ইওল" নেই

Golfed

E() { N=${1// /};paste <(fold -1<<<$N) <(tr -cd "\\40-\\176"<\/dev\/urandom|head -c$(($2*${#N}-$2))|fold -$2)|tr -d '\t\n';}

পরীক্ষা

>E "The treasure is here" 2
TkZhf(e&Rt@FrS,edha+-sJTuh.rX@eVKi+3s<7hftey8r*/e

3

প্রশ্ন / কেডিবি +, 39 36 34 বাইট

raze{""sv(raze x;`char$40+n?87)}prior s
(,/)({""sv((,/)x;`char$40+n?87)}':)s

(,/)({""sv((,/)x;10h$40+n?87)}':)s

ব্যবহারের পরিবর্তনশীল:

s:"The treasure is here"
n:2

এটি পূর্ববর্তী ক্রিয়াবিশেষ ব্যবহার করে , যা প্রতিটি আইটেমের ডানদিকে এবং পূর্বসূরীর মধ্যে রেখে দেওয়াতে এটি ফাংশনটি প্রয়োগ করে। (মূলত, ডানদিকে প্রতিটি অক্ষরের মধ্যে বামে ফাংশন প্রয়োগ করে))

40 এবং 126 এর মধ্যে এন এলোমেলো সংখ্যাগুলি তৈরি করুন তারপরে এগুলি একটি অক্ষরের সমতুল্য রূপান্তর করুন: (কিউ কেবল এইগুলির জন্য অক্ষর রয়েছে বলে মনে হয়)

`char$40+n?87

//Possible characters.
()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~

উদাহরণ আউটপুট:

TVghrveVp Rpti+r0sea3a9nsIjuRXrAReJ; +di=ys`{ ikhKTe4trTZesz

সম্পাদনা:
কে নোটেশন ব্যবহার করে কিউ'র রেজে রূপান্তর করে (, /) রূপান্তরিত করে 3 বাইট সংরক্ষণ করা হয়েছে এবং একইভাবে changed এর আগে পরিবর্তিত হয়েছে: আপডেটের জন্য @ স্ল্যাকওয়্যারকে ধন্যবাদ, শেভ 2 বাইট :)


1
সঙ্গে কাস্ট করে বাইট দুয়েক রক্ষা করতে পারে10h$
skeevey

2

জাভা 8, 114 বাইট

Golfed

(n,s)->s.chars().forEach((c)->{if(c>32)for(int i=0;i<=n;)System.out.print((char)(++i==1?c:33+Math.random()*94));})

ল্যাম্বদা যা একটি পূর্ণসংখ্যা এবং একটি স্ট্রিং গ্রহণ করে। জাভা 7 উত্তরের দ্বারা অনুপ্রাণিত হয়ে কিছু জাভা 8 স্ট্রিম সিনট্যাক্স ব্যবহার করে ডাবল লুপ (String.chars কয়েকটি বাইট সংরক্ষণ করতে ) ।

ইনপুট

3, "Hello world!"

আউটপুট

HfKIedb3l<-Ul%}vod"Bw\"|oa`%rH-}l/-{dMS;!B#X

2

স্কালা, 95 94 বাইট

def c(s:String,i:Int)=s.filter(_>32).mkString(scala.util.Random.alphanumeric.take(i).mkString)

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


প্রশ্নের বেশিরভাগ উত্তর নেই। প্রকৃতির Random.alphanumericফলে প্রতিটি অংশ একই হতে পারে, সুতরাং এটি একটি খোঁড়া সিফার ... এই উদাহরণটি দেখুন:scala> c("Hello", 1) res0: String = Hbeblblbo
জ্যাকব

বিটিডাব্লু, আপনি এটি মুছে ফেলতে পারেন filter। Invoking mkStringএকটি স্ট্রিং উপর একটি অক্ষর সংগ্রহ যেমন বিবেচনা করবে।
জ্যাকব

@ জ্যাকব ফিল্টার হ'ল জায়গাটি সরিয়ে ফেলার সবচেয়ে কার্যকর উপায় think আমি এলোমেলোভাবে রেখেছি কারণ এটি যথেষ্ট মনে হয়েছিল, তবে আমার যদি সময় থাকে তবে আমি যথাযথ র্যান্ডম পাঠ্যের জন্য একটি পৃথক ফাংশন যুক্ত করব।
ইথান

2

> <> (ফিশ), 107 106 103 বাইট

<v}:{r&" "
1xv+
2<v+
v}<
<~v!?=&:&:
6.>ol2-?!;a
:{{:}l1-[rv
v2<
<1x|!}:}-1<v!?:{{:o-+
^3<v ~}}r]~<
.40<

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

এটি সুপার এলোমেলো নয়, তবে এটি এলোমেলো। স্ট্যাকের উপর কেবল স্ট্রিং এবং পূর্ণসংখ্যা স্থাপন করুন (উদাহরণ: "হ্যালো ওয়ার্ল্ড!", 5)

Input: "Hello world!", 5
Output: H^\^]^eceeedldcdeclgfffhowhhfggojkkkkrdccedl]]\]\d

সম্পূর্ণ ব্যাখ্যা

আমি ব্যাখ্যাটি আপডেট না করা পর্যন্ত এটি কোডের একটি সামান্য পুরানো সংস্করণ। এটি বেশিরভাগই সমান, পড়ার জন্য সম্ভবত কিছুটা সহজ:

< v}:{r&" "
+1xv
+2<v
   }
:&:<~ v!?=&
?!;a6.>ol2-
:{{:}l1-[rv
v2<
<1x|!}:}-1<v!?:{{:o+*
^3<v ~}}r]~<
.43<

আমরা স্ট্রিং প্যারামিটারটি ভান করব s এবং পূর্ণসংখ্যা পরামিতিটিi

< v}:{r&" "

<মাছ অবিলম্বে সরাতে বাম, যা কাছাকাছি গোপন বলে " ", যা একটি স্থান স্ট্যাকে characted যোগ করা হয়েছে। তারপরে মাছগুলি ভ্রমণ করে &, যা নিবন্ধকে স্থান যুক্ত করে। rস্ট্যাকটি বিপরীত করে এবং {:}স্ট্যাকটি বাম দিকে স্থানান্তরিত iকরে ( স্ট্যাকের শেষে রেখে ), স্ট্যাকের শেষে মানটি অনুলিপি করে, তারপরে এটি ডানদিকে স্থানান্তরিত করে। vমাছটিকে নীচের দিকে যেতে শুরু করতে বলে।

+1xv
+2<v
   }

xমাছটিকে একটি এলোমেলো পথে অগ্রসর হতে বলে, শেষ পর্যন্ত ফলটি ডানদিকে চলে যায় এবং নীচের দিকে অবিরত হয়, 1+বা 2+আগে বা আগে যেতে পারে। এগুলি স্ট্যাকের শেষে সংখ্যায় যথাক্রমে 1 বা 2 যোগ করে। যদি মাছটি উপরের দিকে ভ্রমণ করে তবে এটি vআবার আঘাত করে এবং নীচে ভ্রমণ করে। }স্ট্যাকটি ডানদিকে স্থানান্তরিত করুন, তারপরে iস্ট্যাকের 1 নম্বরে এবং এই নতুন ভেরিয়েবলটি পজিশনে 0 (আমরা এটি কল করব m)।

:&:<~ v!?=&

এই বিভাগটি একটি ফাংশন, আসুন একে হোয়াইটস্পেসট্রিমার বলি । শুরু হয় যেখানে <। এটি কেবল ফাঁকা স্থানগুলি স্ট্রিপগুলি সরিয়ে দেয় যা স্ট্যাকের শেষে রয়েছে (সুতরাং স্ট্রিংয়ের শুরু) যতক্ষণ না এটি কোনও স্থান ছাড়ানো অক্ষরে না চলে।

সুতরাং সঙ্গে সঙ্গে মাছটি একটিতে সাঁতার কাটবে <এবং অবশ্যই বাম দিকে ভ্রমণ করবে। এটি তখন প্রবেশ করে:&:& এটি স্ট্যাকের শেষে মানটি অনুলিপি করে , রেজিস্টার থেকে স্থানটিকে স্ট্যাকের শেষের দিকে রাখে, অনুলিপি করে তারপরে পুনরায় নিবন্ধকের উপরে রাখে।

তারপরে মাছগুলি হিট =?!v ~, বা আরও নির্দিষ্টভাবে, =যা স্ট্যাকের বাইরে দুটি দুটি মান (আমরা সবে তৈরি দুটি) প্যাপ করে, তাদের তুলনা করে, সমান হলে স্ট্যাকের শেষে একটি 1 রাখে এবং একটি 0 স্ট্যাকের সমাপ্তি যদি তারা আলাদা হয়। ?স্ট্যাক শেষে বন্ধ নতুন মান পপ, যদি 0 পরবর্তী নির্দেশ, যা এই ক্ষেত্রে হয় নির্বাহ করে না! , এটা পরিবর্তে, executes v, যা আদেশ মাছ নীচের দিকে সরাতে (ফাংশন থেকে প্রস্থান)।

যদি এটি 1 হয় তবে এটি একটি স্থান খুঁজে পেয়েছে, সুতরাং এটি !ট্রামপোলিন যা কার্যকর করে এবং এর ফলে মাছটি পরবর্তী নির্দেশটি এড়িয়ে যায়, এটি একটি v, তাই মাছটি অবিরত থাকে। মাছের সামনে, এটি দেখতে পায়~ যা স্ট্যাকের (শেষের দিকে নিশ্চিত হওয়া) শেষ মানটি পপ করতে বলে, তারপরে মাছটি চালিয়ে যায় এবং আবার ফাংশনটি চালায়।

?!;a6.>ol2-

মাছটিকে তাত্ক্ষণিকভাবে একটি দ্বারা সাঁতার কাটতে বলা হয় >, তারপরে স্ট্যাকের শেষ অক্ষরটি আউটপুট করুন o(যা এটি প্রথমবার চালানো হয়, এটির প্রথম চরিত্রটি s)। এটি স্ট্যাকের দৈর্ঘ্য পায়, স্ট্যাকের শেষে lএকটি 2রাখে, তারপরে -2 থেকে বিয়োগ হয় l। এটি হিট করে ?!;যা, কী ?করে তা মনে করে, !স্ট্যাক খালি থাকলে মাছটি এড়িয়ে যায় এবং অবতরণ করে; , যা প্রোগ্রামটি শেষ করে।

স্ট্যাকটিতে এখনও অক্ষর রয়েছে তা অনুসরণ করে, আমরা কার্যকর করি !যার ফলে মাছগুলি ঝাঁপিয়ে পড়ে ;এবং কার্যকর করে a6., কোনটি সঞ্চয় করে a( একে 10) এবং 6স্ট্যাকের শেষে, যার জন্য x, yস্থানাঙ্ক থাকে ., যা তাদের শেষের বাইরে ফেলে দেয় them স্ট্যাক, তারপরে মাছটিকে টেলিপোর্ট করে10, 6 এবং সেই পোস্টের ডানদিকে নির্দেশনাটি কার্যকর করুন (মাছটি ডানদিকে সাঁতার কাটছে)।

আপনি যখন yঅবস্থানটি অনুধাবন করবেন তখন এটির চেয়ে কম জটিল এটি 6 এর নীচের লাইন। xঅবস্থান 10 তখন v, এবং এর ডানদিকে , যা কোনও অপশন নেই। এর ফলে মাছটি ডানদিকে সাঁতার চালিয়ে যেতে পারে এবং লাইনের শুরুতে বাস্তবায়ন শুরু করে ...

:{{:}l1-[rv
v2<
<1x|!}:}-1<v!?:{{:o+*
^3<v ~}}r]~<
.43<

সুতরাং এটি ফাংশন যা অক্ষরগুলির মধ্যে এলোমেলো পাঠ যুক্ত করে। এটি কিছুটা মুখের কথা, তবে এটি এ কারণে যে আমি এটিকে কিছুটা অতিরিক্ত এলোমেলো করার চেষ্টা করেছি। এটি কল করুন জেনারেন্ডমচার্সকে

:{{:}l1-[rvআসলে ফাংশন জন্য সেটআপ, এবং কম-তাই প্রকৃত ফাংশন নিজেই অংশ। মাছ প্রথমে সাঁতার কাটে :{{যে স্ট্যাকের শেষে মানটি অনুলিপি করে, তারপরে এটি দুটি বার বামে স্থানান্তরিত করে। যদি আপনি মনে করতে পারেন যে iস্ট্যাকের 1 পজিশনে ছিল, তবে আপনি জানতেনi এখন স্ট্যাকের শেষে on

মাছগুলি তারপরে :}কোন অনুলিপিগুলির উপর দিয়ে সাঁতার iকাটবে এবং স্ট্যাকের iশুরুতে এবং শেষে উভয় রেখে ডানদিকে স্ট্যাকটি স্থানান্তরিত করে। l1-[মাছগুলি স্ট্যাকের শেষে দৈর্ঘ্য স্থাপন করে, এটি থেকে 1 টি বিয়োগ করে, তারপরে [একটি নতুন স্ট্যাক তৈরি করে, চলমান l-1(স্ট্যাকের দৈর্ঘ্য বিয়োগ 1) মানকে নতুন স্ট্যাকের (তাই কেবলমাত্র iপুরাতন স্ট্যাকটি রেখে )) তারপরে rvমাছগুলি কেবল হিট দেয় যা স্ট্যাকটি আবার বিপরীত করে (আমার মনে হয় একটি নতুন স্ট্যাক তৈরির কারণে এটি কোনও কারণে বিপরীত হয়েছে), এবং মাছটিকে আরও একবার নীচে সাঁতার কাটতে আদেশ দেয়, সত্যিকার অর্থে ফাংশনটি শুরু করে<

সুতরাং বর্তমানে স্ট্যাকের শেষ হয়েছে mএবং আমাদের অস্থায়ী i, যা আমরা কল করব ti। তত্ক্ষণাত্ মাছটি সাঁতার কাটে 1-}, যা 1 থেকে 1 টি বিয়োগ tiকরে স্ট্যাকের শুরুতে সরিয়ে দেয়। তারপরে :}যা কেবল অনুলিপি করে mএবং স্ট্যাকের শুরুতে রাখে (লাগানো হয়)ti স্ট্যাকের অবস্থান 1 এ )।

এই যখন আমরা এই ছোট জিনিসটি আঘাত করি:

v2<
<1x|!
^3<

এটি আসলে মৃত সরল। !মাছ এড়িয়ে যেতে ঘটায় |এবং চালানো x। কী xকরে তা মনে করে, আমরা মনে করি এটি মাছটিকে কোনও 4 দিকের দিকে নিয়ে যায়। |এটি কেবল একটি আয়না, এবং মাছটিকে আবার সাঁতার কাটেx । সুতরাং মূলত, মাছগুলি স্ট্যাকের শেষের দিকে 1, 2 বা 3 রাখবে এবং বামদিকে অগ্রসর হবে, চারপাশে মোড়ানো।

মাছগুলি তখন সম্পাদন করে *+oযার ফলে স্ট্যাকের শেষ দুটি মানগুলি পপআপ করা, একসাথে গুণিত করা এবং ফলাফলটি আবার পিছনে ঠেলে দেয়, তারপরে একই জিনিসটি যোগ করার পরে, তারপরে চূড়ান্ত মানটি স্ট্যাকের বাইরে পপ করে এবং আউটপুট হয় o। আমাদের স্ট্যাকের আবার অপেক্ষাকৃত স্বাভাবিক ধারণকারী মাত্র [ m, ti,s ]।

:}}:স্ট্যাকের শেষে মানটি তৈরি করে (মূলত sপজিশন 0) ওটি অনুলিপি করা হয়, তারপরে স্ট্যাকটি দু'বার ডানদিকে সরানো হয় ( tiআবার সামনের দিকে রেখে ), তারপরে tiঅনুলিপি করা হয়। ?!vএতক্ষণে বুঝতে খুব সহজ হওয়া উচিত। মূলত যদি ti0 হয় তবে আমরা ফাংশনটি দিয়ে প্রস্থান করব v, অন্যথায় আমরা সম্পাদন করব !এবং এড়িয়ে যাবv (অন্য লুপটি করছে)।

যদি ti0 হয় এবং আমরা কিছুটা এলোমেলো অক্ষর আউটপুট সম্পন্ন করি, তবে আমরা এক্সিকিউট করে vদেখি:

   v ~}}r]~<
.43<

এখানে খুব অভিনব কিছু না। আমরা tiস্ট্যাক থেকে মাধ্যমে সরান ~। তারপরে ]এটি নতুন, এটি আমাদের সমস্ত মানকে স্ট্যাকের বাইরে ফেলে দেয় এবং এগুলি পুরানো স্ট্যাকের উপরে রাখে! বিপরীত সমস্যার কারণে আমরা বিপরীতr , তারপর সাথে সঠিক দুইবার স্ট্যাক নামান }}~, ডানদিকে স্ট্যাক shufting আমাদের দান [ m, i, s], ~অতিরিক্ত সদৃশ অপসারণ করা হয় s[0]ফাংশন আগের থেকে আমরা এটা যদি প্রয়োজন চাই আমরা একটি লুপ করছিলাম (তবে আমরা নেই, আমরা প্রস্থান করছি)। vমাছটিকে সাঁতার কাটতে এবং >34.ডুবোতে (এক্সিকিউশন অর্ডার দেখানোর জন্য উল্টো) করতে বলে, যা মাছকে কেবল বামে এবং এর মধ্যে সাঁতার কাটতে বলে 3, 4(কারণ এটি .একটি লাফ!)। 3, 4আসলে শুরুর ডানদিকেwhitespaceTrimmer, যা নিখুঁত কারণ আমরা বামে ভ্রমণ করছি।

এই সমস্ত যুক্তি অনুসরণ করে আমরা মাছ অনুসরণ করতে পারি যতক্ষণ না স্ট্যাক চূড়ান্তভাবে খালি থাকে এবং প্রোগ্রামটি whitespaceTrimmerকার্যকর হওয়ার ঠিক পরে প্রোগ্রামটি বের হয়।


হুম আমি দেখিনি যে চরিত্রটি মুদ্রণযোগ্য হতে হবে। এর জন্য সামান্য পরিবর্তন প্রয়োজন যা এটি কম এলোমেলো এবং আরও ছোট করে তুলতে পারে।
redstarcoder

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

2

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

($_,$n)=<>;chomp;y/ //d;$\=chop;print map{$_,map{chr 33+int rand 94}1..$n}split//

আমি আশা করি ওয়ান-লাইনার কী করে নীচে তা বুঝতে আপনাকে সহায়তা করে:

($_, $n) = <STDIN>;  # Reads in the string into $_,
                     # and the number into $n, from standard input.
                     # (<STDIN> works slightly different from <>.)
chomp($_);           # Removes the newline from the string.
$_ =~ tr/ //d;       # `Tr/`ansliterates ASCII space characters
                     # into nothing, effectively `/d`eleting them.
$\ = chop($_);       # Chop()s off the last character out of $_ and
                     # appends it to the output when print()ing.
                     # (Perl always prints $\ after you call print().)
print( map {         # Each element of [List 1] will be mapped to:
    $_,              #   -- Itself, and
                     # (When mapping, each element is available as $_.)
    map {            # (`map` resembles `foreach` but returns a list.)
        chr(         #   -- A random ASCII character, in the range
          33 + int(rand(94)) ) # from 33 (!, hex 21) to 126 (~, hex 7E)
    } 1..$n          # ...$n times! (Over the range 1 to $n, actually.)
} split(//, $_) );   # [List 1] is $_, split() into characters.

1

ক্লোজার, 126 123 118 122 117 বাইট

(defn c[m n](apply str(remove #(=\space %)(mapcat #(apply str %(for [_(range n)](char(rand-nth(range 32 127)))))m))))

বার্তাটির উপরে মানচিত্র, এলোমেলো অক্ষর সন্নিবেশ করায়, তারপরে ফলাফলটি সুসংহত করে।

নির্দেশাবলী সুপারিশ করে যে সমস্ত স্থান ফাঁকা ফলাফলের স্ট্রিং থেকে ছিটানো উচিত। যদি মূল বার্তাটি থেকে কেবল ফাঁকা স্থানগুলি ছিনিয়ে নেওয়া হয়, তবে আমি এটি পরিবর্তন করতে পারি।

Ungolfed:

(defn cipher [message n]
  (apply str
    (remove #(= \space %)
        (mapcat #(apply str %
                     (for [_ (range n)]
                       (char (rand-nth (range 32 127)))))
                message))))

1

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

import random
a,b=input(),input()
print(''.join([x+''.join([chr(random.randint(33,126))for c in range(int(b))]) for x in a]))

সম্ভবত প্রয়োজনের তুলনায় আরও দীর্ঘ, তবে এটি আমার এখন পর্যন্ত গল্ফ হয়েছে।


1
এটি প্রথম চরিত্রের সামনে এলোমেলো অক্ষর যুক্ত করে এবং স্পেসগুলি ছাঁটা হয় না। আমি মনে করি এই দুটি জিনিসই নিয়ম ভঙ্গ করে।
স্টিভি গ্রিফিন


1

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

from random import *
c=int(input())
print(''.join([i+''.join([chr(randint(33,126))for i in range(c)])for i in input().strip(' ')])[:-c])


1

সি, 102 100 বাইট

স্কিপিং -2 বাইট continue

i;f(char*s,int n){do{while(*s==32)++s;putchar(*s);i=n;while(i--)putchar(32+rand()%95);}while(*s++);}

Ungolfed:

i;
f(char*s,int n){
 do{
  while(*s==32)++s;
  putchar(*s);
  i=n;
  while(i--)
    putchar(32+rand()%95);
 }while(*s++);
}

ব্যবহার:

main(){
  char a[]="A   A A";
  f(a,3);
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.