বিবরণ
সিজার শিফট হ'ল একটি খুব সরল মনোফলাব্যাটিক সাইফার যেখানে প্রতিটি বর্ণ বর্ণমালার পরে একটি করে প্রতিস্থাপন করে। উদাহরণ:
Hello world! -> IFMMP XPSME!
( IBSLR, EGUFV!
প্রকৃত চ্যালেঞ্জের জন্য আউটপুট, এটি 1 দ্বারা স্থানান্তরিত করার একটি উদাহরণ ছিল)
আপনি দেখতে পাচ্ছেন, ব্যবধান এবং বিরামচিহ্নগুলি অপরিবর্তিত রয়েছে। যাইহোক, বার্তাটি অনুমান করা রোধ করতে, সমস্ত চিঠি মূলধন করা হয়। চিঠিগুলি আবার স্থানান্তরিত করে, বার্তাটি ডিক্রিফার্ড, সুবিধাজনক, তবে অন্য ব্যক্তিদের দ্বারা বোঝার পক্ষে সত্যই সহজ, যারা এই বার্তার অর্থ কী তা জানেন না বলে ধারণা করা হয়।
সুতরাং, আমরা সিজারকে তার সাইফারের একটি উন্নত রূপ ব্যবহার করে কিছুটা সহায়তা করব: স্ব-স্থানান্তরকারী সিজার শিফট !
চ্যালেঞ্জ
আপনার টাস্কটি এমন একটি প্রোগ্রাম বা ফাংশন লিখতে হয়, যা এনকাইফারকে একটি স্ট্রিং দেওয়া হয়, ইনপুটটির সাথে সম্পর্কিত এনক্রিপ্ট করা স্ট্রিংকে আউটপুট দেয়। উন্নত সিজার শিফট এর মতো কাজ করে:
1. Compute letter differences of all adjacent letters:
1.1. Letter difference is computed like this:
Position of 2nd letter in the alphabet
-Position of 1st letter in the alphabet
=======================================
Letter difference
1.2. Example input: Hello
H - e|e - l|l - l|l - o
7 - 5|5 - 12|12 - 12|12 - 15 Letter differences: 3; -7; 0; -3
=3| =-7| =0| =-3
2. Assign the letters continously a letter difference from the list,
starting at the second letter and inverting the differences:
2.1. 2nd letter: first difference, 3rd letter: second difference, etc.
2.2. The first letter is assigned a 1.
2.3. Example input: Hello with differences 3; -7; 0; -3
Letter || Value
=======||======
H || 1
E || -3
L || 7
L || 0
O || 3
3. Shift the letters by the value x they have been assigned:
3.1. In case of a positive x, the letter is shifted x letters to the right.
3.2. In case of a negative x, the letter is shifted |x| letters to the left.
3.3. In case of x = 0, the letter is not shifted.
3.4. If the shift would surpass the limits of the alphabet, it gets wrapped around
Example: Y + Shift of 2 --> A
3.5. Example input: See the table under 2.3.
|| || Shifted
Letter || Value || Letter
=======||=======||=========
H || 1 || I
E || -3 || B Program output:
L || 7 || S IBSLR
L || 0 || L
O || 3 || R
ফাঁকা স্থান এবং অন্যান্য বিশেষ চিহ্ন যেমন বিরামচিহ্নগুলি এই প্রক্রিয়াতে এড়িয়ে যায়। এটির গ্যারান্টিযুক্ত যে আপনার প্রোগ্রামকে কেবল একটি মুদ্রণযোগ্য ASCII অক্ষরযুক্ত একটি স্ট্রিং দেওয়া হবে। আপনার ফাংশন / প্রোগ্রামের আউটপুট অবশ্যই কেবলমাত্র বড় আকারের হওয়া উচিত।
এটি কোড-গল্ফ , সুতরাং স্ট্যান্ডার্ড লুফোলগুলি প্রয়োগ হয় এবং বাইটের মধ্যে সংক্ষিপ্ত উত্তরটি জিততে পারে!
ZEN
, উদাহরণস্বরূপ। Z
1 দ্বারা স্থানান্তরিত হয় ... A
? (পার্শ্ব নোট হিসাবে, 05AB1E উত্তরটি Z
রূপান্তরিত হয় A
)
RELIEF
এবং RELIES
একই ফলকে উভয় এনসিফারকে বোঝাতে চেয়েছিলেন SRSFAG
?
E
-3
?