জিএনইউ সেড, 236 বাইট
/^0/bV
:
s/\b9/;8/
s/\b8/;7/
s/\b7/;6/
s/\b6/;5/
s/\b5/;4/
s/\b4/;3/
s/\b3/;2/
s/\b2/;1/
s/\b1/;0/
s/\b0//
/[^;-]/s/;/&&&&&&&&&&/g
t
y/;/1/
:V
s/111/3/g
s/3\b/3:/
s/311/33!/
s/31/3+/
y/3/1/
tV
s/1/+/
y/1:/!0/
/-/{s/-//
y/+!/!+/
}
y/!/-/
এটি অনলাইন চেষ্টা করুন!
ব্যাখ্যা
কোডের প্রথম অর্ধেক (প্রথম লাইনটির কম) দশমিক দশমিকাকে অনারীতে অনুবাদ করে এবং সরাসরি " সেডে গল্ফ করার টিপস " থেকে আসে । তারপরে এটি একসাথে ভারসাম্যহীন ত্রৈমাসিকের এক ত্রিটিতে অনুবাদ করে যা আমি নিজেই উদাহরণ দিয়ে কাজ করে দেখাব।
চূড়ান্ত আউটপুট আগে, তিন ডিজিট -, 0এবং +দ্বারা প্রতিনিধিত্ব করা হয় !, :এবং +যথাক্রমে।
একটি আকর্ষণীয় ফলাফলের জন্য, আমরা শুরু করি -48, যা আনারিতে রূপান্তরিত হয়েছে ( -অক্ষত সহ)। প্রথম (ডান-সর্বাধিক) ট্রিট গণনা করতে, আমাদের 48 ÷ 3 এর অবশিষ্ট গণনা করতে হবে। আমরা 111s এর পরিবর্তে এটি করতে পারি 3:
-111111111111111111111111111111111111111111111111 │ s/111/3/g
# => -3333333333333333
48 ÷ 3 এর কোনও অবশিষ্ট নেই, সুতরাং কোনও 1গুলি নেই , এবং আমরা জানি আমাদের প্রথম ট্রিট :(0 এর জন্য), তাই আমরা এটি প্রতিস্থাপন করব:
-3333333333333333 │ s/3\b/3:/
# => -3333333333333333:
এখন আমাদের "আমাদের স্থান" রয়েছে, তাই আমরা জানি 3যে বাকিগুলি ত্রিশ স্থানটি উপস্থাপন করে। গণিতকে কাজ করে রাখতে আমাদের এগুলিকে 3 দিয়ে ভাগ করতে হবে, অর্থাত্ এগুলি এর সাথে প্রতিস্থাপন করতে হবে 1:
-3333333333333333: │ y/3/1/
# => -1111111111111111:
আসুন আমাদের গণিতটি ডাবল-চেক করুন: আমাদের 1111111111111111ত্রিশ জায়গায় 16 টি (অ্যানারি ) এবং এক জায়গায় শূন্য ( :) রয়েছে। এটি 3✕16 + 1✕0 = 48. এখন পর্যন্ত খুব ভাল।
এখন আমরা আবার শুরু। 111এর সাথে 3এস প্রতিস্থাপন করুন :
-1111111111111111: │ s/111/3/g
# => -333331:
এবার আমাদের বাকী অংশটি রয়েছে 1, সুতরাং আমরা +তিনটি জায়গায় রেখে বাকি 3গুলি এর সাথে প্রতিস্থাপন করব 1:
-333331: │ s/31/3+/; y/3/1/
# => -11111+:
স্যানিটি পরীক্ষার সময়: আমাদের 11111নাইনদের জায়গায় একটি 5 (অ্যানারি ), +ত্রিশ জায়গায় 1 ( ) এবং এক জায়গায় 0 ( :) রয়েছে: 9✕5 + 3✕1 + 1✕0 = 48. দুর্দান্ত! আবার আমরা 111এর সাথে 3এসগুলি প্রতিস্থাপন করব :
-11111+: │ s/111/3/g
# => -311+:
এবার আমাদের বাকী অংশটি (2 11)। এটি দুটি ট্রিট ( +!) নেয় , যার অর্থ আমাদের একটি বহন রয়েছে। দশমিক গাণিতিকের মতো, এর অর্থ আমরা ডানদিকের সংখ্যাটি নিয়েছি এবং বাকীটি কলামে বামে যুক্ত করব। আমাদের সিস্টেমে, এর অর্থ আমরা !নাইন স্থান রেখেছি এবং এর বামে আরও তিনটি যুক্ত করব, তারপরে 27 এর সমস্ত স্থানের প্রতিনিধিত্ব করতে সমস্ত 3গুলি এর সাথে প্রতিস্থাপন করুন 1:
-311+: │ s/311/33!/; y/3/1/
# => -11!+:
এখন আমাদের কাছে কোনও 3s অবশিষ্ট নেই, তাই আমরা বাকী যেকোন অখণ্ডিত অঙ্কগুলি তাদের সংশ্লিষ্ট ট্রিটগুলির সাথে প্রতিস্থাপন করতে পারি। দুটি ( 11) হ'ল +!:
-11!+: │ s/11/+!/
# => -+!!+:
আসল কোডে এটি দুটি ধাপে করা হয় s/1/+/এবং y/1:/!0/বাইটগুলি সংরক্ষণ করতে। দ্বিতীয় পদক্ষেপটি :s এর সাথে প্রতিস্থাপন করে 0, তাই এটি আসলে এটি করে:
-11!+: │ s/1/+/; y/1:/+0/
# => -+!!+0
এখন আমরা আমাদের নেতিবাচক নম্বর আছে কিনা তা পরীক্ষা করে দেখি। আমরা করি, সুতরাং আমাদের চিহ্নটি থেকে মুক্তি দিতে হবে এবং তারপরে প্রতিটি ট্রিট উল্টাতে হবে:
-+!!+0 │ /-/ { s/-//; y/+!/!+/; }
# => !++!0
অবশেষে, আমরা !এস এর সাথে -এস প্রতিস্থাপন করব :
!++!0 │ y/!/-/
# => -++-0
এটাই!