এনগমা ক্র্যাকিং?


65

ভূমিকা

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

কোডেড বার্তার একটি উদাহরণ নিই:

BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ

একটি সাধারণ জার্মান শব্দ ছিল WETTERBERICHT, বা ইংরেজিতে আবহাওয়ার প্রতিবেদন। উপরোক্ত প্রিন্সিপালের সাথে, আমরা শব্দটি কোন স্থানে থাকতে পারে তা নির্ধারণ করতে পারি:

BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
         ^

এটি সম্ভব নয়, কারণ Iএটিকে নিজের কাছে এনক্রিপ্ট করা যায় না, তাই আমরা 1 জায়গায় চলেছি:

BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
 WETTERBERICHT
             ^

এটিও সম্ভব নয়, তাই আমরা আবারও অন্য একটি জায়গায় চলে যাই:

BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
  WETTERBERICHT
   ^

এটি আবার সম্ভব নয়। আসলে, প্রথম সম্ভাব্য ঘটনাটি WETTERBERICHTহ'ল:

BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
             WETTERBERICHT
0123456789012345678901234567890123456789012345678901234567890123
             ^
             13

সুতরাং, আমরা প্রথম সম্ভাব্য ঘটনাটির 0-সূচিযুক্ত অবস্থানটি ফিরিয়ে দেব, যা 13

কাজটি

  • একটি কোডেড বার্তা এবং একটি শব্দ দেওয়া, প্রথম সম্ভাব্য ঘটনাটির সূচকটি সন্ধান করুন ।
  • ধরে নিন যে কেবলমাত্র মূল বড় হাতের অক্ষরগুলি ব্যবহার করা হবে ( ABCDEFGHIJKLMNOPQRSTUVWXYZ)।
  • যদি কোনও ঘটনা খুঁজে পাওয়া যায় না, আপনি কোনও নেতিবাচক পূর্ণসংখ্যা, চরিত্র বা কিছুই (যেমন -1, X) আউটপুট করতে পারেন ।
  • আলাদা নিউলাইন, তালিকা বা অন্য যে কোনও কিছুতে ইনপুটটি আর্গুমেন্ট হিসাবে গ্রহণ করা যেতে পারে।
  • এটি , তাই সর্বনিম্ন পরিমাণ বাইটের সাথে জমাটি জয়!

পরীক্ষার মামলা

Input: BHGEFXWFTIUPITHHLPETTTCLOEWOELM, WETTERBERICHT
Output: 13

Input: ABCDEFGHIJKL, HELLO
Output: 0

Input: EEEEEEEEEEEE, HELLO
Output: -1

Input: XEEFSLBSELDJMADNADKDPSSPRNEBWIENPF, DEUTSCHLAND
Output: 11

Input: HKKH, JJJJJ
Output: -1

1
উম্ম, উদাহরণের মাঝখানে কেন এনকোডযুক্ত স্ট্রিং পরিবর্তন হয়?
ডুরকনব

36
@ ডুরকনব 冰 ¯ \ _ (ツ) _ / ¯
আদনান

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

3
নিজেই এনক্রিপ্ট করে জেলফির @ আমার অর্থ এই যে Eকখনই এর ফলশ্রুতিতে পরিণত হবে না E। এই পুরো চ্যালেঞ্জ সম্পর্কে যা হয়।
আদনান

উত্তর:


9

পাইথ, 14 বাইট

f!s.eqb@>zTkQ0

আমি নিশ্চিত না এটি ঠিক আছে কিনা তবে যদি ইনপুটটি অসম্ভব হয় তবে স্টাডাউটে কোনও কিছুই লেখা হয় না এবং স্টারডারে একটি শূন্য বিভাগ ত্রুটি লেখা হয়। 2 লাইনে ইনপুট নেয়, দ্বিতীয়টি চারপাশে উদ্ধৃতি দ্বারা বদ্ধ হয়।

ব্যাখ্যা:

               - autoassign z to first input
               - autoassign Q to second input
f            0 - The first value starting from 0 where the output is truthy
   .e       Q  - Enumerate over the second value
        >zT    - z[T:]
       @   k   - The kth item (number in enumeration)
      b        - The character in the enumeration
     q         - Are the two characters equal?
  s            - Sum the values
 !             - Invert them (want first where there isn't a collision)

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


55

জাভাস্ক্রিপ্ট, 40

(c,p)=>c.search(p.replace(/./g,"[^$&]"))

ব্যবহার করে replace, এই ফর্মের নিয়মিত বহিঃপ্রকাশের /[^H][^E][^L][^L][^O]/(যেমন, প্লেইনেক্সট ইনপুট জন্য HELLO) প্লেটেক্সট ইনপুটটি মানচিত্র করে এবং তারপরে searchসেই রেজেক্সের সাথে মেলে এমন সিফারেক্সটেক্সট স্ট্রিংয়ের প্রথম সূচীর জন্য পরীক্ষা করতে ব্যবহার করে। এই রেজেক্সের অর্থ "এমন একটি প্যাটার্ন যেখানে প্রথম অক্ষরটি নয় H, দ্বিতীয় অক্ষরটি নয় E, ইত্যাদি" "

$&replaceআউটপুট জন্য একটি বিশেষ ক্রম যা প্রথম replaceযুক্তি দ্বারা মিলিত মানের পরিবর্তিত হয় (এই ক্ষেত্রে, প্রতিটি একক অক্ষর মিলে যায় /./)।


16
ওহ, বাহ, এটি সত্যিই চতুর সমাধান!
ডুরকনব

2
আমি জানতাম না $&! আমার আজ কিছু শেখানোর জন্য ধন্যবাদ।
ETH প্রোডাকশনস

1
@ এথ প্রডাকশন আমাকে না, আজ অবধি! আমি $$' about সম্পর্কে এবং এই উত্তরটি অনুসন্ধানের প্রক্রিয়াতেও শিখেছি , যা "স্ট্রিংয়ের যে অংশটি মেলে
যাচাইয়ের

1
বাহ্ এটা অসাধারন! আমার আরও দস্তাবেজগুলি প্রায়শই পড়তে হবে;)
ETH প্রোডাকশনগুলি

