জিএনইউ সেড, 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 এর অবশিষ্ট গণনা করতে হবে। আমরা 111
s এর পরিবর্তে এটি করতে পারি 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
এটাই!