অনুক্রমিক গুণ


12

আপনার উদ্দেশ্য হ'ল একটি প্রোগ্রাম লিখুন যা কোনও ইনপুট নেয়, এবং যখন এক সাথে শৃঙ্খলাবদ্ধ সময় হয়, তখন N"ক্রমিক ক্রমবৃদ্ধি" সম্পাদন করে। অনুক্রমিক গুণটি কী, আপনি জিজ্ঞাসা করতে পারেন? এটি বীজের সাথে aএইভাবে সংজ্ঞায়িত একটি ক্রম :

f(0) = a
f(n+1) = f(n)*(f(n)-1)

তো, চলুন a = 5। সুতরাং, f(0) = 5, f(1) = f(0)*(f(0)-1) = 5*4 = 20, এবং f(2) = f(1)*(f(1)-1) = 20*19 = 380

যদি আপনার প্রোগ্রামটি ছিল ABC, তবে ABCইনপুট aএবং আউটপুট নেওয়া উচিত f(1)। প্রোগ্রামের ABCABCআউটপুট f(2)ইত্যাদি হওয়া উচিত Your

এটি একটি কোড-গল্ফ তাই বাইটের মধ্যে সবচেয়ে সংক্ষিপ্ত প্রোগ্রাম। স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ করা হয়েছে।

উত্তর:


13

জেলি, 3 বাইট

×’$

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

কিভাবে এটা কাজ করে

×’$    Main link (or part thereof). Argument (initially input): n

 ’     Compute n - 1.
×      Multiply n by (n - 1).
  $    Combine the previous two atoms into a monadic quicklink.

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


4

সিরিয়াসলি, 4 বাইট

,;D*

ব্যাখ্যা:

,;D*
,     push input (NOP once input is exhausted)
 ;D   dupe and push n-1
   *  multiply
      (implicit output at EOF)

ডেনিসের জেলি উত্তরের মতো , এই প্রোগ্রামের nসময়গুলি পুনরাবৃত্তি করার ফলে এটি চলমান nসময়গুলিতে আসবে । আবশ্যক স্ট্যাক-ভিত্তিক ভাষাগুলির অনেক সুবিধাগুলির মধ্যে একটি।

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


4

এমএটিএল, 3 বাইট

tq*

আপনি এটি অনলাইন চেষ্টা করতে পারেন ! সিরিয়াসলি এবং জেলি উত্তরগুলির সাথে মূলত মিল। প্রথমত, এটি স্ট্যাকের শীর্ষটি নকল করে (স্ট্যাকটি ফাঁকা থাকলে প্রথমবারের জন্য ইনপুট পান)। স্ট্যাকের শীর্ষগুলি হ্রাস করে এবং পরবর্তী ইনপুট, বা ফলাফল দিতে দুটি উপাদানকে গুণ করে।


4

পাইথন 3, 56 বাইট

+1if 0else 0
try:n
except:n=int(input())
n*=n-1
print(n)

আউটপুট-ওভার রাইটিং কৌতুক ছাড়া কেবল একটি সমাধান চেয়েছিলেন। পেছনের নতুন লাইনের অভাব গুরুত্বপূর্ণ।


প্রথম লাইনটি কি সব 1 নম্বর?
সিডরাস

@ সিয়াদ্রস নং, সিনট্যাক্স হাইলাইটারটি পাইথন পার্সারের সাথে মেলে না, যা সংখ্যাটি আঘাত করলে ifএবং সংখ্যাটি পার্স করা বন্ধ করে দেয় else
xnor


@ mbomb007 এটি বেশ কার্যকর হবে না, মুদ্রণটি সঠিকভাবে পরিচালিত হয় না এবং আপনি কমপক্ষে একবার কনটেনেট করলে আপনি অতিরিক্ত আউটপুট পান।
FryAmTheEggman

আহ, সুতরাং যে অতিরিক্ত আউটপুট ছিল কি।
mbomb007


3

pl, 5 বাইট

_▼•=_

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

