পিপ , 62 59 56 বাইট
55 বাইট কোডের, -S
পতাকা জন্য +1 ।
[sXbRA_AEv-_aM,b(Y^aWR_Xb/2s)MyRVsX,b.aYaXbJsxyRL2x]@Aa
নোট এই সমাধান ইনপুট সঙ্গে কাজ করে যে ÷
বিভাজন এবং *
, গুণ জন্য যদিও সেই অক্ষর ব্যবহার হওয়া ASCII অত্যাধুনিক আঁকা /
এবং x
যথাক্রমে। ওপি স্পষ্ট করে জানিয়েছে যে এটি ঠিক আছে। এটি অনলাইন চেষ্টা করুন!
কিভাবে?
এখানে আংশিক ব্যবধানযুক্ত এবং মন্তব্য করা সংস্করণ । নোট করুন a
এবং b
হ'ল যথাক্রমে কমান্ড-লাইন অর্গগুলি, অর্থাৎ অপারেটর এবং আকার। -S
পতাকা নিয়ন্ত্রণ কিভাবে তালিকা আউটপুট আছেন: এটি প্রথম নতুন লাইন উপর যোগদান করে, কিন্তু স্পেস কোন নেস্টেড তালিকা যোগদান করে।
[ Build a list of all possible figures:
sXbRA_AEv-_aM,b 0 - Multiplication
(Y^aWR_Xb/2s)My 1 - Addition
RVsX,b.a 2 - Division
YaXbJs 3 - Subtraction
x 4 - Empty
yRL2 5 - Equals
x 6 - Empty
] @ Aa Index, mod 7, with ASCII value of a
এবং এখানে পৃথক বিভাগগুলি রয়েছে:
গুণ
চিত্রের প্রতিটি সারির জন্য, আমরা ফাঁকের একটি স্ট্রিং উত্পন্ন করি এবং তারপরে তাদের দুটিকে ইনপুট চরিত্রের সাথে প্রতিস্থাপন করি। সারি জন্য i
, আমরা সূচকগুলিতে স্পেসগুলি প্রতিস্থাপন করতে চাই i
এবং b-1-i
; তবে মনে রাখবেন যে উত্তরোত্তরগুলি নেতিবাচক সূচকটি ব্যবহার করতে পারে -1-i
। (এটি এমনকি সংক্ষিপ্ত কারণ ভেরিয়েবলটি v
নেগাটি ভি ই 1 তে পূর্বনির্ধারিত )
sXbRA_AEv-_aM,b
M,b Map this function to range(b):
sXb Space, repeated b times
_ Function arg
AE (Implicitly) convert to list and append element...
v-_ -1 minus function arg
RA Replace the characters at those indices...
a ... with input character
The resulting list is output with one item per line
সংযোজন
থেকে কৌশল ব্যবহার করে আমার একটি ঠালা বর্গক্ষেত্র আঁকুন উত্তর, আমরা একটি ফাংশন যে একটি গোপন সংজ্ঞায়িত +
মধ্যে b/2
যুক্তি কপি এবং অক্ষর একটি তালিকা হিসেবে ফলাফল দেখায়। (পূর্ণসংখ্যা বিভাগটি //
প্রয়োজনীয় নয় কারণ স্ট্রিং পুনরাবৃত্তি অপারেটর X
স্বয়ংক্রিয়ভাবে পূর্ণসংখ্যায় ছাঁটাই হয়)) প্রথমে, আমরা এই ফাংশনটিকে একটি স্পেসে কল করি, দিচ্ছি [" ";" ";"+";" ";" "]
; তারপরে, আমরা সেই ফলাফলটিতে একই ফাংশনটি ম্যাপ করি, [" ";" ";"+";" ";" "]
বেশিরভাগ লাইনে কিন্তু ["+";"+";"+";"+";"+"]
কেন্দ্ররেখায়। এই নেস্টেড তালিকাটি আউটপুট হয় কারণ -S
পতাকাটির কারণে একটি সারিতে সমস্ত অক্ষরের মধ্যে ফাঁকা স্থান থাকে এবং সারিগুলির মধ্যে নিউলাইন থাকে।
(Y^aWR_Xb/2s)My
Anonymous function:
_Xb/2 Function arg, repeated b/2 times (implicitly rounded down)
aWR Wrap a in two copies of the above
^ Split resulting string into list of chars
Y Yank that function into y
( s) Apply function y to space
My Map y to that result
বিভাগ
প্রতিটি সারিতে ইনপুট চরিত্রের পরে b-1
এবং এর মধ্যে 0
ফাঁকা স্থান থাকে a
।
RVsX,b.a
,b Range(b)
sX Space, repeated that many times (works itemwise)
.a Concatenate a (itemwise)
RV Reverse (puts the larger number of spaces at the beginning)
Outputs newline-separated
বিয়োগ
ইনপুট চরিত্রের একটি পৃথক পৃথক সারিতে তৈরি করুন। পরে একটি অনুলিপি সংরক্ষণ করুন।
YaXbJs
aXb b copies of a
Js Join on space
Y Yank into y (overwrites the function from earlier, but we're done using it anyway)
This is a string, so it just gets output
সমান
বিয়োগের পদক্ষেপটি আমাদের যা প্রয়োজন তার অর্ধেক সঞ্চয় করে - y
এটি দ্বিগুণ করুন।
yRL2 (Implicitly) convert y to list and repeat it twice
Outputs newline-separated
ডামি x
মানগুলি মূল তালিকায় প্যাড করার জন্য রয়েছে যাতে প্রতিটি ইনপুট চরিত্রের জন্য মডিউলার ইনডেক্সিং একটি অনন্য সূচক দেয় +-*÷=
।
= 10
?