পরিচিতি:
আমার কাছে একটি ছাগলছানা হিসাবে একবার সঙ্কলিত একটি নথিতে আমার কাছে প্রচুর বিভিন্ন সাইফার সঞ্চিত আছে, আমি যেগুলি আমার মনে হয়েছিল সেগুলির মধ্যে কয়েকটি বেছে নিয়েছিলাম চ্যালেঞ্জগুলির জন্য সবচেয়ে উপযুক্ত (খুব তুচ্ছ নয়, খুব বেশি কঠিন নয়) এবং সেগুলি চ্যালেঞ্জগুলিতে রূপান্তরিত করে। তাদের বেশিরভাগ এখনও স্যান্ডবক্সে রয়েছে এবং আমি এখনও নিশ্চিত নই যে আমি তাদের সমস্ত পোস্ট করব, বা কেবল কয়েক জন। তবে এখানে প্রথম জিনিসগুলি শুরু করা উচিত।
একটি কম্পিউটার সাইফার প্রদত্ত পাঠ্যটিকে 'এলোমেলো' একটি প্রদত্ত চরিত্রের গ্রুপগুলিতে এনক্রিচার করবে length
। যদি এই জাতীয় গোষ্ঠীতে কোনও অঙ্ক থাকে তবে এটি সেই অঙ্কটি এনক্রিফড অক্ষরের জন্য তার নিজস্ব গোষ্ঠীতে সূচক করতে ব্যবহার করবে। গ্রুপে কোনও অঙ্ক উপস্থিত না থাকলে এর অর্থ প্রথম অক্ষর ব্যবহৃত হয় used
উদাহরণস্বরূপ, ধরা যাক আমরা this is a computer cipher
একটি নির্দিষ্ট দৈর্ঘ্যের সাথে পাঠ্যটি এনক্রিফার করতে চাই 5
। এটি একটি সম্ভাব্য আউটপুট (দ্রষ্টব্য: সংখ্যাগুলি নীচের উদাহরণে 1-সূচিযুক্ত):
t h i s i s a c o m p u t e r c i p h e r (without spaces of course, but added as clarification)
qu5dt hprit k3iqb osyw2 jii2o m5uzs akiwb hwpc4 eoo3j muxer z4lpc 4lsuw 2tsmp eirkr r3rsi b5nvc vid2o dmh5p hrptj oeh2l 4ngrv (without spaces of course, but added as clarification)
গ্রুপটি কীভাবে বোঝাবেন তা বোঝাতে উদাহরণ হিসাবে কয়েকটি গ্রুপ নেওয়া যাক:
qu5dt
এই দল অঙ্ক রয়েছে5
, তাই (1-সূচীবদ্ধ) এই দলের 5 ম চরিত্র পাঠোদ্ধার পাঠ্যের জন্য ব্যবহৃত চরিত্র:t
।hprit
এই গ্রুপ তাই এই গোষ্ঠী প্রথম অক্ষরটি পাঠোদ্ধার পাঠ্যের জন্য পরোক্ষভাবে ব্যবহার করা হয়, কোন ডিজিট রয়েছে:h
।osyw2
এই গ্রুপ একটি অঙ্ক রয়েছে2
, তাই (1-সূচীবদ্ধ) এই দলের 2nd চরিত্র পাঠোদ্ধার পাঠ্যের জন্য ব্যবহৃত চরিত্র:s
।
চ্যালেঞ্জ:
একটি পূর্ণসংখ্যা length
এবং স্ট্রিং দেওয়া হয়েছে, উপরে বর্ণিত হিসাবে word_to_encipher
একটি এলোমেলো এনকিফার্ড স্ট্রিং আউটপুট ।
আপনি শুধুমাত্র দেওয়া কেবলমাত্র চিহ্ন আছে length
এবং word_to_encipher
তাই হিসাবে ভাল একটি deciphering প্রোগ্রাম / ফাংশন তৈরি করার কোন প্রয়োজন। ভবিষ্যতে সিদ্ধান্ত গ্রহণের জন্য আমি পার্ট 2 চ্যালেঞ্জ করতে পারি।
চ্যালেঞ্জ নিয়ম:
- আপনি ধারনা করতে পারেন
length
পরিসীমা হবে[3,9]
। - আপনি ধরে নিতে পারেন
word_to_encipher
কেবলমাত্র অক্ষর থাকবে। - আপনি পুরো ছোট ছোট হাতের বা সম্পূর্ণ বড় হাতের অক্ষর ব্যবহার করতে পারেন (দয়া করে আপনার উত্তরটিতে কোনটি ব্যবহার করেছেন) তা উল্লেখ করুন।
- আপনার আউটপুটগুলি, প্রতিটি গ্রুপ এবং একটি গ্রুপে অঙ্কগুলির অবস্থানগুলি (উপস্থিত থাকলে) অভিন্নভাবে এলোমেলো হওয়া উচিত । সুতরাং বর্ণমালার সমস্ত এলোমেলো অক্ষরগুলির একই ঘটনার সম্ভাবনা রয়েছে; প্রতিটি গ্রুপে এনকিফার্ড চিঠির অবস্থানের একই সম্ভাবনা রয়েছে; এবং অঙ্কটির অবস্থানের একই ঘটনার সম্ভাবনা থাকে (কেবলমাত্র যখন এটি প্রথম অক্ষর এবং কোনও অঙ্ক উপস্থিত না থাকে; এবং সম্ভবত এটি এনকিফার্ড অক্ষরের মতো একই অবস্থানে থাকতে পারে না)।
- আপনাকে 1-ইনডেক্সের পরিবর্তে 0-সূচকযুক্ত অঙ্কগুলি ব্যবহার করার অনুমতি দেওয়া হয়। আপনি নিজের উত্তরে দু'জনের মধ্যে কোনটি ব্যবহার করেছেন দয়া করে তা জানান।
- অঙ্ক
1
(অথবা0
যখন 0-সূচীবদ্ধ) আউটপুটে উপস্থিত হতে হবে। সুতরাংb1ndh
'বি' অক্ষরটি এনক্রিফার করার জন্য কোনও বৈধ গ্রুপ নয়। যাইহোক,b4tbw
, বৈধ যেখানে4
enciphersb
4th দিকে (1-সূচীবদ্ধ) অবস্থান, এবং অন্যান্য অক্ষরেরb
,t
,w
র্যান্ডম হয় (যা কাকতালীয়ভাবে একটি রয়েছেb
)। অন্য সম্ভাব্য বৈধ গ্রুপlength
5 সঙ্কেতাক্ষরে লিখা চরিত্র 'খ' আছেন:abcd2
,ab2de
,babbk
,hue5b
, ইত্যাদি
সাধারণ নিয়ম:
- এটি কোড-গল্ফ , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার জন্য যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন। - আপনার উত্তরটির জন্য ডিফল্ট আই / ও বিধিগুলি সহ মানক বিধিগুলি প্রযোজ্য , সুতরাং আপনাকে সঠিক পরামিতি এবং ফিরতি-টাইপ, সম্পূর্ণ প্রোগ্রাম সহ STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
- ডিফল্ট লুফোলগুলি নিষিদ্ধ।
- যদি সম্ভব হয় তবে দয়া করে আপনার কোডের (যেমন টিআইও ) একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন ।
- এছাড়াও, আপনার উত্তরের জন্য একটি ব্যাখ্যা যুক্ত করা অত্যন্ত প্রস্তাবিত।
পরীক্ষার কেস:
Input:
Length: 5
Word to encipher: thisisacomputercipher
Possible output:
qu5dthpritk3iqbosyw2jii2om5uzsakiwbhwpc4eoo3jmuxerz4lpc4lsuw2tsmpeirkrr3rsib5nvcvid2odmh5phrptjoeh2l4ngrv
Input:
Length: 8
Word to encipher: test
Possible output:
ewetng4o6smptebyo6ontsrbtxten3qk
Input:
Length: 3
Word to encipher: three
Possible output:
tomv3h2rvege3le
abcd2
, ab2de
, babbk
সব একই? এছাড়াও b1akk
বৈধ?
b1akk
আমি কোন বলতে চাই। স্পষ্ট করার জন্য চ্যালেঞ্জ বিবরণে এটি সম্পাদনা করবে। প্রথম অক্ষরটি যদি এনক্লিফার্ড অক্ষর হয় তবে কোনও অঙ্ক উপস্থিত থাকতে হবে না।
"a??"
676 সম্ভব ফলাফল আছে, কিন্তু "1a?"
, "?a1"
, "2?a"
, "?2a"
রয়েছে only104 ফলাফল নেই। সুতরাং, যদি আমি এই 780 টি ফলাফল থেকে একটি ফলাফল বেছে নেওয়ার চেষ্টা করছি, তবে "এনকিফার্ড চিঠির অবস্থান" এর বিতরণ 13: 1: 1, 1: 1: 1 নয়। এবং আমি এটি "অভিন্ন র্যান্ডম" কাজ হিসাবে বিবেচনা করব।