43

ট্যুরিং মেশিন সিমুলেটর - 15660 বাইট (প্রতিযোগিতা না করা)

মেশিন কোড টিউর না করে এনিগমা চ্যালেঞ্জ থাকতে পারে না।

0 * * l 0
0 _ _ l ,
, _ , l 1
1 _ 0 r 2
2 * * r 2
2 , * r 3
3 * * r 3
3 , * r 4
4 * * r 4
4 _ * r 13
4 A a l a'                                                                                                                                                                                                        
4 B b l b'                                                                                                                                                                                                        
4 C c l c'                                                                                                                                                                                                        
4 D d l d'                                                                                                                                                                                                        
4 E e l e'                                                                                                                                                                                                        
4 F f l f'                                                                                                                                                                                                        
4 G g l g'                                                                                                                                                                                                        
4 H h l h'                                                                                                                                                                                                        
4 I i l i'                                                                                                                                                                                                        
4 J j l j'                                                                                                                                                                                                        
4 K k l k'                                                                                                                                                                                                        
4 L l l l'                                                                                                                                                                                                        
4 M m l m'                                                                                                                                                                                                        
4 N n l n'                                                                                                                                                                                                        
4 O o l o'                                                                                                                                                                                                        
4 P p l p'                                                                                                                                                                                                        
4 Q q l q'                                                                                                                                                                                                        
4 R r l r'                                                                                                                                                                                                        
4 S s l s'                                                                                                                                                                                                        
4 T t l t'                                                                                                                                                                                                        
4 U u l u'                                                                                                                                                                                                        
4 V v l v'                                                                                                                                                                                                        
4 W w l w'                                                                                                                                                                                                        
4 X x l x'                                                                                                                                                                                                        
4 Y y l y'                                                                                                                                                                                                        
4 Z z l z'
a' * * l a'
a' , * l a
b' * * l b'
b' , * l b
c' * * l c'
c' , * l c
d' * * l d'
d' , * l d
e' * * l e'
e' , * l e
f' * * l f'
f' , * l f
g' * * l g'
g' , * l g
h' * * l h'
h' , * l h
i' * * l i'
i' , * l i
j' * * l j'
j' , * l j
k' * * l k'
k' , * l k
l' * * l l'
l' , * l l
m' * * l m'
m' , * l m
n' * * l n'
n' , * l n
o' * * l o'
o' , * l o
p' * * l p'
p' , * l p
q' * * l q'
q' , * l q
r' * * l r'
r' , * l r
s' * * l s'
s' , * l s
t' * * l t'
t' , * l t
u' * * l u'
u' , * l u
v' * * l v'
v' , * l v
w' * * l w'
w' , * l w
x' * * l x'
x' , * l x
y' * * l y'
y' , * l y
z' * * l z'
z' , * l z

