দুটি সংখ্যাকে গুণ করুন


21

ইনপুট: দুটি দশমিক পূর্ণসংখ্যা। এগুলিকে প্রোগ্রাম বা ফাংশন হিসাবে যুক্তি হিসাবে বা একটি তালিকা হিসাবে স্ট্যান্ডার্ড ইনপুট কোডে দেওয়া যেতে পারে।

আউটপুট: দশমিক পূর্ণসংখ্যা হিসাবে তাদের পণ্য। উদাহরণস্বরূপ, ইনপুট 5 16আউটপুট বাড়ে 80

বিধিনিষেধসমূহ: দয়া করে কোনও মানক ফাঁক নেই। এটি , সর্বনিম্ন পরিমাণ বাইট জয়ের উত্তর।

দ্রষ্টব্য: আমার আগের চ্যালেঞ্জ থেকে লেআউট চুরি হয়েছে, দুটি সংখ্যা যুক্ত করুন

পরীক্ষার কেস:

1 2   -> 2
4 5   -> 20
7 9   -> 63
-2 8  -> -16
8 -9  -> -72
-8 -9 -> 72
0 8   -> 0
0 -8  -> 0
8 0   -> 0
-8 0  -> 0
0 0   -> 0

বা সিএসভি হিসাবে:

a,b,c
1,2,2
4,5,20
7,9,63
-2,8,-16
8,-9,-72
-8,-9,72
0,8,0
0,-8,0
8,0,0
-8,0,0
0,0,0

লিডারবোর্ড


4
@ ফ্লিপট্যাক এটি ধরে নিচ্ছে যে সংযোজন এবং গুণগুলি যে কোনও ভাষায়ই সহজ, যা আমি জানি না এটি আসলে সত্য কিনা।
সময়সীকরণ করুন

16
"দুটি সংখ্যা যুক্ত করুন" চ্যালেঞ্জের অনুমতি দেওয়া কিন্তু এটি বন্ধ করে দেওয়া উচিত বলে আমি মনে করি না। যদিও এটি বেশিরভাগ প্রোগ্রামিং ভাষায় খুব তুচ্ছ, এটি এখনও একটি বৈধ চ্যালেঞ্জ। যদি এটি খুব বিস্তৃত হয়, তবে "দুটি সংখ্যা যুক্ত করুন" চ্যালেঞ্জটি অবশ্যই খুব বিস্তৃত হবে।
মেগো

32
যে কেউ তুচ্ছ চ্যালেঞ্জগুলিকে পছন্দ না করলে তাদের পরাভূত করতে পারেন তবে এটি একটি সম্পূর্ণ বৈধ এবং অনন্য বিষয় চ্যালেঞ্জ এবং এটি "খুব বিস্তৃত" কাছাকাছি কোথাও নেই (যদি কিছু হয় তবে আপনি একটি তুচ্ছ চ্যালেঞ্জকে খুব সংকীর্ণও বলতে পারেন)। আমি এটি আবার খুলছি। এটি বলেছে যে, যদি কেউ মনে করেন যে তুচ্ছ চ্যালেঞ্জগুলি তাদের বুদ্ধিমত্তার অবমাননা করে, আমি তাদেরকে এমন ভাষা খুঁজে বের করতে উত্সাহিত করি যা এই কাজকে কম তুচ্ছ করে তোলে।
মার্টিন ইন্ডার

16
ইউও পরবর্তী: দুটি সংখ্যা বিয়োগ করুন!
স্টেনবার্গ

7
@ওয়াত কোনও ব্যারেল-নীচে স্ক্র্যাপড ছাড়ছেন না, তাই না?
গ্যারেথ

উত্তর:


39

ব্র্যাচল্যাগ ভি 1, 05 এবি 1 ই, জে, কে, আন্ডারলোড, এমএটিএল, ফোর্থ, পিজনস্ক্রিপ্ট, স্ট্যাকড, ইম্পিলিটিড, জল্ফ, ক্লোজার, ব্রাইংলফ, 8 তম, কমন লিস্প, জুলিয়া, পাইট, অ্যাপলসিড, স্ট্যাক্স, রিয়েলটি, ডিসি 1 বাইট

*

আপনি এই উত্তরটি অন্যান্য ভাষাগুলি যুক্ত করতে সম্পাদনা করতে পারেন যার *জন্য একটি বৈধ উত্তর।


পলিগোট, 05 এ বি 1 ই এবং অন্যান্য 5 টি ভাষা পছন্দ করে।
ম্যাজিক অক্টোপাস উরান 9'17

13
আমি এটিতে আন্ডারলোড সম্পাদনা করেছি। এটিই সম্ভবত এই সবচেয়ে আকর্ষণীয়, কারণ Underload নেই না বিয়োগ, বিভাগ, বা উপরন্তু করছেন একটি 1 বাইট পদ্ধতি আছে।


এটি পাইথের ক্ষেত্রে বৈধ নয়। পাইথ এর মতো অন্তর্নিহিত ইনপুট নেয় না।
isaacg

জুলিয়া যুক্ত করা হয়েছে, যেমন*(5,16)
gggg 16'18

32

সি (জিসিসি), 13 বাইট

সমস্ত বাস্তবায়নে কাজ করে না , তবে এটি ঠিক আছে।

f(a,b){a*=b;}

টিআইওতে চেষ্টা করে দেখুন!


6
অপেক্ষা করুন, এই কি কোনওভাবে ফিরে আসার কথা a? আমি এটি পাই না ...
এরিক দি আউটগলফার

2
এটি কীভাবে কাজ করে তার একটি ব্যাখ্যা সহায়ক। ( aএকটি স্থানীয় স্ট্যাক ভেরিয়েবল f()- কেন এটির মান ফিরে আসে?)। +1, বিটিডব্লিউ - এবিআইয়ের খুব চালাক আপত্তি।
ডিজিটাল ট্রমা

6
@ এরিকথিউটগল্ফার returnকীওয়ার্ডটি ইআএক্স রেজিস্টারে তার যুক্তিটির শুল্কটি কেবল স্থান দেয়। এই ক্ষেত্রে, উত্পাদিত এক্সিকিউটেবল a*bসেই নিবন্ধের গণনা returnকরে , তাই কিছুই করে না।
ডেনিস


12
একবারে শীর্ষে সি দেখে খুব খুশি! আপনি কেবল f(a,b){a*=b;}অংশটি প্রতিস্থাপন করে 1##&এবং তারপরে ম্যাথমেটিকায় নিজের ভাষা পরিবর্তন করে প্রায় 9 বাইটগুলি শেভ করতে পারেন ।
অ্যালবার্ট রেনশওয়া

21

বিটনিক , 888 বাইট

k I
j k ZZZZX z
xw k C vp yQ KD xw z j k ZZZZX z
j k ZZZD z xw bZ ZX
k XX z qs xw vp xw xw vp xw vp vp vp k I Xj ZZD hd
xw yQ K k ZZZZX xo exx
qs yQ XA xw xw xw xw z xw bZ K
xw xw k I
j k ZZZZX z
xw k C vp yQ XA hd k I z j k ZZZZX z
j xw k A vp bZ ZX
k ZZZZX z qs xw vp xw xw vp xw vp vp vp k I Xj ZZD hd
xw yQ K k ZZZZX xo exx
qs yQ F k ZZZZK xo
vp
xw xw z qs xw bZ X xw k I z xw Xj K
qs xw bZ KA vp qs xw Xj C hd
qs z xw xw xw xw z qs
xw xw xw xw z qs k I qs k I z xw Xj ZC
qs bZ ZZZX qs xw yQ C hd xw
k I vp qs k I qs
xw Xj ZZC hd hd z Kz ZZD
k I z xw xw xw xw z qs k I qs k I Xj ZZZZF
z
xw xw z qs xw bZ X xw k I z xw Xj K
qs xw bZ KA vp qs xw Xj C hd
z qs xw
xw xw z qs xw bZ X xw k I z xw Xj K
qs xw bZ KA vp qs xw Xj C hd
z vp
xw xw z qs
xw xw z qs
k I qs
xw bZ ZZX k I z qs k I vp
xw k ZA z yQ ZA hd qs k I vp qs k I Xj ZZKD
qs xw Xj ZZK
hd qs xw Xj ZZZZ hd
k ZZZZKD vp xo xw Xj K

