পার্ল 69 বাইট
s;.;y/XVI60-9/CLXVIX/dfor$a[$_].="32e$&"%72726;gefor 1..100;print"@a"
যাদু সূত্র মাধ্যমে কাজ করে। অভিব্যক্তি "32e$&"%72726
নিম্নলিখিত পদ্ধতিতে প্রতিটি অঙ্ক রূপান্তরিত:
0⇒32, 1⇒320, 2⇒3200, 3⇒32000, 4⇒29096, 5⇒56, 6⇒560, 7⇒5600, 8⇒56000, 9⇒50918
অনুবাদ প্রয়োগের পরে y/016/IXV/
, আমাদের পরিবর্তে এটি রয়েছে:
0-32, 1⇒32 I , 2⇒32 II , 3⇒32 III , 4⇒29 I 9 V , 5⇒5 V , 6⇒5 VI , 7⇒5 VII , 8⇒5 অষ্টম , 9⇒5 আই 9 এক্স 8
বাকি অঙ্কগুলি ( 2-57-9
) সরিয়ে ফেলা হয়েছে। নোট যে এই একটি সূত্র অনুবাদ যা ব্যবহার করে এক বাইট দ্বারা উন্নত করা যেতে পারে 012
পরিবর্তে 016
, সরল /XVI60-9/
করার /XVI0-9/
। আমি একটি খুঁজে পেতে সক্ষম ছিল না, তবে সম্ভবত আপনার ভাগ্য ভাল হবে।
একবার এই অঙ্কে একটি ডিজিট রূপান্তরিত হয়ে গেলে, প্রক্রিয়াটি পরবর্তী অঙ্কের জন্য পুনরাবৃত্তি করে ফলাফল সংযোজন করে এবং পূর্ববর্তী XVI
গুলি CLX
একই সময়ে অনুবাদ করে নতুন অঙ্কের জন্য অনুবাদ ঘটে।
আপডেট
এক্সহসিউটিভ অনুসন্ধানের ফলে কিছু ছোট হয় নি। তবে আমি একটি বিকল্প 69 বাইট সমাধান খুঁজে পেয়েছি:
s;.;y/XVI0-9/CLXIXV/dfor$a[$_].="57e$&"%474976;gefor 1..100;print"@a"
এটির 0-2
জন্য একটি বিকল্প ব্যবহার করে IXV
তবে এর একটি মডুলো রয়েছে যা এক ডিজিট দীর্ঘ।
আপডেট: 66 65 বাইট
এই সংস্করণটি উল্লেখযোগ্যভাবে পৃথক, সুতরাং আমার এটি সম্পর্কে সম্ভবত কয়েকটি শব্দ বলা উচিত। সূত্র এটি ব্যবহার করে আসলে এক বাইট দীর্ঘ!
সূত্রটি তার চেয়ে আর সংক্ষিপ্ত করতে অক্ষম, আমি আমার যা ছিল তা গল্ফ করার সিদ্ধান্ত নিয়েছি। আমার পুরনো বন্ধুর কথা মনে না হওয়া পর্যন্ত খুব বেশিদিন হয়নি $\
। যখন কোনও print
স্টেটমেন্ট জারি $\
করা হয় তখন আউটপুট শেষে স্বয়ংক্রিয়ভাবে যুক্ত হয়। আমি $a[$_]
দুটি বাইট উন্নতির জন্য বিশ্রী নির্মাণ থেকে মুক্তি পেতে সক্ষম হয়েছি :
s;.;y/XVI60-9/CLXVIX/dfor$\.="32e$&"%72726;ge,$\=!print$"for 1..100
আরও ভাল, কিন্তু এটি $\=!print$"
এখনও কিছুটা ভারবস লাগছিল। আমি তখন একটি বিকল্প, সমান দৈর্ঘ্যের সূত্রটি মনে করেছিলাম যা 3
এর কোনও সংখ্যার রূপান্তরগুলিতে নম্বর ধারণ করে না । সুতরাং, $\=2+print
পরিবর্তে এটি ব্যবহার করা এবং ফলাফলটিকে 3
একটি স্থানের সাথে স্থান দেওয়া সম্ভব হবে:
s;.;y/XVI0-9/CLXIIX V/dfor$\.="8e$&"%61535;ge,$\=2+print for 1..100
এছাড়াও 67 বাইট, মধ্যে প্রয়োজনীয় হোয়াইটস্পেস কারণে print
এবং for
।
সম্পাদনা : print
সামনের দিকে সরানোর মাধ্যমে এটি একটি বাইট দ্বারা উন্নত করা যেতে পারে :
$\=2+print!s;.;y/XVI0-9/CLXIIX V/dfor$\.="8e$&"%61535;gefor 1..100
যেহেতু বিকল্পটির সম্পূর্ণরূপে মূল্যায়ন করা দরকার আগে print
, এর কার্যভারটি $\
এখনও শেষ পর্যন্ত থাকবে। এর মধ্যে শ্বেতস্পেস সরিয়ে ফেলা ge
এবং for
হ্রাসের সতর্কতা জারি করবে তবে তা অন্যথায় বৈধ।
কিন্তু, যদি সেখানে একটি সূত্র যা ব্যবহার করেননি ছিল 1
যে কোন স্থানে, $\=2+print
হয়ে $\=print
সঞ্চয় অন্য মূল্য দুই বাইট জন্য। এমনকি যদি এটি এক বাইট দীর্ঘ হয় তবে এটি এখনও উন্নতি হতে পারে।
দেখা যাচ্ছে যে এই জাতীয় সূত্রটি বিদ্যমান, তবে এটি মূল থেকে এক বাইট দীর্ঘ, ফলে final৫ বাইটের চূড়ান্ত স্কোর হবে :
$\=print!s;.;y/XVI60-9/CLXXI V/dfor$\.="37e$&"%97366;gefor 1..100
প্রণালী বিজ্ঞান
প্রশ্নটি জিজ্ঞাসা করা হয়েছিল যে কীভাবে কেউ এই জাতীয় সূত্রটি সন্ধান করতে পারেন। সাধারণভাবে, ডেটাগুলির কোনও সেটকে সাধারণীকরণের জন্য একটি যাদু ফর্মুলা সন্ধান করা সম্ভাবনার বিষয়। এটি হ'ল আপনি এমন একটি ফর্ম চয়ন করতে চান যা কাঙ্ক্ষিত ফলাফলের অনুরূপ কিছু উত্পাদন করার সম্ভাবনা রয়েছে।
প্রথম কয়েকটি রোমান সংখ্যার বহির্গমন:
0:
1: I
2: II
3: III
4: IV
5: V
6: VI
7: VII
8: VIII
9: IX
কিছু নিয়মিততা দেখতে হবে। বিশেষতঃ ০-৩ থেকে এবং তারপরে আবার 5-8 থেকে প্রতিটি ধারাবাহিক শব্দটি দৈর্ঘ্যে এক সংখ্যা দ্বারা বৃদ্ধি পায়। আমরা যদি সংখ্যাসমূহ করার ডিজিটের থেকে একটি ম্যাপিং তৈরী করতে চান, আমরা একটি অভিব্যক্তি আছে চাইবেন এছাড়াও প্রত্যেক ক্রমানুযায়ী মেয়াদে একটি ডিজিট দ্বারা দৈর্ঘ্য বৃদ্ধি পায়। একটি লজিক্যাল পছন্দটি k • 10 d যেখানে d একই অঙ্ক হয় এবং কে কোনও সংখ্যার ধ্রুবক।
এটি 0-3-র জন্য কাজ করে তবে 4 টি প্যাটার্নটি ভেঙে ফেলতে হবে। আমরা এখানে যা করতে পারি তা হল একটি মডুলো:
ক • 10 ডি % মি , যেখানে মিটার কোথাও কে • 10 3 এবং কে • 10 4 এর মধ্যে রয়েছে । এটি 0-3 রেঞ্জটি ছোঁয়া ছাড়বে এবং 4 টি এমন পরিবর্তন করবে যে এতে চারটি থাকবে না I
। আমরা অতিরিক্ত আমাদের অনুসন্ধানের অ্যালগোরিদমের যেমন যে এর মডুলার অবশিষ্টাংশ সীমাবদ্ধ তাহলে 5 , আসুন একে ডাকতে ঞ , কম মিঃ / 1000 , এই নিশ্চিত করবে যে আমরা থেকে নিয়মানুবর্তিতা আছে 5-8 পাশাপাশি। ফলাফলটি এরকম কিছু:
0: k
1: k0
2: k00
3: k000
4: ????
5: j
6: j0
7: j00
8: j000
9: ????
যেহেতু আপনি দেখতে পারেন, যদি আমরা প্রতিস্থাপন 0
সঙ্গে I
, 0-3 এবং 5-8 সব সঠিকভাবে ম্যাপ করা নিশ্চিত করা হয়! 4 এবং 9 এর মানগুলি অবশ্যই জোর করে জোর করা দরকার। বিশেষত, 4 টির মধ্যে একটি 0
এবং একটি j
(সেই ক্রমে) থাকা দরকার এবং 9 টিতে 0
একটিতে অন্য একটি সংখ্যা থাকা দরকার যা অন্য কোথাও প্রদর্শিত হবে না। অবশ্যই, আরও অনেকগুলি সূত্র রয়েছে, যা কাকতালীয়ভাবে কিছুটা ফলস দ্বারা কাঙ্ক্ষিত ফলাফল আনতে পারে। তাদের কিছু এমনকি সংক্ষিপ্ত হতে পারে। তবে আমি মনে করি না যে এর মধ্যে সফল হওয়ার সম্ভাবনা রয়েছে এমন কোনও আছে।
আমি I
এবং / বা V
কিছু সাফল্যের জন্য একাধিক প্রতিস্থাপনের সাথেও পরীক্ষা করেছিলাম । তবে হায়, আমার যা কিছু ছিল তার চেয়ে ছোট কিছুই নয়। আমি যে সংক্ষিপ্ততম সমাধানগুলির সন্ধান পেয়েছি তার একটি তালিকা এখানে রয়েছে (1-2 বাইটের চেয়ে বেশি ভারী সমাধানগুলির সংখ্যা তালিকাবদ্ধ করার জন্য অনেক বেশি):
y/XVI60-9/CLXVIX/dfor$\.="32e$&"%72726
y/XVI0-9/CLXIXV/dfor$\.="57e$&"%474976
y/XVI0-9/CLXIVXI/dfor$\.="49e$&"%87971
y/XVI0-9/CLXIIXIV/dfor$\.="7e$&"%10606 #
y/XVI0-9/CLXIIXIV/dfor$\.="7e$&"%15909 # These are all essentially the same
y/XVI0-9/CLXIIXIV/dfor$\.="7e$&"%31818 #
y/XVI0-9/CLXIIX V/dfor$\.="8e$&"%61535 # Doesn't contain 3 anywhere
y/XVI60-9/CLXXI V/dfor$\.="37e$&"%97366 # Doesn't contain 1 anywhere