a * * l a
a _ * r A
a a * r A
a b * r A
a c * r A
a d * r A
a e * r A
a f * r A
a g * r A
a h * r A
a i * r A
a j * r A
a k * r A
a l * r A
a m * r A
a n * r A
a o * r A
a p * r A
a q * r A
a r * r A
a s * r A
a t * r A
a u * r A
a v * r A
a w * r A
a x * r A
a y * r A
a z * r A
b * * l b
b _ * r B
b a * r B
b b * r B
b c * r B
b d * r B
b e * r B
b f * r B
b g * r B
b h * r B
b i * r B
b j * r B
b k * r B
b l * r B
b m * r B
b n * r B
b o * r B
b p * r B
b q * r B
b r * r B
b s * r B
b t * r B
b u * r B
b v * r B
b w * r B
b x * r B
b y * r B
b z * r B
c * * l c
c _ * r C
c a * r C
c b * r C
c c * r C
c d * r C
c e * r C
c f * r C
c g * r C
c h * r C
c i * r C
c j * r C
c k * r C
c l * r C
c m * r C
c n * r C
c o * r C
c p * r C
c q * r C
c r * r C
c s * r C
c t * r C
c u * r C
c v * r C
c w * r C
c x * r C
c y * r C
c z * r C
d * * l d
d _ * r D
d a * r D
d b * r D
d c * r D
d d * r D
d e * r D
d f * r D
d g * r D
d h * r D
d i * r D
d j * r D
d k * r D
d l * r D
d m * r D
d n * r D
d o * r D
d p * r D
d q * r D
d r * r D
d s * r D
d t * r D
d u * r D
d v * r D
d w * r D
d x * r D
d y * r D
d z * r D
e * * l e
e _ * r E
e a * r E
e b * r E
e c * r E
e d * r E
e e * r E
e f * r E
e g * r E
e h * r E
e i * r E
e j * r E
e k * r E
e l * r E
e m * r E
e n * r E
e o * r E
e p * r E
e q * r E
e r * r E
e s * r E
e t * r E
e u * r E
e v * r E
e w * r E
e x * r E
e y * r E
e z * r E
f * * l f
f _ * r F
f a * r F
f b * r F
f c * r F
f d * r F
f e * r F
f f * r F
f g * r F
f h * r F
f i * r F
f j * r F
f k * r F
f l * r F
f m * r F
f n * r F
f o * r F
f p * r F
f q * r F
f r * r F
f s * r F
f t * r F
f u * r F
f v * r F
f w * r F
f x * r F
f y * r F
f z * r F
g * * l g
g _ * r G
g a * r G
g b * r G
g c * r G
g d * r G
g e * r G
g f * r G
g g * r G
g h * r G
g i * r G
g j * r G
g k * r G
g l * r G
g m * r G
g n * r G
g o * r G
g p * r G
g q * r G
g r * r G
g s * r G
g t * r G
g u * r G
g v * r G
g w * r G
g x * r G
g y * r G
g z * r G
h * * l h
h _ * r H
h a * r H
h b * r H
h c * r H
h d * r H
h e * r H
h f * r H
h g * r H
h h * r H
h i * r H
h j * r H
h k * r H
h l * r H
h m * r H
h n * r H
h o * r H
h p * r H
h q * r H
h r * r H
h s * r H
h t * r H
h u * r H
h v * r H
h w * r H
h x * r H
h y * r H
h z * r H
i * * l i
i _ * r I
i a * r I
i b * r I
i c * r I
i d * r I
i e * r I
i f * r I
i g * r I
i h * r I
i i * r I
i j * r I
i k * r I
i l * r I
i m * r I
i n * r I
i o * r I
i p * r I
i q * r I
i r * r I
i s * r I
i t * r I
i u * r I
i v * r I
i w * r I
i x * r I
i y * r I
i z * r I
j * * l j
j _ * r J
j a * r J
j b * r J
j c * r J
j d * r J
j e * r J
j f * r J
j g * r J
j h * r J
j i * r J
j j * r J
j k * r J
j l * r J
j m * r J
j n * r J
j o * r J
j p * r J
j q * r J
j r * r J
j s * r J
j t * r J
j u * r J
j v * r J
j w * r J
j x * r J
j y * r J
j z * r J
k * * l k
k _ * r K
k a * r K
k b * r K
k c * r K
k d * r K
k e * r K
k f * r K
k g * r K
k h * r K
k i * r K
k j * r K
k k * r K
k l * r K
k m * r K
k n * r K
k o * r K
k p * r K
k q * r K
k r * r K
k s * r K
k t * r K
k u * r K
k v * r K
k w * r K
k x * r K
k y * r K
k z * r K
l * * l l
l _ * r L
l a * r L
l b * r L
l c * r L
l d * r L
l e * r L
l f * r L
l g * r L
l h * r L
l i * r L
l j * r L
l k * r L
l l * r L
l m * r L
l n * r L
l o * r L
l p * r L
l q * r L
l r * r L
l s * r L
l t * r L
l u * r L
l v * r L
l w * r L
l x * r L
l y * r L
l z * r L
m * * l m
m _ * r M
m a * r M
m b * r M
m c * r M
m d * r M
m e * r M
m f * r M
m g * r M
m h * r M
m i * r M
m j * r M
m k * r M
m l * r M
m m * r M
m n * r M
m o * r M
m p * r M
m q * r M
m r * r M
m s * r M
m t * r M
m u * r M
m v * r M
m w * r M
m x * r M
m y * r M
m z * r M
n * * l n
n _ * r N
n a * r N
n b * r N
n c * r N
n d * r N
n e * r N
n f * r N
n g * r N
n h * r N
n i * r N
n j * r N
n k * r N
n l * r N
n m * r N
n n * r N
n o * r N
n p * r N
n q * r N
n r * r N
n s * r N
n t * r N
n u * r N
n v * r N
n w * r N
n x * r N
n y * r N
n z * r N
o * * l o
o _ * r O
o a * r O
o b * r O
o c * r O
o d * r O
o e * r O
o f * r O
o g * r O
o h * r O
o i * r O
o j * r O
o k * r O
o l * r O
o m * r O
o n * r O
o o * r O
o p * r O
o q * r O
o r * r O
o s * r O
o t * r O
o u * r O
o v * r O
o w * r O
o x * r O
o y * r O
o z * r O
p * * l p
p _ * r P
p a * r P
p b * r P
p c * r P
p d * r P
p e * r P
p f * r P
p g * r P
p h * r P
p i * r P
p j * r P
p k * r P
p l * r P
p m * r P
p n * r P
p o * r P
p p * r P
p q * r P
p r * r P
p s * r P
p t * r P
p u * r P
p v * r P
p w * r P
p x * r P
p y * r P
p z * r P
q * * l q
q _ * r Q
q a * r Q
q b * r Q
q c * r Q
q d * r Q
q e * r Q
q f * r Q
q g * r Q
q h * r Q
q i * r Q
q j * r Q
q k * r Q
q l * r Q
q m * r Q
q n * r Q
q o * r Q
q p * r Q
q q * r Q
q r * r Q
q s * r Q
q t * r Q
q u * r Q
q v * r Q
q w * r Q
q x * r Q
q y * r Q
q z * r Q
r * * l r
r _ * r R
r a * r R
r b * r R
r c * r R
r d * r R
r e * r R
r f * r R
r g * r R
r h * r R
r i * r R
r j * r R
r k * r R
r l * r R
r m * r R
r n * r R
r o * r R
r p * r R
r q * r R
r r * r R
r s * r R
r t * r R
r u * r R
r v * r R
r w * r R
r x * r R
r y * r R
r z * r R
s * * l s
s _ * r S
s a * r S
s b * r S
s c * r S
s d * r S
s e * r S
s f * r S
s g * r S
s h * r S
s i * r S
s j * r S
s k * r S
s l * r S
s m * r S
s n * r S
s o * r S
s p * r S
s q * r S
s r * r S
s s * r S
s t * r S
s u * r S
s v * r S
s w * r S
s x * r S
s y * r S
s z * r S
t * * l t
t _ * r T
t a * r T
t b * r T
t c * r T
t d * r T
t e * r T
t f * r T
t g * r T
t h * r T
t i * r T
t j * r T
t k * r T
t l * r T
t m * r T
t n * r T
t o * r T
t p * r T
t q * r T
t r * r T
t s * r T
t t * r T
t u * r T
t v * r T
t w * r T
t x * r T
t y * r T
t z * r T
u * * l u
u _ * r U
u a * r U
u b * r U
u c * r U
u d * r U
u e * r U
u f * r U
u g * r U
u h * r U
u i * r U
u j * r U
u k * r U
u l * r U
u m * r U
u n * r U
u o * r U
u p * r U
u q * r U
u r * r U
u s * r U
u t * r U
u u * r U
u v * r U
u w * r U
u x * r U
u y * r U
u z * r U
v * * l v
v _ * r V
v a * r V
v b * r V
v c * r V
v d * r V
v e * r V
v f * r V
v g * r V
v h * r V
v i * r V
v j * r V
v k * r V
v l * r V
v m * r V
v n * r V
v o * r V
v p * r V
v q * r V
v r * r V
v s * r V
v t * r V
v u * r V
v v * r V
v w * r V
v x * r V
v y * r V
v z * r V
w * * l w
w _ * r W
w a * r W
w b * r W
w c * r W
w d * r W
w e * r W
w f * r W
w g * r W
w h * r W
w i * r W
w j * r W
w k * r W
w l * r W
w m * r W
w n * r W
w o * r W
w p * r W
w q * r W
w r * r W
w s * r W
w t * r W
w u * r W
w v * r W
w w * r W
w x * r W
w y * r W
w z * r W
x * * l x
x _ * r X
x a * r X
x b * r X
x c * r X
x d * r X
x e * r X
x f * r X
x g * r X
x h * r X
x i * r X
x j * r X
x k * r X
x l * r X
x m * r X
x n * r X
x o * r X
x p * r X
x q * r X
x r * r X
x s * r X
x t * r X
x u * r X
x v * r X
x w * r X
x x * r X
x y * r X
x z * r X
y * * l y
y _ * r Y
y a * r Y
y b * r Y
y c * r Y
y d * r Y
y e * r Y
y f * r Y
y g * r Y
y h * r Y
y i * r Y
y j * r Y
y k * r Y
y l * r Y
y m * r Y
y n * r Y
y o * r Y
y p * r Y
y q * r Y
y r * r Y
y s * r Y
y t * r Y
y u * r Y
y v * r Y
y w * r Y
y x * r Y
y y * r Y
y z * r Y
z * * l z
z , * r Z
z a * r Z
z b * r Z
z c * r Z
z d * r Z
z e * r Z
z f * r Z
z g * r Z
z h * r Z
z i * r Z
z j * r Z
z k * r Z
z l * r Z
z m * r Z
z n * r Z
z o * r Z
z p * r Z
z q * r Z
z r * r Z
z s * r Z
z t * r Z
z u * r Z
z v * r Z
z w * r Z
z x * r Z
z y * r Z
z z * r Z
A * * * 5
A A * l 6
B * * * 5
B B * l 6
C * * * 5
C C * l 6
D * * * 5
D D * l 6
E * * * 5
E E * l 6
F * * * 5
F F * l 6
G * * * 5
G G * l 6
H * * * 5
H H * l 6
I * * * 5
I I * l 6
J * * * 5
J J * l 6
K * * * 5
K K * l 6
L * * * 5
L L * l 6
M * * * 5
M M * l 6
N * * * 5
N N * l 6
O * * * 5
O O * l 6
P * * * 5
P P * l 6
Q * * * 5
Q Q * l 6
R * * * 5
R R * l 6
S * * * 5
S S * l 6
T * * * 5
T T * l 6
U * * * 5
U U * l 6
V * * * 5
V V * l 6
W * * * 5
W W * l 6
X * * * 5
X X * l 6
Y * * * 5
Y Y * l 6
Z * * * 5
Z Z * l 6
5 , * r 15
5 A a r 7
5 B b r 7
5 C c r 7
5 D d r 7
5 E e r 7
5 F f r 7
5 G g r 7
5 H h r 7
5 I i r 7
5 J j r 7
5 K k r 7
5 L l r 7
5 M m r 7
5 N n r 7
5 O o r 7
5 P p r 7
5 Q q r 7
5 R r r 7
5 S s r 7
5 T t r 7
5 U u r 7
5 V v r 7
5 W w r 7
5 X x r 7
5 Y y r 7
5 Z z r 7
7 * * r 7
7 , * r 4
6 * * l 6
6 _ * r 8
8 * _ r 9
9 * * r 9
9 _ * l 10
9 a A r 9
9 b B r 9
9 c C r 9
9 d D r 9
9 e E r 9
9 f F r 9
9 g G r 9
9 h H r 9
9 i I r 9
9 j J r 9
9 k K r 9
9 l L r 9
9 m M r 9
9 n N r 9
9 o O r 9
9 p P r 9
9 q Q r 9
9 r R r 9
9 s S r 9
9 t T r 9
9 u U r 9
9 v V r 9
9 w W r 9
9 x X r 9
9 y Y r 9
9 z Z r 9
10 * * l 10
10 , * l 11
11 * * l 11
11 , * l 12
12 _ 1 r 2
12 0 1 r 2
12 1 2 r 2
12 2 3 r 2
12 3 4 r 2
12 4 5 r 2
12 5 6 r 2
12 6 7 r 2
12 7 8 r 2
12 8 9 r 2
12 9 0 l 12
13 * _ l 13
13 , _ l 14
14 * _ l 14
14 , _ l halt
15 * * r 15
15 _ * l 16
16 * _ l 16
16 , _ l 17
17 * _ l 17
17 , _ l 18
18 * _ l 18
18 _ x * halt

