একটি ব্যাপ্তির ওপরে পণ্য


39

আপনার টাস্কটি সহজ: প্রদত্ত দুটি পূর্ণসংখ্যা aএবং b, আউটপুট ∏[a,b]; যে মধ্যে পরিসীমা পণ্য aএবং b। আপনি নিতে পারেন aএবং bকোনও যুক্তিসঙ্গত বিন্যাসে, এটি কোনও ফাংশনের পক্ষে যুক্তি, তালিকার ইনপুট, এসটিডিআইএন এবং সেটার হতে পারে। আপনি কোনও যুক্তিসঙ্গত বিন্যাসে আউটপুট দিতে পারেন, যেমন একটি রিটার্ন মান (ফাংশনগুলির জন্য) বা এসটিডিআউট। aসবসময় কম হবে b

মনে রাখবেন যে শেষটি একচেটিয়া বা অন্তর্ভুক্ত হতে পারে b। আমি খুঁতখুঁতে না. ^: _ ^

পরীক্ষার মামলা

[a,b) => result
[2,5) => 24
[5,10) => 15120
[-4,3) => 0
[0,3) => 0
[-4,0) => 24

[a,b] => result
[2,5] => 120
[5,10] => 151200
[-4,3] => 0
[0,3] => 0
[-4,-1] => 24

এটি একটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম প্রোগ্রামটি জিতে।


লিডারবোর্ড

এই পোস্টের নীচে স্ট্যাক স্নিপেট উত্তরগুলি থেকে ক্যাটালগ তৈরি করে a) ভাষার প্রতি সংক্ষিপ্ত সমাধানের তালিকা হিসাবে এবং খ) সামগ্রিক লিডারবোর্ড হিসাবে।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করতে, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

## Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

## Ruby, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি পৃথকভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

## Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও তৈরি করতে পারেন যা স্নিপেটে প্রদর্শিত হবে:

## [><>](http://esolangs.org/wiki/Fish), 121 bytes


1
আমি আগামীকাল টিআই-বেসিক এ উত্তর দিচ্ছি।
সুপারজেডি ২৪

@ সুপারজেডি ২২৪ শুভ কামনা;)
কনর ও'ব্রায়েন

ইনপুট হিসাবে নেওয়া যেতে পারে b, a?
ফ্লিপট্যাক

@ ফ্লিপট্যাক হ্যাঁ আপনি পারবেন
কনর ও'ব্রায়ান

উত্তর:


36

জেলি, 2 বাইট

rP

কমান্ড লাইন আর্গুমেন্ট হিসাবে দুটি সংখ্যা নেয়। এটি অনলাইনে চেষ্টা করুন।

নোট করুন যে এটি অন্তর্ভুক্ত ব্যাপ্তি। বাইটের দামের জন্য (3 বাইট), আমরা এটি একচেটিয়া করতে পারি:

’rP

এটি অনলাইনে চেষ্টা করুন। নোট করুন যে b aএই সংস্করণটির জন্য ক্রমে যুক্তিগুলি অবশ্যই দিতে হবে ।

ব্যাখ্যা

অন্তর্ভুক্ত

a rP b
  r   dyadic atom, creates inclusive range between a and b
   P  computes product of the list

একচেটিয়া

b ’rP a
  ’   decrement b (by default, monadic atoms in dyadic chains operate on the left argument)
   r  range
    P product 

10
আমি সন্দেহ করি এটি
মারণীয়

14
@ কিরবিফ্যান64 আপনি জেলি করছেন?
হারুন

30

আর্নল্ডসি , 522 511 বাইট

কোডগল্ফে প্রথম পোস্ট!

আমি এটা করতে মজা ছিল। একচেটিয়া পরিসীমা।

LISTEN TO ME VERY CAREFULLY f
I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE a
I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE b
GIVE THESE PEOPLE AIR
HEY CHRISTMAS TREE r
YOU SET US UP 1
HEY CHRISTMAS TREE l
YOU SET US UP 1
STICK AROUND l
GET TO THE CHOPPER r
HERE IS MY INVITATION r
YOU'RE FIRED a
ENOUGH TALK
GET TO THE CHOPPER a
HERE IS MY INVITATION a
GET UP 1
ENOUGH TALK
GET TO THE CHOPPER l
HERE IS MY INVITATION b
LET OFF SOME STEAM BENNET a
ENOUGH TALK
CHILL
I'LL BE BACK r
HASTA LA VISTA, BABY

