পরিচিতি:
আমার কাছে একটি ছাগলছানা হিসাবে একবার সংকলিত একটি নথিতে আমার কাছে প্রচুর বিভিন্ন সাইফার সঞ্চিত আছে, আমি যেগুলি আমার মনে হয়েছিল সেগুলির মধ্যে কয়েকটি বেছে নিয়েছিলাম চ্যালেঞ্জগুলির জন্য সবচেয়ে উপযুক্ত (খুব তুচ্ছ নয়, খুব বেশি কঠিন নয়) এবং সেগুলি চ্যালেঞ্জগুলিতে রূপান্তরিত করে। তাদের বেশিরভাগ এখনও স্যান্ডবক্সে রয়েছে এবং আমি এখনও নিশ্চিত নই যে আমি তাদের সমস্ত পোস্ট করব, বা কেবল কয়েকজন। এখানে দ্বিতীয়টি রয়েছে ( কম্পিউটার সাইফার আমি পোস্ট করা প্রথমটি ছিল)।
জন্য Trifid সাইফার বর্ণমালা (একটি শব্দ ব্যবহার না করে) (এবং অতিরিক্ত ওয়াইল্ডকার্ড) তিন 3 দ্বারা 3 টেবিল ভাগ করা হয়েছে:
table 1: table 2: table 3:
|1 2 3 |1 2 3 |1 2 3
-+----- -+----- -+-----
1|a b c 1|j k l 1|s t u
2|d e f 2|m n o 2|v w x
3|g h i 3|p q r 3|y z
একটি পাঠ্য যা আমরা এনকিফার করতে চাই তা হ'ল টেবিল-সারি-কলাম নম্বরগুলিতে এনকোড করা অক্ষর অনুসারে প্রথম অক্ষর। উদাহরণস্বরূপ, পাঠ্যটি this is a trifid cipher
হয়ে যায়:
t h i s i s a t r i f i d c i p h e r
table: 3 1 1 3 3 1 3 3 1 3 3 2 1 1 1 1 3 1 1 2 1 1 2
row: 1 3 3 1 3 3 1 3 1 3 1 3 3 2 3 2 3 1 3 3 3 2 3
column: 2 2 3 1 3 3 1 3 1 3 2 3 3 3 3 1 3 3 3 1 2 2 3
তারপরে আমরা উপরের টেবিলে একের পর এক সারিতে প্রতিটি জিনিসকে তিনটি দলে রেখেছি:
311 331 331 332 111 131 121 121 331 331 313 133 232 313 332 322 313 313 132 333 313 331 223
এবং এগুলি একই টেবিলগুলি ব্যবহার করে অক্ষরে ফিরে গেছে:
s y y z a g d d y y u i q u z w u u h u y o
একটি বিষয় লক্ষণীয়, ইনপুট-দৈর্ঘ্য 3 এর কপিরাইট হওয়া উচিত So সুতরাং যদি দৈর্ঘ্য 3 এর একাধিক হয় তবে আমরা ইনপুট-দৈর্ঘ্যকে একাধিক 3 না করে তৈরি করার জন্য এক বা দুটি ট্রেলিং স্পেস যুক্ত করব।
চ্যালেঞ্জ:
একটি স্ট্রিং দেওয়া sentence_to_encipher
হয়েছে, উপরে বর্ণিত হিসাবে এটি এনকিফার করুন।
আপনাকে কেবল প্রদত্ত এনক্রিফার করতে হবে sentence_to_encipher
, সুতরাং পাশাপাশি একটি ডিক্রিফিং প্রোগ্রাম / ফাংশন তৈরি করার দরকার নেই। ভবিষ্যতে ডিক্রিফারিংয়ের জন্য আমি একটি অংশ 2 চ্যালেঞ্জ করতে পারি (যদিও আমার মনে হয় এটি তুচ্ছ / এনসিফারিং প্রক্রিয়ার অনুরূপ)।
চ্যালেঞ্জ বিধি:
- আপনি ধরে নিতে পারেন যে
sentence_to_encipher
কেবলমাত্র অক্ষর এবং স্পেস থাকবে। - আপনি পুরো ছোট ছোট হাতের বা পুরো বড় হাতের অক্ষর ব্যবহার করতে পারেন (দয়া করে আপনার উত্তরটিতে কোনটি ব্যবহার করেছেন) তা উল্লেখ করুন।
- ইনপুট-দৈর্ঘ্য 3 হলে আর 3 এর একাধিক না হয়ে যাওয়ার জন্য আপনি এক বা দুটি ট্রেলিং স্পেস যুক্ত করতে বেছে নিতে পারেন।
- I / O নমনীয়। ইনপুট এবং আউটপুট উভয়ই স্ট্রিং, তালিকা / অ্যারে / অক্ষরের স্ট্রিম ইত্যাদি হতে পারে
সাধারণ নিয়ম:
- এটি কোড-গল্ফ , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার পক্ষে যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন। - আপনার উত্তরটির জন্য ডিফল্ট আই / ও বিধিগুলির সাথে মানক বিধিগুলি প্রযোজ্য , সুতরাং আপনাকে সঠিক পরামিতি এবং ফিরতি-টাইপ, সম্পূর্ণ প্রোগ্রাম সহ STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
- ডিফল্ট লুফোলগুলি নিষিদ্ধ।
- যদি সম্ভব হয় তবে আপনার কোডের (যেমন টিআইও ) একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন ।
- এছাড়াও, আপনার উত্তরের জন্য একটি ব্যাখ্যা যুক্ত করা অত্যন্ত প্রস্তাবিত।
পরীক্ষার কেস:
Input: "this is a trifid cipher"
Output: "syyzagddyyuiquzwuuh uyo"
Input: "test"
Output: "utbk"
Input: "output"
Possible outputs: "rrvgivx" (one space) or "rrzcc lr" (two spaces)
Input: "trifidcipher"
Possible output: "vabbuxlzz utr" (one space) or "vabbyzv rx ie " (two spaces)