এখানে এটি পরীক্ষা করে দেখুন

সংক্ষিপ্ত:

  1. বাম দিকে একটি কাউন্টার সেট আপ করুন
  2. টার্গেটে প্রথম বড় হাতের অক্ষরটি সন্ধান করুন এবং এটিকে ছোট হাতের অক্ষরে তৈরি করুন। যদি সমস্ত অক্ষর ছোট হয় তবে পদক্ষেপ 5 এ যান।
  3. কোডে প্রথম বড় অক্ষর সন্ধান করুন। যদি সর্বাধিক সাম্প্রতিক চিঠিটি মেলে, তবে চতুর্থ ধাপে যান 4 অন্যথায় চিঠিটি ছোট হাতের অক্ষরে তৈরি করুন এবং দ্বিতীয় ধাপে ফিরে যান।
  4. বৃদ্ধি কাউন্টার, সমস্ত অক্ষর মূলধন করুন, কোড প্রথম অক্ষর মুছুন। ২ য় ধাপে ফিরে যান code যদি কোনও অক্ষর কোডে না থাকে, পরিষ্কার টেপ এবং প্রিন্ট x ফিরিয়ে দিন।
  5. সমস্ত টেপ সাফ করুন তবে পাল্টা।

এছাড়াও, পরীক্ষার সময়,
ইনপুটটির