ব্যাখ্যা (ধন্যবাদ বিজান):

DeclareMethod f
        MethodArguments a
        MethodArguments b
        NonVoidMethod
        DeclareInt r
        SetInitialValue 1
        DeclareInt l
        SetInitialValue 1
        WHILE l
                AssignVariable r
                        SetValue r
                        MultiplicationOperator a
                EndAssignVariable
                AssignVariable a
                        SetValue a
                        + 1
                EndAssignVariable
                AssignVariable l
                        SetValue b
                        > a
                EndAssignVariable
        EndWhile
        Return r
EndMethodDeclaration

হাহাহা ... আমি হাসিতে হাসিখুশি
rpax

তবে একটি ব্যাখ্যা দুর্দান্ত হবে
rpax

এখানে এটা রূপান্তরিত করা হবে এবং ব্যবহার ইন্ডেন্টযুক্ত হয় এই রেফারেন্স হিসেবে
বিজন

আপনি কোন দোভাষী ব্যবহার করছেন?
লিটারোসিয়াসট

সরকারী এক । আপনি @ কোনও সমস্যা এবং 1 (0% নয়) সম্পর্কে ঠিক বলেছেন
জাইচো

18

পাইথন, 30 বাইট

f=lambda a,b:a>b or a*f(a+1,b)

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


13

Minecraft 15w35a +, প্রোগ্রামের আকার 456 মোট (নীচে দেখুন)

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

এটি গণনা করে PI [a,b)। এই দুটি কমান্ড ব্যবহার করে ইনপুট দেওয়া হয়: /scoreboard players set A A {num}এবং /scoreboard players set B A {num}/scoreboard objectives add A dummyইনপুট দেওয়ার আগে ব্যবহার করতে ভুলবেন না ।

ব্যবহার স্কোর: {program size} + ( 2 * {input command} ) + {scoreboard command} = 356 + ( 2 * 33 ) + 34 = 456

এই কোডটি নিম্নলিখিত psuedocode এর সাথে মিলে যায়:

R = 1
loop:
  R *= A
  A += 1
  if A == B:
    print R
    end program

বিশ্ব এখানে ডাউনলোড করুন


প্রোগ্রামের আকারটি এই স্কোরিং পদ্ধতি দ্বারা গণনা করা হয় ।
গ্যামারকর্পস

দাম্মিট, তুমি করার আগে আমি এটা করেছি। : আমি
অ্যাডিসন ক্র্যাম্প

আপনাকে স্ন্যাপশট সংস্করণ, অর্থাত 15w46aবা কিছু নির্দিষ্ট করতে হবে।
অ্যাডিসন ক্রম্প

মাইনক্রাফ্ট: ডি লো, মিনেক্রাফটে গল্ফিং: ডি
ব্যবহারকারীর নাম।

12

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