এটি অনলাইন চেষ্টা করুন!

আমি সি ইন্টারপ্রেটার ব্যবহার করছি কারণ টিআইও-তে পাইথন ইন্টারপ্রেটার বিরক্তিকরভাবে ঠিকানাটি কার্যকর করে যদি পিছনে ঝাঁপ দেওয়ার শর্তটি পূরণ না হয়। পাইথন ইন্টারপ্রেটারের পক্ষে একটি সহজ কাজ হ'ল ঠিকানাটি ডেকে আনার জন্য কিছু নপ প্যাড করা। আমি বিশ্বাস করি যে দুটিও সঠিক নয়:

                                   C       Python  My interpretation
IP after skiping N words           IP+N+1  IP+N+2  IP+N+2
IP after skiping back N words      IP-N    IP-N+1  IP-N+2
IP after not skiping N words       IP+2    IP+2    IP+2
IP after not skiping back N words  IP+2    IP+1    IP+2

ইনপুট দুটি লাইনগুলি অনুসরণ না করে একটি স্পেস দ্বারা পৃথক করা দুটি পূর্ণসংখ্যা হওয়া উচিত।

এই উত্তরটি সমস্ত পূর্ণসংখ্যার জন্য তত্ত্বে কাজ করে, যদি প্রতিটি কক্ষ 0 - 255 এর মধ্যে সীমাবদ্ধ না থেকে নির্বিচারে বড় মান সঞ্চয় করতে পারে But তবে এটি যদি A | + | B | উপচে পড়ে যায় > 22. এবং এটি খুব আস্তে চলতে থাকলে | এ | + | বি | > 6.. সুতরাং এমন অনেকগুলি কেস নেই যা আপনি প্রকৃতপক্ষে পরীক্ষা করতে পারেন এবং যদি এই ক্ষেত্রেগুলির সমাধানগুলি আরও খাটো হতে পারে।

ধারণাটি হল ত্রিভুজাকার সংখ্যা টি (এন) = এন (এন + 1) / 2 গুন করে 0 টির মান হ্রাস করে এবং সমস্ত মধ্যবর্তী মানগুলি সংযুক্ত করে। তারপরে আমরা উত্তর এ * বি = টি (এ + বি) - টি (এ) - টি (বি) পেতে পারি।

তবে সমস্ত 3 টি মান গণনা করা কঠিন। এটি প্রথমে টি (এ + বি) - এ গণনা করে এটি করে, পরে এটিকে যুক্ত করার জন্য স্টকের মধ্যে এ-এর একটি অনুলিপি রেখে, এবং ইনপুট বি ব্যবহার করে, তারপরে পুনরাবৃত্তভাবে সবচেয়ে বড় ত্রিভুজাকার সংখ্যাটি খুঁজে পাবে যা টি ( এ + বি -১) শূন্যের বিশেষ ক্ষেত্রে বাদে। আমরা বি = টি (এ + বি) - এ - টি (এ + বি -1) এবং সেখান থেকে টি (বি) গণনা করতে পারি।

একটি সংখ্যা এন একটি ত্রিভুজাকৃতির সংখ্যা যদি এটি N এর চেয়ে বৃহত্তর ত্রিভুজাকার সংখ্যার সমান হয়, প্লাস N এর চেয়ে ছোট অ-নেতিবাচক ত্রিভুজাকার সংখ্যার সংখ্যা এটি ও (2 ^ (T (A + B) -A) তে সঞ্চালিত হয়) এবং প্রোগ্রামের সবচেয়ে ধীর অংশ।

k I                                         Push 1
j k ZZZZKAAA z                              Input and decrement by 48.
xw k AAA vp yQ (input_a_loop)               If the character was '-':
xw z j k ZZZZKAAA z                           Replace with 0 and input another.
input_a_loop:
j k ZZZAA z xw bZ (input_a_end)             Input and break if it is a space.
k ZKA z qs xw vp xw xw vp xw vp vp vp       Otherwise multiply the previous
                                              value by 10 and add.
k I Xj (input_a_loop)                       Continue the loop.
input_a_end: hd                             Discard the space.
xw yQ (check_sign) k ZZZZKAAA xo exx        If A=0, print 0 and exit.
                                            Stack: ?, A_is_positive, A
check_sign:
qs yQ (check_sign_else)                     If A is positive... or not,
xw xw xw xw z xw bZ (check_sign_end)          in either cases, push 2 copies
check_sign_else: xw xw k I                    of A and the negated flag back
check_sign_end:                               as a constant.
                                            Stack: A, A, A, A_is_negative
j k ZZZZKAAA z                              Similar for B.
xw k AAA vp yQ (input_b_loop)               If the character was '-':
hd k I z j k ZZZZKAAA z                       Decrement the flag and input another.
input_b_loop:
j xw k A vp bZ (input_b_end)                EOF is checked instead of a space.
k ZZZZKAAA z qs xw vp xw xw vp xw vp vp vp
k I Xj (input_b_loop)
input_b_end: hd
xw yQ (output_sign) k ZZZZKAAA xo exx       If B=0, print 0 and exit.
                                            Stack: A, A, A, A*B_is_negative, B
output_sign:
qs yQ (output_sign_end) k ZZZZK xo          If negative, output '-'.
output_sign_end:

vp                                          Add.        Stack: A, A, A+B
xw xw z qs                                  Insert a 0. Stack: A, A, 0, A+B.
xw bZ { xw k I z xw Xj }                    Copy and decrement while nonzero.
                                            Stack: A, A, 0, A+B, A+B-1, ..., 0
qs xw bZ { vp qs xw Xj } hd                 Add while the second value in the
                                              stack is nonzero.
                                            Stack: A, A, T(A+B)
qs z xw xw xw xw z qs                       Stack: A, C0=T(A+B)-A, C0, F0=0, C0

expand_loop:
xw xw xw xw z qs k I qs                     Stack: A, C0, C0, F0=0,
                                              ..., [P=C, P, S=0, F=1], C
dec_expand: k I z xw Xj (expand_loop)       Decrement and continue if nonzero.
                                            Stack: [P=1, P, S, F], C=0
                                            The last number 0 is assumed to
                                              be a triangular number.
test: qs bZ (extract_end)                   If F=0, break.
qs xw yQ (test_not_first) hd xw             If S=0, it's the first triangular
                                              number below previous C. Set S=C.
test_not_first: k I vp qs k I qs            S+=1 and restore F=1.
xw Xj (dec_expand)                          If C!=0, recursively expand from C-1.
hd hd z Kz (test)                           If S=P, P is a triangular number,
                                              return to the previous level.
k I z xw xw xw xw z qs k I qs               Otherwise, decrement P and try again.
k I Xj (dec_expand)
extract_end:                                Stack: A, C0, C0, T(A+B-1)

z                                           Subtract and get B.
xw xw z qs xw bZ { xw k I z xw Xj }         Computes T(B).
qs xw bZ { vp qs xw Xj } hd
                                            Stack: A, C0, T(B)
z qs xw                                     Stack: C0-T(B), A, A

xw xw z qs xw bZ { xw k I z xw Xj }         Computes T(A).
qs xw bZ { vp qs xw Xj } hd
z vp                                        Get A*B=(C0-T(B))+(A-T(A))
xw xw z qs                                  Stack: 0, X=A*B

divide: xw xw z qs                          Stack: 0, ..., Y=0, X
subtract: k I qs                            Stack: 0, ..., Y, Z=1, X
xw bZ {                                     While X!=0:
k I z qs k I vp                               X-=1, Z+=1.
xw k ZA z yQ (not_ten)                        But if Z=11:
hd qs k I vp qs k I Xj (subtract)               Y+=1, reset Z and restart the loop.
not_ten: qs xw Xj }
hd qs xw Xj (divide)                        Put Z under Y and make Y the new X,
                                              continue the loop if X!=0.