এটি তৈরি করতে কতক্ষণ সময় লাগল?
আদনান

18
আমার বাড়ির কাজ শুরু করল 2:00। 2: 15 এ বিভ্রান্ত হয়েছে এটি 2.20 এ শুরু হয়েছিল। এটি 4:20 এ পোস্ট করা হয়েছে। প্রায় 2 ঘন্টা।
কোরিয়ানওয়ালগ্লাস

5
+1, পিপিসিজিএসে, এটির প্রশংসা করার জন্য প্রতিযোগিতা করার দরকার নেই!

9575 বাইট (এবং শিরোনামের বর্তমান বাইটকাউন্টটি মিথ্যা, এখানে বহিরাগত স্থান এবং কিছু অযথা দীর্ঘ রাষ্ট্রের নাম রয়েছে)।
এরিক আউটগল্ফার

8

এসডাব্লুআই-প্রোলগ, ১১৮ বাইট

a(S,W,R):-length(S,L),length(W,M),N is L-M,between(0,N,I),\+ (between(0,M,J),K is I+J,nth0(J,W,A),nth0(K,S,A)),R=I.

ব্যবহারের উদাহরণ: a(`ABCDEFGHIJKL`,`HELLO`,R).। এটি ব্যাকটিক্স সহ ঘোষিত অক্ষর কোড স্ট্রিংগুলি ব্যবহার করে। উত্তর একত্রিত হয় R। যদি কোনও মিল না পাওয়া যায় তবে এই ফলাফলগুলি আউটপুট হয় false.

ব্যাখ্যা:

a(S,W,R):-
    length(S,L),length(W,M),     
    N is L-M,
    between(0,N,I),             % I is successively unified with an integer between 0 
                                % and the last possible index of the coded message

    \+ (                        % This will only be true if what's inside the parentheses 
                                % cannot be proven to be true

        between(0,M,J),         % J is successively unified with an integer between 0 
                                % and the length of the desired word
        K is I+J,
        nth0(J,W,A),nth0(K,S,A) % Check if one letter is the same in both string at 
                                % the same index
    ),                          % If it the case, then it will be 'true' and thus 
                                % the predicate \+ will be false, meaning we need to
                                % backtrack to try a different value of I

    R=I.                        % If we get here it means it didn't find any matching 
                                % letter for this value of I, which is then the answer.

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


7

রুবি, 91 79 বাইট

->a,b{[*a.chars.each_cons(b.size)].index{|x|x.zip(b.chars).all?{|y|y.uniq==y}}}

