এই বিড়াল বাগ আছে? সত্যি?


11

চ্যালেঞ্জ:

ইনপুট (দৃশ্যমান ASCII সীমার মধ্যে) এবং কয়েকটি পরিবর্তন সহ আউটপুট পড়ুন:

  1. ইনপুট 10 টি অক্ষরের এলোমেলোভাবে প্রতিটি সেট (50/50):
    • একটি অক্ষর * প্রতিস্থাপন করুন (এলোমেলোভাবে ASCII সীমার মধ্যে একটি এলোমেলো ** সহ) (প্রাক্তন lumberjackহয়ে যায় lumbeZjack)
    • অথবা একটি অক্ষর মুছে ফেলুন (উদাঃ lumberjackহয়ে যায় lmberjack)

* যদি সেটটি 10 ​​টিরও কম অক্ষরের হয় তবে আপনাকে এটিকে পরিবর্তন করতে হবে না, তবে আপনি এটি করতে পারেন।
** চরিত্রটি একটি ইনপুট হিসাবে একই হতে পারে, যতক্ষণ না এটি এলোমেলো হয়।

উদাহরণ:

ইনপুট: Go home cat! You're drunk!
আউটপুট: Go hom cat! YouLre drunk!
(কেবল উদাহরণ, যেহেতু আউটপুট এলোমেলো হতে পারে, তাই পরীক্ষার কেস হিসাবে ব্যবহার করবেন না)

নিয়মাবলী:


5
@ n4melyh4xor এছাড়াও আপনি স্যান্ডবক্সে ভবিষ্যতের চ্যালেঞ্জ পোস্ট করতে পারেন । সেখানে আপনি আপনার চ্যালেঞ্জ সম্পর্কে কিছু প্রতিক্রিয়া পাবেন।
রড

1
প্রতিস্থাপনের চরটি প্রতিস্থাপন করা চরের সমান হলে কী হবে?
ব্র্যাড গিলবার্ট

@ ব্র্যাডগিলবার্টবিলগিলস, আমি এতটা পিক না, ঠিক আছে।
n4melyh4xor


চরিত্রের সূচিটি কি প্রতিস্থাপন করতে হবে তা এলোমেলো হতে হবে?
ইয়াতসি

উত্তর:


4

পাইথ, 27 25 বাইট

VczTpXNOT?<JOr\ \ÞKC127JK

টেস্ট স্যুট এখানে উপলব্ধ।

2 বাইট ছাঁটাই করার জন্য মালটিসেনকে ধন্যবাদ ।

ব্যাখ্যা

VczTpXNOT?<JOr\ \ÞKC127JK    z autoinitalizes to input, T autoinitializes to 10 
 czT                         chop input into strings of length 10, returned as list of strings
V                            for each string N in this list:
            Or\ \Þ            randomly pick a char between ' ' (32) and 'Þ' (222)
           J                  and assign it to variable J
                  KC127       assign the DEL char to variable K
         ?<J      K           if J < K:
     XNOT              J       replace a random character in N with J
         ?<J      K           else:
     XNOT               K      replace a random character in N with K
    p                         print this string with no trailing newline

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


1
মোছার চর ব্যবহার করে দুর্দান্ত! একটি টিপ হ'ল
রেঞ্জটি স্ট্রিংতেও

@ মালটিসেন ধন্যবাদ! আমি আপনার মন্তব্য সম্পর্কে চিন্তাভাবনা করেছি তবে আমি স্থানটি বাঁচাতে কোথায় এটি ব্যবহার করতে পারি তা সম্পূর্ণ নিশ্চিত নই। OC\¾বাইটের সমান সংখ্যা O190এবং মুছে ফেলা কে কে নির্ধারণ করা কোনও স্থানই বাঁচায় না।
মাইক বুফার্দেসি

@ মালটিসেন তাই আমাকে কিছুটা সময় নিল তবে আমি বুঝতে পেরেছি আপনি কী বোঝাতে চেয়েছিলেন এবং আমি 2 বাইট ছেঁটেছি। আবার ধন্যবাদ!
মাইক বুফার্দেসি

3

*> <> , 44 46 52 50 বাইট