hd                                          Discard X.

print_loop:
k ZZZZKAA vp xo xw Xj (print_loop)          Add each cell by 47 and print.

ওহো। শুধু ... ওহ! আমি অনুগ্রহ রেখেছি, আপনি এটি 7 দিনের মধ্যে পেয়ে যাবেন।
নিডজেজেকোব

19

গণিত, 4 বাইট

1##&

উদাহরণ ব্যবহার: 1##&[7,9]আয় 63। প্রকৃতপক্ষে, এই একই ফাংশনটি কোনও ধরণের আর্গুমেন্টের এক সাথে একত্রে গুণিত করে।

ম্যাথামেটিক কোডগল্ফাররা যেমন জানেন, এটি কাজ করে কারণ ##কোনও ফাংশনে আর্গুমেন্টের পুরো অনুক্রমকে বোঝায় এবং ম্যাথেমেটিকায় (প্রায়শই) উপবৃত্তিটি গুণকে উপস্থাপন করে; সুতরাং 1##(1 বার) ফাংশনের সমস্ত আর্গুমেন্টের পণ্য বোঝায়। &ঠিক ছোট Functionকমান্ড একটি বিশুদ্ধ (নামবিহীন) ফাংশন সংজ্ঞায়িত যে।

অন্যান্য কোডের অভ্যন্তরে, সাধারণ চিহ্নটি *গুণক হিসাবে কাজ করে। একটি স্পেসও তাই, যাতে এটি 7 9ব্যাখ্যা করা হয় 7*9(প্রকৃতপক্ষে, গণিতের বর্তমান আরপিএল সংস্করণটি প্রকৃতপক্ষে গুণাগুলির চিহ্ন হিসাবে এমন স্পেসগুলি প্রদর্শন করে!) আরও ভাল, যদিও, যদি ম্যাথমেটিকা ​​বলতে পারে যে কোথায় একটি টোকেন শুরু হয় এবং অন্যটি শেষ হয়, তবে কোনও গুণক অপারেটরের জন্য কোনও বাইটের দরকার নেই: 5yস্বয়ংক্রিয়ভাবে হিসাবে 5*yএবং 3.14Log[9]হিসাবে ব্যাখ্যা করা হয় 3.14*Log[9]


কী ##&অবৈধ করে তোলে ?
লিন

##&একাধিক যুক্তি গ্রহণকারী অন্যান্য ফাংশনগুলিতে প্লাগ করার জন্য উপযুক্ত - এটি 'সিকোয়েন্স' অবজেক্ট হিসাবে তার আর্গুমেন্টগুলির তালিকা প্রদান করে। এই প্রসঙ্গে, ##&তার যুক্তিগুলির তালিকাতে কিছু করবেন না; আমরা চাই যে তালিকাটি একসাথে বহুগুণিত হোক।
গ্রেগ মার্টিন

19

রেটিনা , 38 37 31 বাইট

সম্পূর্ণ নতুন পন্থা, পুরানো নীচে।

M!`-
*\)`-¶-

.* 
$*_
_
$'$*_
_

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

প্রথমত, আমরা সাইনটি মোকাবেলা করি:

M!`-

-স্ট্রিংয়ের সাথে সব মিলিয়ে নতুন লাইনের মাধ্যমে পৃথক করে দেয়

*\)`-¶-

(নিম্নলিখিত খালি রেখার সাথে) এর
*\)অর্থ হল এর ফলাফল এবং পূর্ববর্তী স্তরগুলি একটি নতুন লাইন ছাড়াই মুদ্রণ করা উচিত এবং তারপরে স্ট্রিংটি এর আগে যা ছিল (ইনপুট স্ট্রিং) re বাকি অংশটি -একটি নতুন লাইনের দ্বারা পৃথক দুটি সরান।

তারপরে আমরা প্রথম সংখ্যাটিকে অ্যানারিতে রূপান্তর করি:

.* 
$*_

(প্রথম লাইনের শেষে একটি জায়গা রয়েছে)। আমরা _এক্ষেত্রে আমাদের অযৌক্তিক অঙ্ক হিসাবে ব্যবহার করি কারণ স্ট্যান্ডার্ড ডিজিটটি 1দ্বিতীয় সংখ্যায় উপস্থিত হতে পারে এবং এটি পরে বিরোধে লিপ্ত হয়।

এখন আমরা আসল গুণে পৌঁছেছি:

_
$'$*_

প্রত্যেকে _তার অনুসরণীয় সমস্ত কিছুর অবিচ্ছিন্ন উপস্থাপনা দ্বারা প্রতিস্থাপিত হয় (এখনও _অ্যানারি অঙ্ক হিসাবে ব্যবহার করে )। যেহেতু অ্যানারিতে রূপান্তর অ-অঙ্কের অক্ষরগুলিকে উপেক্ষা করে, তাই এটি "প্রথম সংখ্যা" বারের জন্য দ্বিতীয় সংখ্যার অবিচ্ছিন্ন উপস্থাপনাটির পুনরাবৃত্তি করবে। দ্বিতীয় সংখ্যাটি স্ট্রিংয়ের শেষে দশমিক উপস্থাপনায় থাকবে।

শেষ পর্যন্ত, একটি একক দিয়ে _আমরা _স্ট্রিংয়ের সংখ্যাটি ফিরিয়ে দেব, যা গুণকের ফলাফল হবে।


পূর্ববর্তী উত্তর: (সতর্কতা: আউটপুট হওয়া উচিত একটি খালি স্ট্রিং আউটপুট দেয় 0)

রেটিনা ,  45  42 41 বাইট

চল একটা খেলা খেলি! কোনও গাণিতিক অপারেটর নেই এবং কেবল প্রাকৃতিক সংখ্যার জন্য সীমাবদ্ধ সমর্থন নেই এমন একটি ভাষার সাথে তুলনামূলকভাবে সংখ্যাগুলি গুণ করুন ... মজার শোনায় :)

O^`^|-
--

\d+
$*
1(?=1* (1*))?
$1
1+
$.&

ব্যাখ্যা

প্রথম তিনটি লাইন সাইন নিয়ে কাজ করে:

O^`^|-

এই ধরণের Oএবং তারপরে বিপরীত^ মিলে থাকা সমস্ত স্ট্রিংগুলি উল্টে দেয় ^|-। অনুশীলনে এটি শুরুর ফাঁকা স্ট্রিং এবং দ্বিতীয় সংখ্যার আগে চূড়ান্ত বিয়োগ চিহ্নের সাথে মেলে এবং তাদের পুনরায় অর্ডার করে খালি স্ট্রিংটি বিয়োগের জায়গায় রেখে দেয়। এর পরে, সমস্ত -স্ট্রিংয়ের শুরুতে রয়েছে এবং তাদের দুটি জোড়া পরের দুটি লাইনের সাহায্যে সহজেই সরানো যেতে পারে।

এর পরে, আমরা সংখ্যাকে আনারি উপস্থাপনায় রূপান্তর করতে একটি বিল্টিন ব্যবহার করি এবং তারপরে আসল গুণটি আসে:

1(?=1* (1*))?
$1

আমরা যে কোনও মেলে 1 , এবং তাদের প্রত্যেককে 1নিম্নলিখিত স্থানের পরে সমস্ত দিয়ে প্রতিস্থাপন করব । প্রথম সংখ্যার প্রতিটি অঙ্ক পূর্ণ দ্বিতীয় সংখ্যা দ্বারা প্রতিস্থাপিত হবে, এবং দ্বিতীয় সংখ্যার প্রতিটি অঙ্ক খালি স্ট্রিং দ্বারা প্রতিস্থাপন করা হবে।

শেষ অংশটি আবার ইউনারি থেকে দশমিক হিসাবে রূপান্তর করার জন্য অন্তর্নির্মিত।