তোমাকে অভিশাপ Enumeratorদাও! কেন আমাকে স্ট্রিং থেকে অ্যারেতে অ্যারেমে রূপান্তর করতে হবে অ্যারে এবং মূল্যবান বাইটগুলি নষ্ট করতে? > :(

->a,b{                  # define lambda
[*                      # convert to array...
  a.chars               # get enumerator from string
  .each_cons(b.size)    # each consecutive group of (b.size) letters
]
.index{|x|              # find index of...
  x.zip(b.chars)        # zip group with second input string
  .all?{|y|             # is the block true for every element?
    y.uniq==y           # uniqueify results in same array (no dups)
}}}

[*...]# To_a এর গোলফি বিকল্প হিসাবে ব্যবহার করা একটি দুর্দান্ত স্পর্শ।
ওয়েইন কনরাড

7

সিজেম, 17 16 বাইট

ll:A,ew{A.=:+!}#

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

বাইট সংরক্ষণের জন্য @ পিটারটেলরকে ধন্যবাদ।

ব্যাখ্যা:

ll:A,ew    e# Finds every slice in the coded message with the length of the word
{A.=:+     e# Compare the characters in each slice to the characters in the word, and add up the result. If the sum is zero, then the slice and the word have no characters in common.
!}#        e# Invert truthiness (0 -> 1, non-0 -> 0) Return index of first truthy value.

array block #আপনাকে একটি চরিত্র বাঁচাতে পারে:ll:A,ew{A.=:+!}#
পিটার টেলর

আশ্চর্যজনকভাবে সিজেএমকে প্রায় প্রতিটি কাজে গল্ফ করা যেতে পারে ...: -ও
পুরো

@ আগত আমি এটি বলব না যে এটি সত্যিই গলফ করছে, কারণ 17 বাইট আমার প্রথম চেষ্টা ছিল was মূল বৈশিষ্ট্যটি হ'ল ew(টুকরোগুলি তৈরি করুন), অন্য সমস্ত কিছু কেবল অনুসরণ করে।
জিওকাভেল

6

এমএটিএল , 27 বাইট

jYbZ)tnb!wlhYCw!=a~ftn?1)1-

উদাহরণ

>> matl jYbZ)tnb!wlhYCw!=a~ftn?1)1-
> EEEEEEEEEEEE, HELLO

>> matl jYbZ)tnb!wlhYCw!=a~ftn?1)1-
> XEEFSLBSELDJMADNADKDPSSPRNEBWIENPF, DEUTSCHLAND
11

ব্যাখ্যা

j           % input string
YbZ)        % split into two strings based on space. Trailing comma is not a problem
tnb!wlhYC   % arrange first string into sliding columns of the size of the second
w!=         % compare with transposed second string, element-wise with broadcast
a~          % detect columns where all values are 0 (meaning unequal characters)
f           % find indices of such columns
tn?         % if there's at least one such column
1)1-        % pick index of the first and subtract 1 for 0-based indexing

4

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

l=length
h i w s|l s<l w= -1|and$zipWith(/=)w s=i|1<2=h(i+1)w$tail s
h 0

ব্যবহার: h 0 "DEUTSCHLAND" "XEEFSLBSELDJMADNADKDPSSPRNEBWIENPF"-> 11

সরল পুনরাবৃত্তির পদ্ধতির: শব্দটি wস্ট্রিংয়ের শুরুতে স্থাপন করা যেতে পারে s, সূচী কাউন্টারটি ফেরত দিন i, অন্যথায় iবর্ধিত এবং লেজের সাথে পুনরাবৃত্তি করুন s-1দৈর্ঘ্যের sদৈর্ঘ্যের চেয়ে কম হলে থামুন এবং ফিরে আসুন w


4

পাইথন 2.7, 111 টি অক্ষর

সমস্ত প্রারম্ভিক অবস্থান (ক) এবং অক্ষরের কোনও মিলের (তালিকার বোধগম্যতা ব্যবহার করে) পরীক্ষা করে দেখুন। কিছু না পাওয়া গেলে (লুপ শেষের জন্য এবং কিছুই ফেরত পাওয়া যায় না) এটি "কিছুই নয়" (পাইথনের "NULL") ফিরিয়ে দেয় যা ডিফল্ট "কিছুই নয়"।

def d(c,s):
 for a in range(len(c)):
  if a not in [((c+s)[a+i:]).index(l)+a for i,l in enumerate(s)]:
   return a

পরীক্ষা স্যুট:

cases = {
         ("BHGEFXWFTIUPITHHLPETTTCLOEWOELM","WETTERBERICHT"):13,
         ("ABCDEFGHIJKL","HELLO"):0,
         ("EEEEEEEEEEEE","HELLO"):-1,
         ("XEEFSLBSELDJMADNADKDPSSPRNEBWIENPF","DEUTSCHLAND"):11
        }

for idx,(code,string) in enumerate(cases):
    output=d(code,string)
    print "Case: {}: d({:<35},{:<16}) gives: {}. Correct answer is: {}.".format(idx+1,code,string,output,cases[(code,string)])

আপনার কাছে আসলে 111 নয় 111 বাইট রয়েছে Here এখানে একটি 106-বাইট সংস্করণ রয়েছে:def d(c,s): for a in range(len(c)): if a not in[a+(c+s)[a+i:].index(l)for i,l in enumerate(s)]:return a
মুভ্যাটিকা

4

ব্র্যাচল্যাগ , 48 বাইট

[S:W]hlL,WlM,L-M=:0reI,'(0:MeJ+I=:SrmA,W:JmA),I.

এটি আমার প্রোলোগ উত্তরের সরাসরি অনুবাদ translation brachylog_main/2উত্পন্ন সম্পৃক্ত কোডেড স্ট্রিং প্রথমে ইনপুট হিসাবে দুটি চরিত্র কোড স্ট্রিং একটি তালিকা প্রত্যাশা অনুযায়ী এবং আউটপুট, যেমন যেমন সূচক ফেরৎ brachylog_main([`ABCDEFGHIJKL`,`HELLO`],R).