Input A
prod(randIntNoRep(A,Ans

Ans প্রম্পট থেকে একটি এবং অন্যটি নেয় ।

এছাড়াও 9 বাইট, ইনপুটটিকে তালিকা হিসাবে গ্রহণ করছে Ans:

prod(randIntNoRep(min(Ans),max(Ans

1
এটি নিজের জন্য নির্ধারণ করতে আমার কিছুটা সময় লেগেছে, তাই আমি এটি এখানে পোস্ট করব: টিআই-বেসিকের প্রতিটি ফাংশন একটি বাইট।
নিক হার্টলি

3
@ কিপ্যেসটেক্সেস তাদের অনেকগুলি কাজ করে তবে সেগুলি সবই নয়। %দুটি বাইট হয়।
mbomb007

12

পাইথন 2, 44 38 বাইট

lambda l:reduce(int.__mul__,range(*l))

খুব সুস্পষ্ট বেনাম ফাংশন উত্তর।

সম্পাদনা: জেনে নেই এমন কয়েকটি বৈশিষ্ট্য সহ 6 বাইট সংরক্ষণ করার জন্য xnor ধন্যবাদ।


1
আপনি বিল্ট-ইন ব্যবহার করতে পারেন int.__mul__, যা আপনার ল্যাম্বদার জায়গায় কাজ করে। দুটি সংখ্যাও x,yপ্যাকেজবিহীনভাবে লেখা যেতে পারে *l
xnor

36
ক্রস আউট 44 এখনও 44-এর মতো দেখাচ্ছে
একটি স্প্যাগেটো

10

পাইথ, 5 বাইট

*FrQE

পাইথের কোনও পণ্য নেই, তাই আমরা * ব্যাপ্তিকে কমিয়ে আনছি।

একচেটিয়া পরিসর ব্যবহার করে।


4
*FrFQসমান তবে ভিন্ন
মঞ্জুরি সহ


8

গণিত, 15 বাইট

1##&@@Range@##&

একটি সংক্ষিপ্ত সমাধান যা কেবল অ-নেতিবাচক পূর্ণসংখ্যার জন্য কাজ করে:

#2!/(#-1)!&

3
অ-নেতিবাচক পূর্ণসংখ্যার জন্য এমনকি ছোট:#2!#/#!&
অ্যান্ডারস ক্যাসরগ

8

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

(a,b)=>eval("for(c=a;a<b;)c*=++a")

কখনও কখনও সহজ উত্তর সেরা! forভিতরে কেবল একটি লুপ eval। অন্তর্ভুক্ত ব্যাপ্তি।


কি দারুন. ঐটা চিত্তাকর্ষক!
কনর ও'ব্রায়েন

হুম মানুষ, আমি ঠিক এই সমাধান চিন্তা গলফ খনি করার চেষ্টা করার সময় এইমাত্র ... + 1
ETHproductions

1
এটি 25 টি অক্ষর সহ আরও সংক্ষিপ্ত: f=(a,b)=>a<b?a*f(a+1,b):1
ম্যাথিয়াস বার্টসচার


7

জাপট , 7 বাইট

এর মতো সহজ চ্যালেঞ্জগুলি সর্বদা মজাদার। :)

UoV r*1

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

ব্যাখ্যা

UoV r*1  // Implicit: U = first input, V = second input
UoV      // Generate range [U,V).
    r*1  // Reduce by multiplication, starting at 1.

বাহ, এখন পর্যন্ত অন্যান্য উত্তরের তুলনায় এটি করুণ মনে হচ্ছে। আমাকে আরও কিছু সময় কাজ করতে হবে ...


ব্যাখ্যা? : 3
কনার ও'ব্রায়েন

@ সিও'বাউ করেছেন :)
ইটিএইচ প্রডাকশন

2
বুট, 5 কে রেপ! : ডি
ইটিএইচ প্রডাকশন

6

হাস্কেল, 19 17 বাইট

a#b=product[a..b]

ব্যবহারের উদাহরণ: 2#5-> 120


আপনি খ অন্তর্ভুক্ত চয়ন করার অনুমতি দেওয়া হয়।
xnor

@ এক্সনর: ওপস, অবশ্যই এটি উপেক্ষা করা উচিত। ধন্যবাদ!
নিমি

আমি নিশ্চিত নই, তবে আমি মনে করি পিপিসিজি উত্তর হিসাবে প্রকাশের অনুমতি দেয় allows
গর্বিত হাসেলেলার

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

5

প্রোলোগ, 45 বাইট

কোড:

p(A,B,C):-A=B,C=A;D is A+1,p(D,B,E),C is A*E.

ব্যাখ্যা:

p(A,B,C):-A=B,      % A is unifiable with B
          C=A       % Unify C with A
          ;         % OR
          D is A+1, % D is the next number in the range
          p(D,B,E), % Recurse on the range after the first element
          C is A*E. % The result C is the product of the first element and the result 
                      of the recursion

উদাহরণ:

p(5,10,X).
X = 151200

p(-4,-1,X).
X = 24

5

অক্টাভা, 15 বাইট

@(a,b)prod(a:b)

সহজবোধ্য। অন্তর্ভুক্ত ব্যাপ্তি ব্যবহার করে।


5

সিজেম, 6 19 18 10 বাইট

গল্ফিংয়ে সহায়তার জন্য ডেনিস এবং রেটোকোরাদিকে ধন্যবাদ!

q~1$-,f+:*

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

হিসাবে ইনপুট লাগে a b। গণনা করে PI [a,b)

নোট: এই প্রোগ্রাম 6 দীর্ঘ বাইট, এবং শুধুমাত্র কাজ করে aএবং bইতিবাচক।

q~,>:*

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

হিসাবে ইনপুট লাগে a b। গণনা করে PI [a,b)


q~{_)_W$<}g;]:*তিনটি বাইট সংরক্ষণ করে
ডেনিস

4
q~1$-,f+:*10 বাইট জন্য।
রেটো কোরাডি

5

বাশ + জিএনইউ ইউটিলিটিস, 13

seq -s* $@|bc

ধরে নেওয়া যায় যে বর্তমান ডিরেক্টরিতে কোনও ফাইল নেই যার নাম দিয়ে শুরু হয় -s। শুরু এবং শেষ (সমেত) কমান্ড-লাইন প্যারামিটার হিসাবে পাস করা হয়।

এটি কেবল শুরু থেকে শেষ পর্যন্ত ক্রম উত্পাদন করে, পৃথক করে পৃথক করা হয় *, তারপরে bcপাটিগণিত মূল্যায়নের জন্য পাইপগুলিতে ।


2
তবে আমি আমার সমস্ত ফাইল দিয়ে শুরু করি -s! : পি
কনর ও'ব্রায়েন

5

এমএটিএল (প্রতিযোগিতা না করা), 4 বাইট

অন্তর্ভুক্ত ব্যাপ্তি

2$:p

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

ব্যাখ্যা

2$: % Implicitly grab two input arguments and create the array input1:input2
p   % Take the product of all array elements

এই পুরো এমএটিএল জিনিসটি হ্যাং পেতে আমাকে সহায়তা করার জন্য @ ডন মুয়েসিলিকে ধন্যবাদ জানাই।


চমৎকার উত্তর! যেহেতু ভাষা চ্যালেঞ্জ পোস্ট করে, তাই আপনি উত্তর পোস্ট করতে পারেন তবে সম্ভবত আপনি এটি জয়ের
লুইস মেন্ডো

নয় &:pএকটি বাইট খাটো?
ডিজেএমসিএমহেম

@ড্রগ্রাইনএগ্রস্যান্ডআরনম্যান হ্যাঁ, তাই আমি অনুমান করি যে এটি কোনওভাবেই প্রতিদ্বন্দ্বিতা করে যাতে আমি এটি সংক্ষিপ্ত করে তুলতে পারি, তবে আমি আমার উত্তরটি পোস্ট করার সময় নেই&
স্যুভার



4

সি, 32 বাইট

এর জন্য [a,b):

f(a,b){return a-b?a*f(a+1,b):1;}

জন্য [a,b](Katenkyo এর প্রস্তাবনাতে, 32 আবার বাইট):

f(a,b){return a<b?a*f(a+1,b):b;}

1
আমি সি তে অন্য একটি সমাধান খুঁজে পেয়েছি, যদি আপনি আগ্রহী হন তবে এটি 32 বাইটও রয়েছে f(a,b){return a<b?a*f(a+1,b):b;}। :)
কাটেনকিও

এর a=...পরিবর্তে return...

4

05 এ বি 1 , 2 বাইট (প্রতিযোগী নয়)

কোড:

ŸP

ব্যাখ্যা:

Ÿ   # Inclusive range [input, ..., input]
 P  # Total product of the list
    # Implicit printing top of the stack

4

জে, 8 বাইট

[:%/!@<:

ব্যবহার

>> f =: [:%/!@<:
>> f 10 5
<< 15120

>>STDIN কোথায় এবং STDOUT <<হয়।

ব্যাখ্যা

এটি ∏[a,b]হিসাবে গণনা (b-1)!/(a-1)!

minus_one =: <:
factorial =: !
of        =: @
monadic   =: [:
division  =: %/
f =: monadic division factorial of minus_one

পূর্ববর্তী 13-বাইট সংস্করণ

আমি যখন Jএমনকি কোন ধারণা ছিল না যখন লেখা : পি

*/(}.[:>:i.)/

ব্যবহার:

   */(}.[:>:i.)/ 5 10
30240

ব্যাখ্যা:

*/            NB. multiply over
  (
   }.         NB. remove [the first x items] from
     [:>:     NB. increment all of
         i.   NB. the numbers from 0 to [y-1]
           )
            / NB. insert the above code into the following numbers

বিস্তারিত ব্যাখ্যা:

i.10 would produce 0 1 2 3 4 5 6 7 8 9

>:i.10 would make it 1 2 3 4 5 6 6 7 8 9 10

the [: is used to make the ">:" take only one argument (a monad)
because if it takes two arguments, it is a different function.
so [:>:i.10 becomes 1 2 3 4 5 6 7 8 9 10

}. means take away the first [x] items from the following list,
so 5}.1 2 3 4 5 6 7 8 9 10 becomes 6 7 8 9 10

the two slashes "/" in the code are actually the same
for example, */6 7 8 9 10 becomes 6*7*8*9*10

1
দুর্দান্ত ব্যাখ্যা!
wizzwizz4

2
আপনি ব্যবহার করতে পারেন [:*/]+i.@-জন্য 10 বাইট আপনি পরিসীমা নিতে [a, b)হিসাবে b ([:*/]+i.@-) aযেমন যে 10 ([:*/]+i.@-) 5আউটপুট 15120
মাইল

@ মাইলস উত্তরটি লেখা হয়েছিল যখন আমি কিছুতেই জানতাম না J: পি
লিকি নুন

উভয় তর্ক ইতিবাচক না হলে আপনার 8 বাইট সমাধান কাজ করবে না।
ডেনিস

4

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

আমি বিশ্বাস করতে পারি না আমরা কেউ জেএস গল্ফরা পুনরাবৃত্তি ব্যবহার করার কথা ভাবি নি ...

a=>F=b=>a-b?b*F(b-1):a

যেমন একটি ভেরিয়েবলকে বরাদ্দ করুন var q = a=>F=b=>a-b?b*F(b-1):a, তারপরে কল করুন q(2)(5)


4

ব্র্যাচল্যাগ , 3 বাইট

⟦₃×

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

ইনপুট হিসাবে পাস করা হয় [A,B]। ব্যাপ্তিটি বি এর একচেটিয়া, তবে এর সাথে প্রতিস্থাপন করে অন্তর্ভুক্ত করা যেতে পারে


3
পিপিসিজিতে আপনাকে স্বাগতম! আজকাল ভাষা কখন তৈরি হয় তা বিবেচনা করে না, সুতরাং এই উত্তরটি পুরোপুরি প্রতিযোগিতামূলক। আশা করি আপনি আপনার এখানে অবস্থান করাটা উপভোগ করেছেন!
কনর ও'ব্রায়েন

আহ, জেনে ভাল! আমি অনুমান করি ভোটের মাধ্যমে সাজানো উত্তরগুলি সহ আমি বহু পুরানো চ্যালেঞ্জগুলি দেখছি।
অবিকৃত স্ট্রিং

@ আনলেলেটেডস্ট্রিংয়ে যাইহোক, আপনি যদি এই প্রতিদ্বন্দ্বী বার্তাগুলি দেখেন তবে সেগুলি সম্পাদনা করা একেবারে ঠিক।
ফল ফলবান


3

পাইথন, 52 বাইট

খুব সাধারণ কোড; কিছুটা দীর্ঘ

def p(a,b):
 t=1
 for i in range(a,b):t*=i
 return t

3

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

@ সি ও ওবিকে ধন্যবাদ 4 বাইট সংরক্ষণ করা হয়েছে ʀɪᴇɴ

(a,b)=>[...Array(b-a)].reduce(x=>x*a++,1)

একটু বেশি লম্বা মনে হচ্ছে ...

(a,b)=>           // Define an anonymous function that takes parameters a and b, and returns:
[...Array(b-a)]   // An array of b-a items,
.reduce(          // Reduced by
x=>x*a++          //  multiplying each item with the previous,
,1)               //  starting at 1.

ওই কাজগুলো? গৌরব! আমি মনে করি না yহ্রাস ম্যাপিংয়ের জন্য আপনার প্রয়োজন , তাই এটি কেটে ফেলুনx=>x*a++
কনর ও'ব্রায়েন

@ CᴏɴᴏʀO'Bʀɪᴇɴ ধন্যবাদ, সেই কৌশলটি সত্যিই ভাল কাজ করে!
ইটিএইচ প্রডাকশনস

2
আপনার শেষে একটি সেমিকোলন যুক্ত করা উচিত। স্কোর জন্য।
সিড্রাস

3

জুলিয়া, 16 বাইট

f(a,b)=prod(a:b)

নোট: যদি পরিসর বস্তুর a:b(যা আক্ষরিক একটি শুরুর মান এবং একটি স্টপ মান হিসাবে সংরক্ষিত হয়, এবং অভ্যন্তরীণভাবে একটি মান "প্রতিটি পদক্ষেপ 1 দ্বারা বৃদ্ধি" অন্তর্ভুক্ত) ইনপুট হিসাবে অনুমতি দেওয়া হয় তাহলে, শুধুমাত্র 4 বাইট প্রয়োজন: prod


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.