এটি অনলাইন চেষ্টা করুন!


2
আমি আশা করি প্রতিবার আপনি যখন গল্ফটি উপস্থাপন করতে পেরেছি তখন ভাল কাজ!
ক্রিটসি লিথোস

বাহ, যে নতুন পদ্ধতির আশ্চর্যজনক। আমার মনে হয় তুমি জিতো :) (এবং এটি আমাকে আরও $*_
মার্টিন এন্ডার

BTW, এখানে ক্ষেত্রে একই বাইট গণনা একটি হওয়া ASCII-একমাত্র সমাধান আপনি পছন্দ হয় যে: tio.run/nexus/retina#U9VwT/...
মার্টিন Ender

1
মজাদার ঘটনা: স্পষ্টতই আমি একপর্যায়ে একজন এবং এক দশমিক অপারেটরকে নিজের সাথে মিশ্রিত করার কৌশলটি আবিষ্কার করেছি।
মার্টিন ইন্ডার

1
আমি রেটিনা 1.0 এবং নতুন সীমা এবং নতুন পুনরাবৃত্তি অপারেটর ধন্যবাদ এই আপডেট চেষ্টা, এটি শুধুমাত্র এখন 23 বাইট দরকার: tio.run/##K0otycxLNPyvpxqj4Z7wX8vOR9dQxyBBl0tPW4dLiyueS0UdSP7/... ... আপনি এমনকি একটি একক ইতিবাচক সংখ্যার গুণ কি করতে পারেন মঞ্চ এখন ( .+,(.+)থেকে $.($1**) কিন্তু এখানে আসলে আরও বাইট।
মার্টিন ইন্ডার

18

স্ক্র্যাচ , 1 বাইট

এখানে চিত্র বর্ণনা লিখুন

ব্যবহার: উভয় পক্ষের প্লেস নম্বর * চিহ্নের

দ্রষ্টব্য: যেহেতু স্ক্র্যাচ একটি ভিজ্যুয়াল ভাষা তাই @ mbomb007 স্ক্র্যাচ বাইট গণনা করার পদ্ধতি সম্পর্কে আমাকে উল্লেখ না করা পর্যন্ত এটি কতটা বাইট গ্রহণ করে তা বুঝতে পারি না



@ mbomb007 আপনার মন্তব্যের জন্য ধন্যবাদ!
rahnema1

15

ব্রেন-ফ্লাক , 56 বাইট

([({}<([({})<>])<>>)<>]){({}[()]<(({})<({}{})>)>)<>}{}{}

এটি অবশ্যই সম্পূর্ণ প্রোগ্রাম হিসাবে চালিত হবে কারণ এটি স্ট্যাক পরিষ্কার নয় এবং উভয় স্ট্যাকের ইনপুটগুলি অবশ্যই একমাত্র উপাদান হতে হবে।

এটি অনলাইন চেষ্টা করুন!


ব্যাখ্যা: (ইনপুটগুলিকে এক্স এবং ওয়াইতে কল করুন)

অংশ 1:

([({}<([({})<>])<>>)<>])

([                    ]) # Push negative x on top of:
      ([      ])         # negative y. After...
  ({}<            >)     # pushing x and...
        ({})             # y...
            <>  <>  <>   # on the other stack (and come back)

এই মুহুর্তে আমাদের কাছে একটি স্ট্যাকের [x, y] এবং অন্যদিকে [-x, -y] রয়েছে।

অংশ ২:

{({}[()]<(({})<({}{})>)>)<>}{}{}
{                          }     # Loop until x (or -x) is 0
 ({}[()]<              >)        # Decrement x
         (({})<      >)          # Hold onto y
               ({}{})            # Add y and the number under it (initially 0)
                         <>      # Switch stacks
                            {}{} # Pop x and y leaving the sum

1
কি দারুন! নিশ্চিতভাবে সবচেয়ে চিত্তাকর্ষক উত্তর এতদূর
DJMcMayhem

@DJMcMayhem আর (সামান্য পরিবর্তিত) এটিকে এক beats উইকি 18 বাইট
রিলে

আপনার কি ব্রেইন ফ্ল্যাঙ্ক উইকিতে লেখার অ্যাক্সেস আছে? আমি একটি সংক্ষিপ্ত সংস্করণ আপলোড করতে চাই।
DJMcMayhem

@ DJMcMayhem- এ আমার অ্যাক্সেস নেই। আপনি একবার নজর রাখতে চাইলে এবং এটি আপলোড করতে চাইলে আমি ব্রেইন-ফ্ল্যাক চ্যাটরুমে সংক্ষিপ্ত একটি পোস্ট করেছি।
রিলে

আমি জানি কিছুক্ষণ হয়ে গেছে তবে আপনার কিছু প্রতিযোগিতা রয়েছে ;)
গম উইজার্ড

11

জাভাস্ক্রিপ্ট (ES6), 9 বাইট

ES6 এর 32-বিট পূর্ণসংখ্যার জন্য ডেডিকেটেড ফাংশন রয়েছে, আরও জেনেরিক *অপারেটরের চেয়ে দ্রুত ।

Math.imul

ঘটনাক্রমে, এটি ঠিক তত দীর্ঘ:

a=>b=>a*b

দুর্দান্ত, এখন আমি ম্যাথ.আইমুলকে জানি, আপনাকে ধন্যবাদ!
চৌ গিয়াং

9

ব্রেন-ফ্লাক , 56 54 52 বাইট

2 বাইট নাইট্রডনের হাতে ধরা একটি ভুলের জন্য ধন্যবাদ সংরক্ষণ করেছে

({}(<()>)<>)({<([{}({}())])><>([{}]([{}]))<>}<{}{}>)

এটি অনলাইন চেষ্টা করুন!

পরিষ্কার সংস্করণ স্ট্যাক, 62 60 বাইট

({}(<()>)(<>))({<([{}({}())])><>([{}]([{}]))<>}<{}{}<>{}{}>)

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

এই ব্যাখ্যাটি জড়িত অ্যালগরিদমের আরও ব্যাখ্যা এবং আসল কোডটি ছেড়ে যায়। এটি ধরে নেওয়া হয় যে আপনি ব্রেইন-ফ্ল্যাককে দক্ষতার সাথে কীভাবে পড়তে জানেন। কোড বা অ্যালগরিদম কোনওটি যদি আপনার বুঝতে সহায়তা হয় তবে আমি কোনও মন্তব্য রেখে সম্পাদনা করতে বা প্রতিক্রিয়া জানাতে পেরে খুশি হব।

এটি কিছুটা অদ্ভুত এবং কিছু অদ্ভুত গণিত ব্যবহার করে যা সবেমাত্র কার্যকর হয়। আমি প্রথমটি করলাম একটি লুপ তৈরি করা যা সর্বদা ও (এন) পদক্ষেপে শেষ হয়ে যায়। এটি করার স্বাভাবিক উপায়টি হ'ল বিপরীত স্ট্যাকগুলিতে এন এবং -এন স্থাপন করা এবং একটিতে শূন্য না হওয়া পর্যন্ত প্রত্যেকটিতে একটি যুক্ত করা, তবে আমি এটি কিছুটা অপরিচিত উপায়ে করেছি। আমার পদ্ধতি আমি ইনপুট নীচে একটি পাল্টা করা এবং প্রতিটি পদক্ষেপ আমি পাল্টা বাড়ায় এটি যোগ এন এবং চিহ্ন টুসকি এন

আসুন একটি উদাহরণ দিয়ে চলুন। বলুন এন = 7

7  -8   6  -9   5 -10   4 -11   3 -12   2 -13   1 -14   0
0   1   2   3   4   5   6   7   8   9  10  11  12  13  14

আমি এখানে এটি প্রমাণ করব না তবে এটি সর্বদা যে কোনও ইনপুটটির জন্য বন্ধ হয়ে যাবে এবং প্রায় 2n পদক্ষেপে এটি করব। আসলে এটা মধ্যে বন্ধ করে দেব 2n পদক্ষেপ যদি এন ইতিবাচক এবং 2n-1 যদি পদক্ষেপ এন নেতিবাচক। আপনি এটি এখানে পরীক্ষা করতে পারেন