ব্যাখ্যা

[S:W]                                            § Unify the input with the list [S,W]

     hlL,WlM,                                    § L and M are the length of S and W

             L-M=:0reI,                          § Enumerate integers between 0 and the 
                                                 § last possible index

                       '(                   ),I. § Unify the output with the current 
                                                 § enumerated integer if what's inside the 
                                                 § parenthesis cannot be proven to be true

                         0:MeJ                   § Enumerate integers between 0 and the
                                                 § length of the word desired

                              +I=:SrmA,W:JmA     § Check if both strings contain at matching
                                                 § indexes the same letter (unified with A)

3

জাপট, 12 বাইট (অপ্রতিযোগিতামূলক)

UàVr'."[^$&]

আমি এই এক সঙ্গে কিছু সাহায্য প্রয়োজন।


উহহহ ... জাপা নেই .search? ফেসপালম
ইটিএইচ প্রোডাকশনগুলি

এটি এখন UàVr'."[^$&]12 এর জন্য করা যেতে পারে
ETH প্রোডাকশন

দুর্দান্ত, আমরা এখন জিতছি!
মামা ফান রোল

যেহেতু এই উত্তরটির সর্বশেষ সংশোধন প্রশ্নাবলীর কার্যকারিতা ব্যবহার করে যা পোস্ট পোস্ট করে, তাই আমি এটিকে প্রতিযোগিতামূলক হিসাবে চিহ্নিত করছি।
মেগো

ওহ সে সম্পর্কে ভুলে গেছেন: পি থ্যাঙ্কস!
মামা ফান রোল

2

পিএইচপি - 155 বাইট

<?php for($p=$argv[1],$q=$argv[2],$l=strlen($q),$i=0,$r=-1;$i<strlen($p)-$l;$i++)if(levenshtein($q,substr($p,$i,$l),2,1,2)==$l){$r=$i;break;}echo$r."\n";

সংরক্ষণ করুন crack.phpএবং কমান্ড লাইনে যুক্তি দিয়ে চালান run উদাহরণ:

$ php crack.php BHGEFXWFTIUPITHHLPETTTCLOEWOELM WETTERBERICHT
13

আপনি 25 বাইট সংরক্ষণ করতে পারেন এবং এটিকে 130 বাইটে নামিয়ে আনতে পারেন :for($r=-1;$i<strlen($p=$argv[1])-$l=strlen($q=$argv[2]);$i++)if(levenshtein($q,substr($p,$i,$l),2,1,2)==$l&&$r=$i)break;echo"$r↵";
সন্নিবেশকারী নাম এখানে

@ অন্তর্ভুক্তকারীর নাম এখানে - বাহ, এটি চিত্তাকর্ষক! এতটা যে আমি এটি ব্যবহার করে সঠিক অনুভব করব না! আমি ভেবেছিলাম যে আমি চালাক ব্যবহার করছি levenshtein, তবে সম্ভবত কোনও পুনরাবৃত্তির মধ্যে একটি সরল পুনরাবৃত্তি কম বাইটে এটি করতে পারে।

2

জাভাস্ক্রিপ্ট, 129 121 118 119 * 118 বাইট

(w,t){for(j=0;(x=t.length)<(y=w.length);t=' '+t,j++){for(a=i=0;++i<y;)w[i]==t[i]?a=1:a;if(!a)break}return x==y?-1:j}

wকোডেড বার্তা, tপরীক্ষার স্ট্রিং। এটি রেজিক্সগুলি ব্যবহার করে না, তবে কেবলমাত্র চিঠির মাধ্যমে চিঠির সাথে তুলনা করে পরীক্ষার স্ট্রিং (যেমন "WETTERBERICHT") এর আগে স্থান যুক্ত করে স্থানান্তর করে। সহজ এবং বিরক্তিকর।


* কোনও ম্যাচ সহ পরীক্ষার কেস কাজ করে না, এখন এটি কাজ করে


2

𝔼𝕊𝕄𝕚𝕟, 14 অক্ষর / 25 বাইট