আমি যদি অলস না হয়ে "অ্যাসাইনমেন্ট _ _" প্রয়োগ না করতাম তবে 4 বাইট হত ...

ব্যাখ্যা

_▼•=_

_       push _ (input var)
 ▼      decrement last used var (_)
  •     multiply, since it is off by one it auto-adds _ to the arg list
   =_   assign result to _


2

গল্ফস্ক্রিপ্ট, 5 বাইট

~.(*`

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

ডি-গল্ফড এবং মন্তব্য করেছে:

~    # Eval the input to turn it from a string into a number.
.    # Duplicate the number.
(    # Decrement one of the copies by one.
*    # Multiply the copies together.
`    # Un-eval the number, turning it back into a string.

গল্ফস্ক্রিপ্ট ইন্টারপ্রেটার স্বয়ংক্রিয়ভাবে ইনপুটটি পড়ে এবং স্ট্যাকের উপরে রাখে, তবে একটি স্ট্রিং হিসাবে, সংখ্যা হিসাবে নয়। সুতরাং, আমাদের সাথে ইনপুটটি একটি সংখ্যায় ~রূপান্তরিত করতে হবে এবং এরপরে আবার স্ট্রিংফাই করা উচিত `। শেষে, দোভাষা স্ট্যাকের স্ট্রিংযুক্ত নম্বরটি স্বয়ংক্রিয়ভাবে মুদ্রণ করবে।

(এখন, যদি চ্যালেঞ্জ পুনরুক্তি করতে হয়েছে f(n+1) = f(n)*(-f(n)-1), আমি কাজ করেছি পারে যে দিয়ে 4 বাইট ~.~*। Figuring আউট কীভাবে এবং কেন যে কাজ একটি ব্যায়াম যেমন ছেড়ে দেওয়া হয়। :)


2

জাভাস্ক্রিপ্ট আরপিএল, 25 20 বাইট

a=prompt();
a*=a-1//

একটি আরপিএল অপসারণে কাজ করবে


কিভাবে এই আউটপুট উত্পাদন করে?
ডেনিস

কনসোলে আমি এটি ঠিক করা প্রয়োজন।
কনর ও'ব্রায়েন

কনসোলটি ঠিক নেই, আমি
জেএসের

উহু! ফ্যান্টাস্টিক !!
কনর ওব্রায়েন

2
@ সিড্রাস স্পষ্টতই মেটা sensকমত্য অনুসারে (যা আমি বুঝতে পারি নি যে এটি একটি জিনিস ছিল), আরপিএল-ভিত্তিক পরিবেশগুলি এতক্ষণ ঠিক আছে যে এটি একটি আরপিএল হিসাবে নির্দিষ্ট করা হয়েছে।
অ্যালেক্স এ।

2

লুয়া, 35 18 বাইট

এটি এমন কিছু যা লুয়া একবারের জন্য খুব সহজেই করতে পারে!

সম্পাদনা করুন: আমি যখন এটি করেছি তখন থেকে আমি লুয়াতে প্রচুর জিনিস আবিষ্কার করেছি, তাই আমি এটি আপডেট করছি :)

print(...*(...-1))

...প্যাকড কমান্ড-লাইন আর্গুমেন্ট রয়েছে, ইনলাইনিং এ ক্ষেত্রে এটি প্রথম মানটি ব্যবহার করবে কারণ এটি ব্যয় করার অনুমতি দেওয়া হবে না, ফলস্বরূপ কেবল মুদ্রণের ফলে n*(n-1)


1

Y , 7 বাইট

jzC:t*!

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

এটি এইভাবে কাজ করে: jসংখ্যার ইনপুট নেয়। zনিখুঁত মুদ্রণ সক্রিয়। Cএকটি নতুন লিঙ্ক শুরু। :স্ট্যাকের মানটি নকল করে, এবং tএটি হ্রাস করে, আমাদের সাথে রেখে [a a-1]। তারপরে, আমরা [a*a-a]পেয়েছি *!পরবর্তী কমান্ড এড়িয়ে যায়; ইওএফ-তে, এটি কিছুই করে না। যখন এক সাথে বেঁধে রাখা হয়, এটি ইনপুট কমান্ডটি এড়িয়ে যায় এবং প্রক্রিয়াটি আবার শুরু হয়।



1

𝔼𝕊𝕄𝕚𝕟, 5 টি চর / 7 বাইট

ïׇï;

Try it here (Firefox only).

আমি কি সত্যিই এটি ব্যাখ্যা করতে হবে? ওহ ভাল, এখানে যায় ...

ব্যাখ্যা

এটি মূলত জেএসে মূল্যায়ন করে input*=--input;


1

পার্ল, 23 বাইট

l;$_|=<>;$_*=~-$_;print

বিকল্প সংস্করণ, 10 বাইট

$_*=~-$_;

এর জন্য -pসুইচ দরকার । প্রশ্নে এটি সুষ্ঠু খেলা কিনা তা আমি নিশ্চিত নই ।


1

হাস্কেল, 14 11 বাইট

(*)=<<pred$

ব্যবহারের উদাহরণ

Prelude> (*)=<<pred$5
20
Prelude> (*)=<<pred$(*)=<<pred$5
380
Prelude> (*)=<<pred$(*)=<<pred$(*)=<<pred$5
144020

সম্ভবত এটি একটি সঠিক ফাংশন নয়। আপনি যদি নিটপিক করছেন তবে আপনি (*)=<<pred$id14 বাইটের জন্য (<শেষদিকে একটি স্থান রয়েছে) দিয়ে যেতে পারেন ।

সম্পাদনা করুন: @ জগারব ফাংশন মোনাড ব্যবহার করে ফাংশনটি পুনরায় লিখেছেন এবং 3 বাইট সংরক্ষণ করেছেন। ধন্যবাদ!


(*)=<<pred$3 বাইট সঞ্চয় এছাড়াও, এটি লক্ষ করা উচিত যে এটি আসলে কোনও ফাংশন সংজ্ঞায়িত করে না, এবং ইনপুট মানটি অবশ্যই এটির পরে সরাসরি স্থাপন করা উচিত।
Zgarb

@ জগারব: ধন্যবাদ! যোগ করা idএটি একটি সঠিক ফাংশন করে তোলে। আমি আমার উত্তরে একটি নোট রেখেছি।
নিমি


1

টিআই-বেসিক, 6 5 বাইট

টিআই -83 / 84 ক্যালকুলেটরগুলিতে চালিত হয়

:Ans²-Ans

এই প্রোগ্রামটি নিয়মিত Doneপাঠ্যের পরিবর্তে কোনও প্রোগ্রামের শেষ লাইনে একটি অভিব্যক্তি মুদ্রিত হওয়ার কারণে কাজ করে ।


1
5 বাইট::Ans²-Ans
lirtosiast

1

ম্যাথক্যাড, 39 "বাইট"

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

ব্যবহারকারীর দৃষ্টিকোণ থেকে, ম্যাথক্যাড কার্যকরভাবে একটি 2 ডি হোয়াইটবোর্ড, বাম থেকে ডান, উপরে থেকে নীচে থেকে মূল্যায়ন করা হয়। ম্যাথক্যাড একটি প্রচলিত "পাঠ্য" ইনপুট সমর্থন করে না, পরিবর্তে একটি অভিব্যক্তি, পাঠ্য, প্লট বা উপাদান সন্নিবেশ করানোর জন্য পাঠ্য এবং বিশেষ কী / সরঞ্জামদণ্ড / মেনু আইটেমগুলির সংমিশ্রণটি ব্যবহার করে। উদাহরণস্বরূপ, সংজ্ঞা অপারেটর লিখতে ":" টাইপ করুন (স্ক্রিনে ": =" হিসাবে দেখানো হয়েছে), "[" একটি অ্যারে সূচক লিখতে বা "সিটিএল-]" লিখুন কিছুক্ষণ লুপ অপারেটর (এর জন্য স্থানধারীদের অন্তর্ভুক্ত) নিয়ন্ত্রণের শর্ত এবং একটি শরীরের প্রকাশ)) উপরের চিত্রটিতে আপনি যা দেখছেন তা হুবহু ইউজার ইন্টারফেসে এবং "টাইপ করা" হিসাবে প্রদর্শিত হচ্ছে।

গল্ফিংয়ের উদ্দেশ্যে, "বাইট" গণনাটি কোনও এক্সপ্রেশন প্রবেশের জন্য প্রয়োজনীয় কীবোর্ড ক্রিয়াকলাপের সমতুল্য সংখ্যা।

একটি জিনিস সম্পর্কে আমি আরও কম নিশ্চিত ("বাইট" সমতুল্য দৃষ্টিকোণ থেকে) কীভাবে একটি নতুন অঞ্চল তৈরি করা গণনা করা যায় (যেমন, a: = 5 বা k: = 0..n-1)। আমি প্রতিটি পদক্ষেপকে একটি নতুন অঞ্চলে নতুন লাইনের সমান বলে সমান করেছি এবং তাই 1 বাইট (বাস্তবে আমি যেখানে অঞ্চলটি চাই সেখানে ক্লিক করার জন্য মাউসটি ব্যবহার করি)।

আমি কেবল সক্রিয় বিবৃতিগুলি অন্তর্ভুক্ত করেছি, মন্তব্যগুলি নয় এবং আমি এ এবং এন ইনপুটগুলির জন্য প্রতিটি 2 বাইট অন্তর্ভুক্ত করেছি তবে মানগুলি নিজেরাই নেই (উদাহরণে 5 এবং 7)।


0

হাস্কেল, 72 বাইট

এই চ্যালেঞ্জটি হাস্কেলের পক্ষে বন্ধুত্বপূর্ণ নয় .. তবে, ইনপুটটি অচল অবস্থায় থাকলে এবং জিএইচসিআইতে কোডটি কার্যকর করা হলে নিম্নলিখিতগুলি কাজ করে:

(\x->if odd x then let y=until((>x).(10^))(+1)0 in y*(y-1)else x*(x-1))$

ব্যাখ্যা:

ইউনারি সর্বদা অদ্ভুত, তাই প্রথম অ্যাপ্লিকেশনটি দশমিক রূপান্তরিত হয়। x*(x-1)সর্বদা সমান, তাই অন্যথায় এটি ফিরে আসে x*(x-1), যেখানে xইনপুট where যেহেতু হাস্কেল &1দৃ strongly়ভাবে টাইপযুক্ত এবং 'বিশেষ' চিহ্নগুলি এর মতো বলা যায় না , আমি বিশ্বাস করি যে এটি হ্যাসকেলে এটি সম্পূর্ণ করার একমাত্র উপায়, যদি না কেউ বৈশ্বিক ভেরিয়েবল বা এমনকি একটি বিজোড় ইনপুট ফর্ম ব্যবহার করে।


0

সি ++ (জিসিসি) , 173/176 বাইট

উভয় সংস্করণ শেষে একটি গুরুত্বপূর্ণ নিউলাইন আছে।

ম্যাক্রো সংস্করণ, 173 বাইট

#ifndef M
#define M(a,b)a##b
#define W(z,x)M(z,x)
#define B int W(m,__LINE__)=x++
#include<iostream>
int x,n;int main(){for(std::cin>>n;x--;)n*=n-1;std::cout<<n;}
#endif
B;

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

টেমপ্লেট সংস্করণ, 176 বাইট

কিছুটা বেশি সি ++ ইশ:

#ifndef B
#define B template
#include<iostream>
int x,n;B<int N>struct A{static int i;};int main(){for(std::cin>>n;x--;)n*=n-1;std::cout<<n;}
#endif
B<>int A<__LINE__>::i=x++;

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


0

বার্লেস্ক - 5 বাইট

J?d?*

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