rl5(?voooo/!|Ou+1Ox:@=?~o~oooo!
ol5(?v" ":/
o;!?l<

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

এটি এলোমেলো অক্ষরের জন্য কাছাকাছি / উপরে স্থানের কোনও এসকিআই অক্ষর ব্যবহার করে। এটি সর্বদা 6th ষ্ঠ অক্ষরটি সম্পাদন করে, যদি না এটি স্ট্রিংয়ের শেষ হয় এবং স্ট্রিংটির দৈর্ঘ্য 10 এর একাধিক না হয় তবে এটি 6 তম সম্পাদনা করার পরিবর্তে 7 তম অক্ষর সরিয়ে ফেলার 50% সুযোগ রয়েছে।

ইনপুট

আইইইই স্ট্যান্ডার্ড ফর ফ্লোটিং-পয়েন্ট অ্যারিমেটিক (আইইইই 754) ইনস্টিটিউট অফ ইলেকট্রিকাল অ্যান্ড ইলেকট্রনিক্স ইঞ্জিনিয়ার্স (আইইইই) দ্বারা 1985 সালে প্রতিষ্ঠিত ভাসমান-পয়েন্ট গণনার জন্য প্রযুক্তিগত মান। স্ট্যান্ডার্ডটি বিভিন্ন ফ্লোটিং পয়েন্ট বাস্তবায়নে পাওয়া অনেক সমস্যার সমাধান করে যা তাদের নির্ভরযোগ্যভাবে এবং বহনযোগ্যভাবে ব্যবহার করা কঠিন করে তুলেছিল। অনেক হার্ডওয়্যার ফ্লোটিং পয়েন্ট ইউনিট এখন আইইইই 754 স্ট্যান্ডার্ড ব্যবহার করে।

আউটপুট

আইইই স্ট্যান্ডার্ডফ্লো ফ্ল্যাট $ ng- পয়েন্ট আইথমেটিক (EEE 754) আইএ টেকনিক্যাল স্ট্যান্ডার! ফ্লোয়ার জন্য! আইএনটি-পয়েন্ট! কমপুটটি # এন 1985 সালে ইনসিটিউট অফ লেেক্ট্রিকাল # এবং ইলেকট্রনিক্স ইঞ্জি! ইয়ার্স (আইইই%) দ্বারা প্রতিষ্ঠিত হয়েছিল। স্ট্যান্ড! এনডার্ড যুক্ত! সমস্যা # এটি পাওয়া যায়! ভাসমান মলদ ইমপ্লেন! মেন্টেশন "সেই পাগল # তারা আলাদা! আইলেট থেকে টু ইউ ট্রেনাবল # এবং পোর্ট! ব্লাই! অনেক! হার্ডওয়্যার ফোটিং পো # এনটি ইউনিট% ow ব্যবহার করুন! আইইইই 754" স্ট্যান্ডার্ড।

সম্পাদনা: এই উত্তরটি সম্ভবত দৃশ্যমান আসকি পরিসরে, সম্পাদনা ... স্থির নয় ...

Edit2: কি দেখে না একটা 50/50 একটি অক্ষর মুছে ফেলার জন্য সুযোগ, আবার সম্পাদনা করা প্রয়োজন ... আমি বিশ্বাস করি সবকিছু এখন অনুক্রম হল :)।


আরও একটি বিষয়, কেউ এলোমেলো চরিত্রের পরামর্শ দিয়েছেন তাই এখন এটি এলোমেলো।
n4melyh4xor

@ n4melyh4xor, এটাই আমি ছিলাম! এটা এলোমেলো :)।
redstarcoder

2

পার্ল 6 ,  78  67 বাইট