îĊⱮ(í,↪`⁅⦃$}]`

Try it here (Firefox only).

এই ধারণাটির জন্য ক্যাপস থেকে @ অ্যাপসিলার্স।

ব্যাখ্যা

               // implicit: î = input1, í = input2
îĊ             // search for first occurrence of:
  Ɱ(í,↪`⁅⦃$}]` // regex created by wrapping each word in [^ and ] (negation matches)

যে এটাকে হ্রাস করেছে, এর কোন কারণ আছে কি?
মামা ফান রোল

2

টিস্ক্রিপ্ট, 14 বাইট 20

xc(yl#`[^${l}]

@ স্পিলারদের সাথে চালিত জাভাস্ক্রিপ্ট সমাধানের মতো

প্রতিযোগিতামূলক নয় কারণ এটি এই প্রতিযোগিতার পরে তৈরি বৈশিষ্ট্যগুলি ব্যবহার করে ।

ব্যাখ্যা

             // Implicit: x = 1st input, y = 2nd input
x            // First input
 c           // returns index of regex match
 yl#         // Loop through every char in `y`
    `[^${l}] // Replace template, ${l} because current char in `y`

না $&স্থানে কাজ করে না ${l}?
ইটিএইচ প্রোডাকশনগুলি

@ এথ প্রডাকশনগুলি এই ক্ষেত্রে নয় কারণ আমি প্রতিস্থাপনের পরিবর্তে একটি লুপ ব্যবহার করছি
ডাউনগোট

2

রুবি, 43 36 বাইট

সম্পাদনা: স্ট্রিং ইন্টারপোলেশন এর ভিতরে স্ট্রিং ইন্টারপোলেশন একটি রেইজেক্সের ভিতরে, ইয়েকস।

অলস দৃষ্টিভঙ্গি: শব্দটিকে একটি "নেতিবাচক" রেজেক্সে অনুবাদ করে - =~অপারেটর বাকী কাজটি করে।

->m,w{m=~/#{"[^#{w.chars*'][^'}]"}/}

টেস্ট:

f=->m,w{m=~/#{"[^#{w.chars*'][^'}]"}/}

require "minitest/autorun"

describe :f do
  it "works for the given test cases" do
    assert_equal 13, f["BHGEFXWFTIUPITHHLPETTTCLOEWOELM", "WETTERBERICHT"]
    assert_equal 0, f["ABCDEFGHIJKL", "HELLO"]
    assert_equal nil, f["EEEEEEEEEEEE", "HELLO"]
    assert_equal 11, f["XEEFSLBSELDJMADNADKDPSSPRNEBWIENPF", "DEUTSCHLAND"]
    assert_equal nil, f["HKKH", "JJJJJ"]
  end
end


2

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

ŒIgùDʒø€Ëà_}нk

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

Œ               # Get all substrings of the first (implicit) input
 Ig             # Get the length of the second input
   ù            # Only leave the substrings of that length
    D           # Duplicate the list of remaining substrings
     ʒ          # Filter the copy by:
      ø         #  Zip/transpose; swapping rows/columns the current substring with
                #  the second (implicit) input
       €Ë       #  Check for each if both characters are equal (1 if truthy; 0 if falsey)
         à      #  Get the maximum (basically equal to an `any` builtin)
               #  And invert the boolean (!= 1)
              # After the filter: only leave the first substring
             k  # And get its index in the duplicated list (-1 if none are found)
                # (which is output implicitly as result)

2
বাবু, এটি সম্পূর্ণরূপে @ এমিগানার উত্তর হওয়ার কথা ছিল;)। আমি এখানে এসে তাঁর প্রায় একটি নাম দিয়ে আদনান-প্রশ্নের উত্তর দিয়ে তাকে নিয়ে একটি রসিকতা করতে চাইছিলাম। +1 (আমি সত্যের পরে এই মন্তব্যটি পোস্ট করার পরে আপনি 4 বছর পরে সত্য উত্তর দিয়েছেন বলে লক্ষ্য করেছেন)
যাদু অক্টোপাস উরন

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


1

পার্ল, 38 + 1 = 39 বাইট

perl -E "$r=<>=~s!.![^$&]!gr;say@-if<>=~/$r/x" < input

যেখানে ইনপুট দেখতে দেখাচ্ছে:

WETTERBERICHT
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ

এটি জাভাস্ক্রিপ্ট হিসাবে একই ধারণা।


'এক্স' অপ্রয়োজনীয়
জায়েদ


1

ব্র্যাচল্যাগ (ভি 2), 16 বাইট

bʰ↙.Pz₁≠ᵐzhc~hP∧

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

ব্র্যাচল্যাগ সাধারণত কোনও কিছু সমাধান করা অসম্ভব যখন ব্যর্থ হয় তখন খুব ভাল।

এটি সেই সময়ের কোনও একটি নয়।

(একটি তালিকা হিসাবে ইনপুট নেয় [message, word]The শিরোনামটি খুব সুন্দরভাবে এগুলি মুদ্রণ করে তবে সফল সাফল্যের আউটপুট এটি সফল হলে কেবল একটি সংখ্যা)

                    The input
b                   with a number of letters removed from the beginning
 ʰ                  of its first element
  ↙.                where that number is the output
    P               is P
     z₁             which with its elements zipped, without cycling
       ≠ᵐ           contains no duplicate pairs
         z          and which zipped back
          h         has a first element
           c        which concatenated
            ~h      is the first element of
              P     P
               ∧    (which is not the output).

bʰ↙.Plᵐ≥₁∧Pz₁≠ᵐ∧ একই বাইট গণনা জন্য ঠিক পাশাপাশি কাজ করে বলে মনে হচ্ছে।


0

সি ++ (জিসিসি) , 160 153 150 বাইট

#include<map>
int f(std::string c,std::string w){int i=-1,k,e=1;while(e&&w.size()+i++<c.size())for(e=k=0;k<w.size();)e+=c[i+k]==w[k++];return e?-1:i;}

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


1
@ এসিলিংক্যাট: আপনি 157 বাইট করতে পারেন কোডটি দুটি টেস্টকেসের ক্ষেত্রে ব্যর্থ হয়েছে (যদিও আমার মূল হিসাবে)। আমি এটি আরও কয়েকটি অতিরিক্ত বাইটের জন্য স্থির করেছি।
মোভাটিকা

1
এছাড়াও, আপনার বাহ্যিক লুপের কে এর সূচনাটি আরও একটি বাগ প্রবর্তন করে, যেখানে প্রতিটি পুনরাবৃত্তির সাথে একটি কম চরিত্রের তুলনা করা হয়।
মোভাটিকা

দেখা যাচ্ছে, gotoসমস্ত বাগ ছাড়াই এবং ছাড়াই এটি আরও খাটো ...
মোভাটিকা

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