ডাকাতদের পোস্টের জন্য, সস্তারো এনিগমা মেশিন ( ডাকাত )
একজন কপির জমা দেওয়াতে এমন একটি প্রোগ্রাম / ফাংশন থাকবে যা একক বাইট ডেটা গ্রহণ করে এবং একক বাইট উপাত্ত ফেরত দেয়। প্রতিটি সম্ভাব্য ইনপুট অবশ্যই একটি অনন্য আউটপুট উত্পাদন করতে হবে। (অন্য কথায়, আপনার ফাংশনটি অবশ্যই দ্বিপ্রদীপক হবে)
ডাকাতরা যতটা সম্ভব সংক্ষিপ্ত একটি কোড ব্যবহার করে আপনার বিপরীত কার্য তৈরি করার চেষ্টা করবে। সুতরাং আপনার উদ্দেশ্য হ'ল আপনার ফাংশনটিকে উল্টানো কঠিন করা।
আপনি বিল্ট-ইনগুলি ব্যবহার করতে পারবেন না যার একমাত্র উদ্দেশ্য হ্যাশিং বা এনক্রিপশন রয়েছে।
আপনার বাইট গণনাটি 64 বাইটের বেশি হতে পারে না। 0-বাইট সমাধানগুলি জয়ের যোগ্য নয়।
ইনপুট / আউটপুট ফর্ম্যাট
8 বিট (0 বা 1), বা 1-256, 0-255 বা -128 থেকে 127 রেঞ্জের একটি বেস -10 পূর্ণসংখ্যা standard স্ট্যান্ডার্ড I / O বা ফাইল I / O ব্যবহার করতে পারে। ফাংশন আউটপুট হিসাবে একটি মানও ফিরিয়ে দিতে পারে। ইনপুট এবং আউটপুট একই পরিসীমা (বাইনারি, 1-256, 0-255 বা -128 থেকে 127) এর অন্তর্ভুক্ত হওয়া উচিত। ডাকাতটিকে ইনপুট এবং আউটপুট দেওয়ার জন্যও এই ব্যাপ্তিটি ব্যবহার করতে হবে।
স্কোরিং
আপনার বাইটের অনুপাতটি আপনার বিরুদ্ধে সেরা ডাকাতদের প্রয়াসকে গণনা করে। সর্বনিম্ন স্কোর জয়।
কোনও ডাকাত যদি আপনাকে পরাজিত করার চেষ্টা করে থাকে তবেই আপনি জয়ের যোগ্য (একজন পুলিশ হিসাবে)। (এই ডাকাত আপনি হতে পারেন)
উদাহরণ
সি ++, 0-255 ব্যাপ্তি, 31 বাইট ব্যবহার করে
int x;
cin>>x;
cout<<(x+1)%256;
সি ++, 32 বাইটে সম্ভাব্য ডাকাত জমা দেওয়া
int f(int x)
{return x?x-1:255;}
একই ভাষা বা একটি অনুরূপ অ্যালগরিদম ব্যবহার করার প্রয়োজন নেই
এটি পুলিশ এবং ডাকাত উভয়কেই 31/32 = 0.97 এর স্কোর দেয়।