{[~] map {~S/.**{(^.chars).pick}<(./{(' '..'~').pick x Bool.pick}/},.comb(10)}
{[~] .comb(10)».&{~S/.**{10.rand}<(./{(' '..'~').pick x 2.rand}/}}

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

ব্যাখ্যা:

{
  [~]                  # reduce with string concatenation operator

  .comb(10)\           # take input and break it into chunks of up-to 10 chars

  ».\                 # on each of them call the following

  &{
    ~                  # Stringify the following

    S/                 # substituted
      .                # any char
        **             # repeated
           { 10.rand } # a random number of times

      <(               # ignore all of that

      .                # the char to be removed/replaced
    /{

      ( ' ' .. '~' ).pick  # choose a character
      x                    # string repeated
      2.rand               # zero or one times

    }/

  }
}


2

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

75-বাইট প্রতিটি গ্রুপের প্রথম চরিত্রে রূপান্তরটি প্রয়োগ করে এবং কেবলমাত্র 2 টি এলোমেলো অক্ষর থেকে বেছে নেয় যেমন জেলি উত্তরে (যা ওপি অনুমোদিত):

from random import*
f=lambda s:s and choice(['','a','b'])+s[1:10]+f(s[10:])

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

এটি একটি পুনরাবৃত্ত ফাংশন যা প্রতিটি পুনরাবৃত্তি, হয় কিছুই প্রিনড করে না 'a', বা 'b', এবং তারপরে নিজেকে কাটা প্রথম 10 টি অক্ষর দিয়ে কল করে। চূড়ান্ত পুনরাবৃত্তি সংক্ষিপ্ত সার্কিট s and(খালি স্ট্রিং মিথ্যা), অসীম পুনরাবৃত্তি এড়ানো।

সমস্ত পৃথক কলগুলির ফলাফলগুলি পরে কনকানটেটেড হয় এবং সেই প্রসঙ্গে ফিরে আসে যা ফাংশন বলে।

120 বাইট

অবশ্যই, এটি কিছুটা প্রতারণার মতো অনুভব করে, তাই এখানে সম্পূর্ণরূপে এলোমেলো একটি:

from random import*;r=randint
def f(S):a=S[:10];R=r(0,len(a)-1);print(end=a[:R]+chr(r(32,126))*r(0,1)+a[R+1:]);f(S[10:])

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


ওপি কোথায় উল্লেখ করেছে যে প্রতিস্থাপিত চরিত্রের সূচক 0 হতে পারে?
Yytsi

@ টুক্কাএক্স মন্তব্যগুলি বিশৃঙ্খলা এড়াতে অপসারণ করা হয়েছে, তবে জেলি উত্তরটি তাই করে, এবং ওপি বলেছিল যে এটি ঠিক আছে।
ফ্লিপট্যাক

1

জেলি , 15 14  13 বাইট 13 টি অক্ষর

2X
s⁵µ¢1¦ṫ¢µ€

TryItOnline!

সর্বশেষ 1-9 টির মতো খণ্ড থাকলে সেখানে প্রতি দশটি অক্ষরের প্রথমটি প্রতিস্থাপন বা অপসারণ করে। থেকে চয়ন করে বোঝা যাচ্ছে যে নেতারা ছোট, অক্ষরের উপসেট: 1; 2

কিভাবে?

2X         - Link 1, flip a coin: no arguments
 X         - random choice from
2          - 2 (treated as the integers [1,2])

s⁵µ¢1¦ṫ¢µ€ - Main link: string of printable ASCII
s⁵         - split (s) into chunks of size ten (⁵)
  µ     µ  - monadic chain separation 
         € - for each chunk
   ¢       -     last link as a nilad
    1¦     -     apply to index 1 (replace 1st of the 10 char chunk with the chosen integer)
       ¢   -     last link as a nilad
      ṫ    - tail - if it was 1 this has no effect (50%)
                  - if it was 2 this discards the replaced character (50%)
           - implicit print

21 টি বাইটে কেবল 1এবং 2(প্রতিটি খণ্ডের 1 ম চরিত্রটি প্রতিস্থাপন বা অপসারণের পরিবর্তে ) মুদ্রণযোগ্য সমস্ত ASCII থেকে চয়ন করতে :

s⁵µ32r126¤ỌX¤1¦ṫ2X¤µ€

একটি জন্য সম্পূর্ণরূপে র্যান্ডম সংস্করণ (50/50 সরান / প্রতিস্থাপিত, অভিন্ন র্যান্ডম মুদ্রণযোগ্য হওয়া ASCII, এবং প্রতিটি খণ্ড মধ্যে একটি অবিশেষ এলোপাথারি চরিত্র অবস্থান) আমি 30 বাইট (সম্ভবত অ অনুকূল) আছে:

95R+31ỌX;

s⁵µṙ⁵X¤©Ṗ2X¤Ŀṙ®C¤µ€

এটি প্রতিটি এলোমেলো পরিমাণ এলোমেলো পরিমাণে ঘোরে, শেষ চরিত্রটিকে পপ করে এবং তারপরে র্যান্ডমকে প্রথম দুটি লিঙ্কের মধ্যে একটি কল করে, যার একটি শূন্য এবং অন্যটি যা এলোমেলো মুদ্রণযোগ্য এএসসিআই অক্ষরের সাথে মিলিত হয়; এটি তখন আবার খণ্ডটি ঘোরান।


এটি সত্যই পোস্টের চেতনার বিরুদ্ধে চলেছে
মাল্টেসেন

@ মালটিসেন - ওপি বলেছেন যে এই সমস্ত জিনিস ঠিক আছে।
জোনাথন অ্যালান

কোথায়? আমি মন্তব্য বা ওপিতে কিছুই দেখতে পাচ্ছি না।
মালটিসেন

@ মালটিসেন তাদের সাফ করা হয়েছে।
জোনাথন অ্যালান

1
একটি মন্তব্য স্পষ্টভাবে বলেছিল যে আমরা 2 টি চরিত্র থেকে বেছে নিতে পারি এবং তারা এটিকে প্রশ্নবোধের শৃঙ্খলে রাখতে চান না।
জোনাথন অ্যালান

1

পাইথন 3, 188 186 184 114 টি অক্ষর

from random import*
s=input()
for c in[s[i:i+10]for i in range(0,len(s),10)]:print(end=choice(["","x","y"])+c[1:])

খুব দীর্ঘ মনে হচ্ছে। ল্যাম্বডা দিয়ে সম্ভবত অনেকগুলি ছোট করা যেতে পারে।

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

@ ফ্লিপট্যাক 5 টি বাইট সংরক্ষণ করেছে!


0

ক্লোজার, 135 139 বাইট

সম্পাদনা করুন: partition-allপরিবর্তে ব্যবহার করতে ভুলে গেছেন partition

(fn[i](apply str(flatten(map #(let[r rand-int [b e](split-at(r 9)%)][b(if(<(rand)0.5)""(char(+(r 25)97)))(rest e)])(partition-all 10 i)))))

Ungolfed:

(def f (fn[i]
         (->> i
              (partition-all 10)
              (map #(let [[begin end] (split-at (rand-int 9) %)]
                      [begin (if (< 0.5 (rand)) "" (char (+(rand-int 25)97))) (rest end)]))
              flatten
              (apply str))))

ম্যান names ফাংশনটির নামগুলি দীর্ঘ ... যাইহোক, এটি 10 ​​টি অক্ষরের পার্টিশনে ইনপুট বিভক্ত হয়, এলোমেলো বিন্দুতে তাদের দুটি ভাগে বিভক্ত করে, এলোমেলোভাবে একটি ফাঁকা স্ট্রিং বা এলোমেলো অক্ষরকে তাদের মধ্যে সংক্রামিত করে এবং দ্বিতীয়ার অর্ধেকের প্রথম অক্ষরটিকে ত্যাগ করে।


0

গণিত 133 বাইট (129 টি অক্ষর)

StringReplacePart[#,Table[If[(r=RandomInteger)[]<1,"",FromCharacterCode@r@128],c=⌊StringLength@#/10⌋],Array[{g=10#-9+r@9,g}&,c]]&

8 টি ফাংশনের নাম লিখতে 76 টি অক্ষর: /

5 অক্ষর, 1 বাইট সংরক্ষণের ⌊..⌋পরিবর্তে ব্যবহার করা Floor[]


0

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

def f(s):f=id(s)%9+1;print(''.join(j[0:f-1]+chr(33+id(s)%94)*(id(s)//10%2)+j[f:]for j in [s[i:i+10]for i in range(0,len(s),10)]))

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

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