এখন আমাদের লুপের প্রায় 2n পদক্ষেপ রয়েছে কীভাবে আমরা এন দ্বারা গুণ করব ? ভাল এখানে কিছু গণিত যাদু আছে। আমরা যা করি তা এখানে: আমরা একটি সঞ্চালক তৈরি করি, প্রক্রিয়াটির প্রতিটি ধাপ আমরা সঞ্চয়ের সাথে দ্বিতীয় ইনপুট ( এম ) যুক্ত করি এবং তাদের উভয়ের চিহ্নটি ফ্লিপ করি, তারপরে আমরা ঘটনাক্রমে সমস্ত লুপের উপরে মোটটি চাপ করি, এটি হ'ল পণ্য।

পৃথিবীতে কেন এমন অবস্থা?

ওয়েল একটি উদাহরণ দিয়ে হাঁটা যাক এবং আশা করি এটি পরিষ্কার হয়ে যাবে। এই উদাহরণে আমরা 5 দ্বারা 3 গুন করছি , আমি কেবলমাত্র গুরুত্বপূর্ণ মানগুলি দেখাব

total       -> 0  -5   5 -10  10 -15  15
accumulator -> 0  -5  10 -15  20 -25  30
m           -> 5  -5   5  -5   5  -5   5

আশা করি প্রক্রিয়াটি এখানে প্রকাশিত হবে। আমরা তাদের নিখুঁত মানগুলি অনুসারে সমস্ত মিটারের বহুগুণে পদক্ষেপ নিচ্ছি । তারপরে আপনি লক্ষ্য করবেন যে 2n তম শব্দটি সর্বদা m * n এবং সর্বদা -m * n এর আগে শব্দটি । এটি এটিকে এমন করে তোলে যাতে আমাদের লুপিংগুলি আমরা চাই ফলাফলের সাথে পুরোপুরি সারি করে। কিছুটা খুশি কাকতালীয় ঘটনা;)


8

ডায়ালগ এপিএল , 1 বাইট

× বাম দিকে একটি সংখ্যা এবং ডান দিকে লাগে

×... বা বামে বা ডানদিকে বা উভয় পক্ষের একাধিক সংখ্যা

×/ একটি তালিকার সমস্ত সংখ্যাকে গুণ করে

×/¨ প্রদত্ত তালিকার জোড়গুলিকে গুণিত করে

×/∊ একটি অ্যারের মধ্যে সমস্ত সংখ্যা mulitplies

এটি সমস্ত গাণিতিক ফাংশন, সমস্ত আকার এবং র‌্যাঙ্কের অ্যারে এবং সমস্ত ডেটাটাইপের সংখ্যার ক্ষেত্রে প্রযোজ্য।


8

আর, 3 বাইট

'*'

এটি একটি ফাংশন যা ঠিক দুটি যুক্তি লাগে। হিসাবে চালান '*'(a,b)

আরও দেখুন prodযা একই জিনিস আছে কিন্তু আর্গুমেন্ট একটি অবাধ সংখ্যা গ্রহণ করতে পারেন।


এটি কি নিজস্ব বৈধ অভিব্যক্তি? যদি তা না হয় তবে এটি হিসাবে জমা দেওয়া দরকার '*'

@ ais523 আহ, আপনি ঠিক বলেছেন, এটি নিজেই একটি বৈধ অভিব্যক্তি নয়। আমি স্পষ্ট করতে পোস্ট সম্পাদনা করেছি। ধন্যবাদ!
rturnbull

4
নিম্নগামীদের কাছে: এটি স্থির করা হয়েছে।
Rɪᴋᴇʀ


8

হেক্সাগনি , 9 বাইট

?{?/*!@'/

এটি অনলাইন চেষ্টা করুন!

এটি আসলে মোটামুটি সোজা। এখানে প্রকাশিত সংস্করণটি রয়েছে:

  ? { ?
 / * ! @
' / . . .
 . . . .
  . . .

/তৃতীয় বাইটগুলি সংরক্ষণ করতে কেবল নিয়ন্ত্রণ প্রবাহকে দ্বিতীয় লাইনে পুনঃনির্দেশ করুন। এটি এই লিনিয়ার প্রোগ্রামে কোড হ্রাস করে:

?{?'*!@

ইনপুটটি কঠোর ইতিবাচক সংখ্যার মধ্যে সীমাবদ্ধ থাকলে নিজেরাই এই লিনিয়ার কোডটি আসলে একটি বৈধ সমাধান হতে পারে তবে ইতিবাচক ফলাফলের সম্ভাবনার কারণে এটি সমাপ্ত হওয়ার গ্যারান্টিযুক্ত নয়।

প্রোগ্রামটি ওয়াই আকারে তিনটি মেমরি প্রান্ত ব্যবহার করে:

A   B
 \ /
  |
  C

Aকেন্দ্রের দিকে ইশারা করে স্মৃতি পয়েন্টারটি শুরু হয় ।

?   Read first input into edge A.
{   Move forward to edge B.
?   Read second input into edge B.
'   Move backward to edge C.
*   Multiply edges A and B and store the result in C.
!   Print the result.
@   Terminate the program.

আমি 7 বাইট সমাধানগুলি (যেমন সাইড লেন্থ 2 এর সাথে মাপসই করা হয়) এর জন্য একটি নিরপেক্ষ বাহিনী অনুসন্ধান চালিয়েছি, এবং যদি আমি কোনও ভুল না করি (বা এমন একটি ব্যস্ত-বিভার-ওয়াই সমাধান রয়েছে যা সম্পূর্ণ হতে দীর্ঘ সময় নেয়, যা আমি সন্দেহ করি) তবে 7-বাইট সমাধানের অস্তিত্ব নেই। একটি 8-বাইট সমাধান থাকতে পারে (উদাহরণস্বরূপ পুনরায় ?ব্যবহার বা দুজনের পরিবর্তে কেবল একটি পুনর্নির্দেশ কমান্ড ব্যবহার করে /) তবে এটি আমার ব্রুট ফোর্স অনুসন্ধান করতে পারে তার বাইরে and এবং আমি এখনও হাতে হাতে সন্ধান করতে পারি নি।


7

পিট , 16 বাইট

5bpiaibpikibptai

অনলাইন দোভাষী এখানে উপলব্ধ।

ব্যাখ্যা

চালানোর জন্য, লিঙ্কযুক্ত পৃষ্ঠার ডানদিকে পাঠ্য বাক্সে উপরের কোডটি পেস্ট করুন। নীচে কোডেলের আকার 31 সহ এই কোডটির একটি গ্রাফিকাল উপস্থাপনা দেওয়া আছে The গ্রিডটি পাঠযোগ্যতার জন্য এবং traditionalতিহ্যবাহী পিট দোভাষীদের সাথে হস্তক্ষেপ করতে পারে।
কোডটি প্রথমে সবুজ ব্লক পর্যন্ত চিত্রের শীর্ষে বাম থেকে ডানদিকে রৈখিকভাবে চলে, যেখানে প্রোগ্রামের প্রবাহটি কোডেলের মাঝের সারিতে চলে যায়। প্রোগ্রাম প্রবাহের জন্য সাদা একাকী সাদা কোডেল প্রয়োজনীয়। এটি সবুজ বা গা dark় নীল বাদে অন্য কোনও রঙের কোডেল দিয়ে প্রতিস্থাপন করা যেতে পারে তবে আমি পঠনযোগ্যতার জন্য সাদা বেছে নিয়েছি।

কোড ভিজ্যুয়ালাইজেশন

Instruction    Δ Hue    Δ Lightness    Stack
-----------    -----    -----------    -----
In (Number)    4        2              m
In (Number)    4        2              n, m
Multiply       1        2              m*n
Out (Number)   5        1              [Empty]
[Exit]         [N/A]    [N/A]          [Empty]

আপনি যদি মনে করেন যে পাঠ্যটি কোনও পিইট প্রোগ্রামের উপস্থাপনের সেরা উপায় নয় বা পিট প্রোগ্রামগুলির বাইট আকারের সাথে সাধারণভাবে কোনও সমস্যা থাকে তবে দয়া করে মেটা সম্পর্কিত আলোচনায় আপনার মতামতটি জানান ।


7

বিটসাইকেল -U , 68 বাইট

  >    > v
 ?+ >  +
Bv ?^ v ~
 \  v<CB~\v
 Cv  ^  <\/
^ <@=!   <
0A^

এটি অনলাইন চেষ্টা করুন!

বিটসাইকেলে দুটি সংখ্যাকে গুণ করা তুচ্ছ সমস্যা নয়, বিশেষত যখন লক্ষণগুলি পরিচালনা করা দরকার! এটি আমার দ্বিতীয় প্রচেষ্টা; প্রথমটি (মূলত একই অ্যালগোরিদম, বিভিন্ন লেআউট) ছিল 81 বাইট, সুতরাং এটি খুব সম্ভবত এটিও ছোট করা সম্ভব।

প্রোগ্রামটি দুটি সংখ্যা কমান্ড-লাইন আর্গুমেন্ট হিসাবে এবং stdout আউটপুট হিসাবে নেয়। -Uপতাকা দশমিক সংখ্যার রূপান্তর হয় স্বাক্ষরিত ইউনারী , যেহেতু BitCycle শুধুমাত্র 0 এবং 1 এর জানে।

ব্যাখ্যা

এই ব্যাখ্যাটি আপনাকে বিটসাইকেলের বেসিকগুলি বুঝতে অনুমান করেছে (দেখুন) এসোলাংস বা গিটহাবের রিডমি )। আমি আমার ব্যাখ্যাটি এই অসম্পূর্ণ সংস্করণটিতে ভিত্তি করে দেব, এখানে কম্পিউটিংয়ের -2সময়গুলি দেখা হয়েছে 3:

বিটসাইকেলে সাইন ইন গুন

সংক্ষিপ্ত বিবরণ

স্বাক্ষরযুক্ত আনারি সংখ্যায় সাইন থাকে (0 ধনাত্মক পক্ষে খালি), তত্পরতার পরে ( 1সংখ্যার পরম মানের সমান সংখ্যার গুলি) থাকে। এর মধ্যে দুটি গুণ করতে, আমাদের লক্ষণগুলি XOR করতে হবে ( 0তাদের মধ্যে একটি হ'ল যদি আউটপুট আউট 0, অথবা উভয় বা না হয় কিছুই না) এবং তারপরে বৃহত্তর (এবং অনেকগুলি আউটপুট) গুন করতে হবে 1। আমরা বারবার সংযোজন দ্বারা গুণটি অর্জন করব।

বিট সাইন করুন

দুটি উত্স থেকে শুরু ? , আমরা ব্যবহার করে প্রশস্ততাগুলি থেকে চিহ্নগুলি বিভক্ত করেছি +0s (চিহ্ন বিট) বাম দিকে ঘুরুন এবং উপরের সারিতে বরাবর নির্দেশিত হয়, যখন 1s (ম্যাগনিটিউডস) ডান দিকে ঘুরবে এবং দুটি Bসংগ্রাহকের সমাপ্ত হবে ।

লক্ষণগুলি পরিচালনা করে এমন বিভাগটি দেখতে এটির মতো দেখাচ্ছে:

  v

  \  v
> \  /

! <

উভয় সংখ্যা যদি অস্পষ্টাত্মক 0হয় তবে উপরের দিক থেকে দুটি বিট আসবে v। প্রথমটি উপরে থেকে \প্রতিবিম্বিত হয়, দক্ষিণ দিকে প্রেরণ করা হয় এবং প্রতিফলিত হয়/ । এদিকে, দ্বিতীয় বিটটি নিষ্ক্রিয় শীর্ষের উপর দিয়ে যায় \এবং নীচে থেকে প্রতিফলিত করে \। দুটি বিট একে অপরকে পাস করে, নীচের সারিতে এখন-নিষ্ক্রিয় বিভক্তগুলির মধ্য দিয়ে সোজা যান এবং খেলার মাঠের বাইরে যান।

যদি কেবলমাত্র সংখ্যার মধ্যে একটি অসম্পोजিত 0হয় তবে শীর্ষ থেকে একটি আসে। এটি তিনটি বিভাজকের চারদিকে বাউন্স করে আবার উত্তর দিকে চলে যায়, যতক্ষণ না এটি হিট করেv এবং আরও একবার দক্ষিণে পাঠানো হয়। এবার এটি নিষ্ক্রিয় বিভক্তকারীদের মধ্য দিয়ে যায় এবং এটি সিঙ্কে <প্রেরণ করে !

দৈর্ঘ্য সঞ্চয় করতে লুপস

প্রথম সংখ্যার মাত্রা Bএই বিভাগে সংগ্রাহকের মধ্যে যায় :

B v
  \
  C v
^   <

0 A ^

Bসংগ্রাহক খোলার আগে, সংগ্রাহক এতে স্থাপন করা Aএককটি প্রকাশ করে 0, যা পরে সারিটির শেষ প্রান্তে যায় B। সমস্ত 1বিটগুলি Bচলে গেলে লুপটি শেষ করতে আমরা এটি পতাকাঙ্কিত মান হিসাবে ব্যবহার করব ।

প্রতিবার Bসংগ্রাহকগুলি খোলার পরে \স্প্লিটারটি সারিবদ্ধ হতে প্রথম বিটটি খোলে এবং মাঝখানে প্রসেসিং যুক্তিতে প্রেরণ করে। বাকি বিটগুলি Cকখন যায় এবং কখনC সংগ্রহকারীগুলি খোলার সেগুলিতে আবার পাঠানো হয় B

দ্বিতীয় সংখ্যার তীব্রতা Bএই বিভাগে সংগ্রাহকের মধ্যে যায় :

v   ~
C B ~
    <

যখন Bসংগ্রাহক খুলুন, বিট নীচে dupneg ঢোকা ~। আসল 1বিটগুলি ডানদিকে ঘুরবে এবং মাঝখানে প্রসেসিং লজিকের দিকে পশ্চিম দিকে প্রেরণ করা হবে। 0অবহেলিত অনুলিপি ( গুলি) বাম দিকে ঘুরুন এবং তত্ক্ষণাত অন্য দুপনেগে আঘাত করুন। এখানে 0ডানদিকে ঘুরুন এবং খেলার ক্ষেত্রটি ছেড়ে যান, যখন (এখন দ্বিগুণ) অবহেলিত এসের বাঁকটি 1বামে প্রবেশ করা হবে C। যখন Cখোলে, তারা ফিরে যেতেB

বারবার সংযোজন

কেন্দ্রীয় প্রক্রিয়াজাতকরণ যুক্তি এই অংশ:

   v
   v


@  =  !

উভয় লুপের বিটগুলি (পশ্চিম দিকের একটি এবং পূর্ব দিকের সমস্ত কিছু) দক্ষিণে স্যুইচটিতে প্রেরণ করা হয় =। সময় নির্ধারণ করতে হবে যাতে পশ্চিমা লুপ থেকে বিটটি প্রথমে সেখানে যায়। যদি এটি হয় তবে নিম্নোক্ত বিটগুলি পূর্ব দিকে সিঙ্কে আউটপুট হিসাবে প্রেরণ 1করে স্যুইচটি পরিবর্তিত হয় । সমস্ত গুলি শেষ হয়ে গেলে , আমরা পাই , যা এতে স্যুইচ পরিবর্তন করে । এটি নিম্নলিখিত বিটগুলি প্রেরণ করে যা প্রোগ্রামটি শেষ করে। সংক্ষেপে, আমরা প্রথম সংখ্যার (আনারি) প্রস্থে যতবার আছে ততবার দ্বিতীয় সংখ্যার (একরিত) মাত্রা আউটপুট করি ।}!10{@1



6

জাভা 8, 10 9 বাইট

a->b->a*b

এখানে চেষ্টা করুন।

জাভা 7, 31 বাইট

int c(int a,int b){return a*b;}

এখানে চেষ্টা করুন।

সম্পূর্ণ প্রোগ্রাম হিসাবে ( 99 90 বাইট) :

interface M{static void main(String[]a){System.out.print(new Long(a[0])*new Long(a[1]));}}

এখানে চেষ্টা করুন।


2
আপনার সম্পূর্ণ প্রোগ্রামে একটি টাইপ রয়েছে, এটি *ইনস্টল করা উচিত +
corvus_192

a,bল্যাম্বডা এক্সপ্রেশনটিতে আপনার চারপাশে প্রথম বন্ধনী প্রয়োজন নেই ।
ফ্লিপট্যাক

5

পাইথ, 2 বাইট

*E

এখানে চেষ্টা করুন!

পাইথের স্বয়ংক্রিয় মূল্যায়ন এখানে চলে আসে। এটি পেতে, আমি একটি আর্গুমেন্টের জন্য সুস্পষ্ট মূল্যায়ন ব্যবহার করছি


বাহ! দারুণ তো. ভবিষ্যতে এটি কার্যকর হবে।
গুরুপদ মামাদপুর

5

টিআই-বেসিক, 2 বাইট

খুব সোজা।

prod(Ans


2
কার মতে? এই লিঙ্কটি সাতটি ভোট দেখায়
টিমটেক

1
@ টিমটেক মন্তব্য করার সময় এটি ছিল না তবে এটি চ্যাটে পোস্ট করা হয়েছে তাই ঠিক বৈধ হয়ে গেছে
ব্লু

ঠিক আছে, টিপটির জন্য ধন্যবাদ
@

5

পিএইচপি, 21 বাইট

<?=$argv[1]*$argv[2];

কমান্ড লাইন আর্গুমেন্ট থেকে ইনপুট নেয়। ফ্লোট নিয়েও কাজ করে।


5

রেটিনা , 39 35 বাইট

লিওকে তার একটি ধারণা ব্যবহার করতে দেওয়ার জন্য ধন্যবাদ যা 4 টি বাইট সংরক্ষণের কাজ শেষ করেছে।

[^-]

*\)`--

.+
$*
\G1
_
_|1+
$'
1

ইনপুট লাইনফিড-পৃথক।

এটি অনলাইন চেষ্টা করুন!(সুবিধার জন্য স্পেস-বিভক্ত টেস্ট স্যুট)

ব্যাখ্যা

প্রথম দুটি পর্যায়ে একটি বিয়োগ চিহ্ন মুদ্রণ করে যদি দুটি ইনপুটগুলির মধ্যে ঠিক একটি নেতিবাচক হয়। তারা আসলে ইনপুট পরিবর্তন না করে এটি করে They এটি দ্বিতীয় পর্যায়ে তাদের গোষ্ঠীভুক্ত করে এবং এটিকে )একটি শুকনো দৌড়তে পরিণত করে *\একটি trailing লাইনফীড মুদ্রণ দ্বিতীয় পর্যায়ের প্রতিরোধ বিকল্পটি।

[^-]

প্রথমত, আমরা বিয়োগ চিহ্নগুলি বাদ দিয়ে সবকিছু সরিয়ে ফেলছি।

*\)`--

তারপরে যদি দুটি চিহ্ন বাকী থাকে তবে আমরা বিয়োগ চিহ্নগুলি বাতিল করি।

.+
$*

এখন আমরা প্রতিটি লাইনকে এর নিখুঁত মানের অবিচ্ছিন্ন উপস্থাপনায় রূপান্তর করি। এটি বিয়োগ চিহ্ন থেকে মুক্তি পাবে কারণ $*কেবল ম্যাচের প্রথম অ-নেতিবাচক সংখ্যার সন্ধান করে (যেমন এটি বিয়োগ চিহ্ন সম্পর্কে জানে না এবং সেগুলি উপেক্ষা করে)।

\G1
_

আগের লাইনটির _সাথে 1সংলগ্ন যতক্ষণ না পৃথক ব্যক্তির সাথে ম্যাচ করে প্রথম লাইনটি রূপান্তরিত হয় (অতএব, আমরা 1দ্বিতীয় লাইনে এর সাথে মেলে ধরতে পারি না , কারণ লাইনফিডটি এই শৃঙ্খলটিকে ভেঙে দেয়)।

_|1+
$'

এটি আসল গুণটি সম্পাদন করে। আমরা প্রতিটি _(প্রথম লাইনে) পাশাপাশি সেই ম্যাচের পরে পুরো দ্বিতীয় লাইনটিকে প্রতিস্থাপন করি । _ম্যাচ তাই সমগ্র দ্বিতীয় লাইন (সংখ্যা দ্বারা এটা গুন অন্তর্ভুক্ত করা হবে 0প্রথম লাইনে গুলি), এবং যে খেলা শেষে কিছুই না থাকায় দ্বিতীয় লাইন সরানো হবে। অবশ্যই ফলাফলটি _এস এবং লাইনফিড আকারে কিছুটা জাঙ্ক অন্তর্ভুক্ত করবে , তবে এটি কোনও ব্যাপার নয়।

1

আমরা কেবল 1ফলাফলের সংখ্যাগুলি গণনা করে শেষ করি ।


5

ম্যাটল্যাব, 5 4 বাইট

@dot

dotসমান দৈর্ঘ্যের দুটি ভেক্টরের বিন্দু পণ্য গ্রহণ করে । যদি আমরা এটি দুটি স্কেলার দিয়ে খাওয়াতে পারি তবে এটি কেবল দুটি সংখ্যাকে গুণ করবে।

prodএকটি ম্যাট্রিক্সের প্রতিটি কলামের সমস্ত সারিতে মানগুলির পণ্য গ্রহণ করে। যদি ম্যাট্রিক্স এক-মাত্রিক (অর্থাত্ কোনও ভেক্টর) হয়, তবে এটি ভেক্টরের সমস্ত উপাদানগুলির পণ্য গ্রহণ করে, অ-সিঙ্গলটন মাত্রা বরাবর কাজ করে।

dotএক বাইট খাটো চেয়ে prodআরও বেশি সুস্পষ্ট builtin একাধিক বাইট খাটো যা times

এটিকে কল করুন:

@dot
ans(3,4)
ans = 
   12

4

কবুতর স্ক্রিপ্ট , 1 বাইট

*

ব্যাখ্যা:
*সেখানে কিছু আছে কিনা তা দেখতে স্ট্যাকের দিকে তাকান। যদি তা না হয় তবে এটি ইনপুটটির জন্য অনুরোধ জানায় এবং ইনপুটগুলিকে একসাথে গুণায়


5
এটি পরিবর্তে এখানে যুক্ত করা উচিত
mbomb007

4

পার্ল 6 , 4 বাইট

&[*]

এটি *একটি সাধারণ ফাংশন হিসাবে প্রকাশিত কেবল সাধারণ ইনফিক্স গুণ গুণ operator বোনাস হিসাবে, যদি একটি নম্বর দেওয়া হয় তবে এটি সেই নম্বরটি দেয় এবং যদি কোনও নম্বর না দেওয়া হয় তবে 1এটি গুণক পরিচয়।


বিকল্প 4 হল UTF-8 বাইট সমাধান:*×*
nwellnhof

4

> <>, 5 বাইট

i|;n*

একটি আসকি চরিত্র হিসাবে ইনপুট নেয়, একটি সংখ্যা আউটপুট দেয়।

ব্যাখ্যা:

i                        | Get input.
 |                       | Mirror: Change the pointer's direction.
i                        | Get input again.
    *                    | Loop around to the right side. Multiply
   n                     | Print the value on the stack, as a number
  ;                      | End the program

আপনি করতে পারেন

ii*n;

তবে আমি আমার সমাধানটি অনুভব করছি ওয়ায়ায়ে শীতল।

আর একটি সম্ভাবনা হ'ল সেমিকোলনটি হ্রাস পাবে, যার ফলে পয়েন্টারটি আয়নাটি ছড়িয়ে দিয়ে মুদ্রণ কমান্ডটি চাপবে এবং স্ট্যাকটি খালি থাকায় একটি ত্রুটি ছুঁড়ে ফেলবে।


4

ইন্টেল 8080 মেশিন কোড , এমআইটিএস আলটায়ার 8800 , 28 বাইট

এটি ইন্টেল 8080 সিপিইউ (সি। 1974) -এ বাইনারি গুণকে প্রয়োগ করে যার কোন গুণ বা বিভাগ নির্দেশ নেই। ইনপুটগুলি 8-বিট মান এবং পণ্যটি 16-বিট মান হয়BC রেজিস্টার জুটিতে ।

সামনের প্যানেল স্যুইচগুলি ব্যবহার করে প্রোগ্রামটি একটি Altair 8800 এ লোড করার জন্য ধাপে ধাপে নির্দেশাবলীর সাথে মেশিন কোডটি এখানে রয়েছে ।

Step    Switches 0-7    Control Switch  Instruction Comment
1                       RESET
2       00 001 110      DEPOSIT         MVI  C, 5   Load multiplier into C
3       00 000 101      DEPOSIT NEXT                value is 5
4       00 010 110      DEPOSIT NEXT    MVI  D, 16  Load multiplicand into D
5       00 010 000      DEPOSIT NEXT                value is 16
6       00 000 110      DEPOSIT NEXT    MVI  B, 0   clear B register (high byte of result)
7       00 000 000      DEPOSIT NEXT
8       00 011 110      DEPOSIT NEXT    MVI  E, 9   set loop counter E multiplier size
9       00 001 001      DEPOSIT NEXT                (8 bits + 1 since loop ends in middle)
10      01 111 001      DEPOSIT NEXT    MOV  A, C   move multiplier into A for shift
11      00 011 111      DEPOSIT NEXT    RAR         shift right-most bit to CF
12      01 001 111      DEPOSIT NEXT    MOV  C, A   move back into C
13      00 011 101      DEPOSIT NEXT    DCR  E      decrement loop counter
14      11 001 010      DEPOSIT NEXT    JZ   19 00  loop until E=0, then go to step 27
15      00 011 001      DEPOSIT NEXT
16      00 000 000      DEPOSIT NEXT
17      01 111 000      DEPOSIT NEXT    MOV  A, B   move sum high byte into A
18      11 010 010      DEPOSIT NEXT    JNC  14 00  add if right-most bit of 
19      00 010 100      DEPOSIT NEXT                multiplier is 1, else go to 22
20      00 000 000      DEPOSIT NEXT
21      10 000 010      DEPOSIT NEXT    ADD  D      add shifted sums
22      00 011 111      DEPOSIT NEXT    RAR         shift right new multiplier/sum
23      01 000 111      DEPOSIT NEXT    MOV  B, A   move back into B
24      11 000 011      DEPOSIT NEXT    JMP  08 00  go to step 10
25      00 001 000      DEPOSIT NEXT
26      00 000 000      DEPOSIT NEXT
27      11 010 011      DEPOSIT NEXT    OUT  255    display contents of A on data panel
28      11 111 111      DEPOSIT NEXT
30      01 110 110      DEPOSIT NEXT    HLT         Halt CPU
31                      RESET                       Reset program counter to beginning
32                      RUN
33                      STOP

এটি অনলাইন চেষ্টা করুন!

আপনি যদি এটি সমস্ত সঠিকভাবে প্রবেশ করান থাকেন তবে সিমুলেটারের মেশিন স্টেট ড্রয়ারে আপনার র্যামের সামগ্রীগুলি দেখতে পাবেন:

0000    0e 05 16 10 06 00 1e 09 79 1f 4f 1d ca 19 00 78 
0010    d2 14 00 82 1f 47 c3 08 00 d3 ff 76

ইনপুট

Cনিবন্ধে গুণক এবং এর মধ্যে বহুগুণ D। স্টক আলটায়ারের কোনও STDINইনপুট নেই কেবল সামনের প্যানেল স্যুইচগুলির দ্বারা।

আউটপুট

ফলাফলটি বাইনারি D7- D0লাইটগুলিতে (উপরে ডান সারিতে) প্রদর্শিত হয়।

5 x 16 = 80 (0101 0000)

এখানে চিত্র বর্ণনা লিখুন

4 x 5 = 20 (0001 0100)

এখানে চিত্র বর্ণনা লিখুন

7 x 9 = 63 (0011 1111)

এখানে চিত্র বর্ণনা লিখুন

8 x -9 = -72 (1011 1000)

এখানে চিত্র বর্ণনা লিখুন

সামঞ্জস্যতা নোট: এটি বর্তমানে অপরিশোধিত থাকলেও এটি আইএমএসএআই 8080 এ চালানো উচিত ।


3

সি #, 10 বাইট

a=>b=>a*b;

এটি কেবল একটি সহজ গুণ।


তুমি আমাকে এটা দ্বারা মেরেছ!
TheLethalCoder

=> => কীভাবে কাজ করে? আমি আশা করব (a, b) => এ * বি;
কারা

1
@ কারা এটি কাজ করে, যে এই ল্যাম্বডা এক্সপ্রেশনটি একটি প্রতিনিধিকে রিটার্ন দেয়, ফলাফলটি ফেরত দেয়, সুতরাং আপনি যদি এই ল্যাম্বডাকে f: f (a) (b) বলে থাকেন তবে আপনি এটিকে এটি ডাকবেন।
হোর্ভাথ ডেভিড



3

ক্লোজার, 1 বাইট

*

: পি বোনাস হিসাবে এটি যে কোনও সংখ্যক আর্গুমেন্টে কাজ করে:

[(*)
 (* 2)
 (* 2 3)
 (* 2 3 4)
 (* 2 3 4 5)] => [1 2 6 24 120]

আকর্ষণীয়ভাবে আপনি সহজেই এর উত্স কোডটি পেতে পারেন:

(source *)
(defn *
  "Returns the product of nums. (*) returns 1. Does not auto-promote
  longs, will throw on overflow. See also: *'"
  {:inline (nary-inline 'multiply 'unchecked_multiply)
   :inline-arities >1?
   :added "1.2"}
  ([] 1)
  ([x] (cast Number x))
  ([x y] (. clojure.lang.Numbers (multiply x y)))
  ([x y & more]
     (reduce1 * (* x y) more)))

3

ওক , 11 বাইট

λx.λy.x*y

এটি এই যেমন একটি ফাংশন বরাদ্দ করা যেতে পারে:

multiply:λx.λy.x*y

এবং এর মতো বলা হয়:

result<multiply(a,b)

এটি কি কাজ করে না? দো ভোট সম্পর্কে দয়া করে ব্যাখ্যা করুন।
কনর ও ব্রায়ান

আমি ডাউনভোটার নই, তবে আমি মনে করি আমি কী ঘটেছে তা অনুমান করতে পারি: এটি একটি খুব তুচ্ছ প্রশ্ন (এবং এইভাবে খুব ভারী নিম্নমানের, তবে অনেকগুলি উপভোগ এটি বাতিল করে দিয়েছে), এবং সম্ভবত তুচ্ছ প্রশ্নগুলিকে তুচ্ছ করে এমন লোকদের আকর্ষণ করতে পারে। এই উত্তরটিও মোটামুটি তুচ্ছ, এবং সম্ভবত এমন কিছু লোক যারা তুচ্ছ প্রশ্নগুলিকে তুচ্ছ করে তারাও তুচ্ছ প্রশ্নের উত্তরকে নীচে নামাতে পছন্দ করে। (ব্যক্তিগতভাবে, আমি 0 এ তুচ্ছ উত্তরগুলি ছেড়ে দিতে পছন্দ করি, তাই আমি এই উত্তর দিয়ে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.