ফ্যাকটোরিয়াল এর বিপরীত গণনা করুন


30

সংক্ষিপ্ততম কোডটি লিখুন যা ইনপুট হিসাবে 1 টিরও বেশি সংখ্যক প্রকৃত সংখ্যা নেবে এবং এর ইতিবাচক বিপরীত ফ্যাক্টরিয়াল আউটপুট দেবে। অন্য কথায়, এটি "এই সংখ্যার সমান সংখ্যার ফ্যাক্টরিয়াল কি?" প্রশ্নের উত্তর দেয়। এখানে বর্ণিত হিসাবে কোনও আসল সংখ্যার ক্ষেত্রে ফ্যাক্টরিয়ালটির সংজ্ঞাটি প্রসারিত করতে গামা ফাংশনটি ব্যবহার করুন

উদাহরণ স্বরূপ:

input=6 output=3 
input=10 output=3.390077654

কারণ 3! = 6এবং3.390077654! = 10

বিধি

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

আমি এখানে একটি কাজের উদাহরণ তৈরি করেছি । একবার দেখুন।


2
এটি বিশেষত শূন্য এবং নেতিবাচক ইনপুটগুলি কভার করতে আরও কিছু পরীক্ষার কেস ব্যবহার করতে পারে।
পিটার টেলর

আমি সম্পাদনা করেছি যে ইনপুটটি 1 এর চেয়ে বেশি হওয়া উচিত কারণ অন্যথায় বহুবর্ণের উত্তর থাকতে পারে।
জেনস রেন্ডার্স

1
এক্ষেত্রে একাধিক উত্তর থাকতে পারে যদি না আপনি যদি প্রয়োজনও যোগ করেন তবে আউটপুট ১ এর চেয়ে বেশি হওয়া উচিত
পিটার টেলর

24 এর ইনপুট করার সময় আপনার কাজের উদাহরণটি 3.99999 দেয় So তাহলে কি এই জাতীয় সমাধান গ্রহণযোগ্য?
রুবিক

হ্যাঁ কারণ এটিকে 4 থেকে 5 দশমিক স্থান সঠিক হিসাবে দেখা যায়
জেনস রেন্ডাররা

উত্তর:


13

জাভাস্ক্রিপ্ট (116)

এখানে কালো যাদু! কয়েক মিলিসেকেন্ডে ফলাফল দেয় ।
শুধু প্রাথমিক গণিত ফাংশন ব্যবহৃত: ln, pow,exponential

x=9;n=prompt(M=Math);for(i=1e4;i--;)x+=(n/M.exp(-x)/M.pow(x,x-.5)/2.5066/(1+1/12/x+1/288/x/x)-1)/M.log(x);alert(x-1)

এটা খুব খারাপ, ক্ষীর codegolf সমর্থিত নয় কিন্তু মূলত, আমি একটি কোডেড নিউটন সমাধানকারী জন্য f(y)=gamma(y)-n=0এবং x=y-1(কারণ x!হয় gamma(x+1)) এবং গামা এবং digamma কাজকর্মের জন্য অনুমান।

গামা আনুমানিকতা উত্তেজনাপূর্ণ আনুমানিকতা
দিগামা আনুমানিকতা ব্যবহার ইউলার ম্যাক্লাউরিন সূত্রটি
দিগামা ফাংশনটি গামা ফাংশনের ডেরাইভেটিভ যা গামা ফাংশন দ্বারা বিভক্ত:f'(y)=gamma(y)*digamma(y)

অসমাপ্ত:

n = parseInt(prompt());
x = 9; //first guess, whatever but not too high (<500 seems good)

//10000 iterations
for(i=0;i<10000;i++) {

  //approximation for digamma
  d=Math.log(x);

  //approximation for gamma
  g=Math.exp(-x)*Math.pow(x,x-0.5)*Math.sqrt(Math.PI*2)*(1+1/12/x+1/288/x/x);

  //uncomment if more precision is needed
  //d=Math.log(x)-1/2/x-1/12/x/x+120/x/x/x/x;
  //g=Math.exp(-x)*Math.pow(x,x-0.5)*Math.sqrt(Math.PI*2)*(1+1/12/x+1/288/x/x-139/51840/x/x/x);

  //classic newton, gamma derivative is gamma*digamma
  x-=(g-n)/(g*d);
}

alert(x-1);

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

10 => 3.390062988090518
120 => 4.99999939151027
720 => 6.00000187248195
40320 => 8.000003557030217
3628800 => 10.000003941731514

খুব সুন্দর উত্তর যথেষ্ট পরিমাণে এটি প্রয়োজনীয় যথাযথতাটি পূরণ করে না এবং এটি কেবল 706 এর চেয়ে কম সংখ্যার জন্য কাজ করে
জেনস রেন্ডারস

@ জেনারেন্ডারস, ভাল, আমি নিউটন সলভারটির কিছু পুনরাবৃত্তি যুক্ত করেছি, প্রাথমিক অনুমান এবং গামা ফাংশনের জন্য আরও ভাল অনুমানের পরিবর্তন করেছি। এটি এখন নিয়ম মাপসই করা উচিত। ঠিক আছে যদি আমাকে এখনই আসুন :)
মাইকেল এম।

হ্যাঁ, এখন এটি নিখুঁত, আমি এটিকে ভোট দিয়েছি :)
জেনস রেন্ডারস

1
আপনি 1 চর সংরক্ষণ করতে পারেন:n=prompt(M=Math)
ফ্লোরেন্ট

Code 10 ^ {10 ^ 6} as এর মতো একটি বৃহত সংখ্যায় আপনার কোড চালানোর চেষ্টা করুন এবং নিশ্চিত করুন যে আপনি কোনও পূর্ণসংখ্যার ফলাফল পেয়েছেন
ডেভিড জি স্টর্ক ১৯

13

গণিত - 74 54 49

সঠিক উপায় হবে

f[x_?NumberQ]:=NIntegrate[t^x E^-t,{t,0,∞}]
x/.FindRoot[f@x-Input[],{x,1}]

যদি আমরা কেবল টেস্টটি ফেলে রাখি তবে এটি ?NumberQএখনও কার্যকর হবে, তবে কিছু বাজে সতর্কতা নিক্ষেপ করবে, যা আমরা প্রতীকী ইন্টিগ্রেশনে সরে গেলে এটি চলে যাবে Integrate, তবে এটি অবৈধ (আমার ধারণা) হবে, কারণ ফাংশনটি স্বয়ংক্রিয়ভাবে Gammaফাংশনে রূপান্তরিত হবে । এছাড়াও আমরা বাহ্যিক ফাংশন থেকে সেভাবে মুক্তি পেতে পারি।

যাই হোক

x/.FindRoot[Integrate[t^x E^-t,{t,0,∞}]-Input[],{x,1}]

যথাযথ ইনপুট দিয়ে হ্যাক করার জন্য, কেবল ফাংশন সংজ্ঞা (ম্যাটল্যাবকে জিততে দিতে পারে না)

x/.FindRoot[Integrate[t^x E^-t,{t,0,∞}]-#,{x,1}]&

যদি অন্তর্নির্মিত ফ্যাক্টরিয়ালটি অনুমোদিত ছিল

N@InverseFunction[#!&]@Input[]

উপরেরটি কোনও পূর্ণসংখ্যা দেয় না (যা সত্য সত্য ঘটনাটির পক্ষে যুক্তি)। নিম্নলিখিতগুলি করে:

Floor[InverseFunction[Gamma][n]-1]

আহ্ those সমস্ত বিল্ট-ইন ফাংশন! আমি মনে করি না এটি একইভাবে বাদ দিয়ে পরাতে পারে।
রুবিক

4
গণিতের স্টাফের জন্য ম্যাথাম্যাটিক এতটা অন্যায়! : ডি
মাইকেল এম

1
নাম নিজেই ম্যাথামেটিকাল থেকে
Dadan

হয় NumberQপ্যাটার্ন পরীক্ষা প্রয়োজনীয়? বা পেরেন্স ভিতরে E^(-t)? এটি কি প্রতারণা NIntegrateকরছে Integrate? সম্ভবত ... :)
অরিয়ান

এটি একটি আসল চ্যালেঞ্জে পরিণত হচ্ছে;)
মিম্বসবাউস

6

ised: 72 46 টি অক্ষর

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

@4{:.1*@+{@3[.,.1,99]^x:*exp-$3}:}@6{:@{$4::@5avg${0,1}>$2}$5:}@0,0@1,99;$6:::.

এখানে, মেমোরি স্লট $ 4 একটি ফ্যাক্টরিয়াল ফাংশন, মেমোরি স্লট $ 6 দ্বিখণ্ডনের ফাংশন এবং মেমরি স্লট input 2 ইনপুটতে সেট করা হবে বলে আশা করা হচ্ছে (এই কোডটি সোসাইং করার আগে দেওয়া হয়েছে)। স্লট $ 0 এবং $ 1 হল দ্বিখণ্ডনের সীমানা। কল উদাহরণ (উপরের কোডটি ফাইলটিতে রয়েছে ধরে নেওয়া inversefactorial.ised)

bash> ised '@2{556}' --f inversefactorial.ised
556
5.86118

অবশ্যই, আপনি বিল্টিন ব্যবহার করতে পারেন! অপারেটর, এক্ষেত্রে আপনি 45 টি অক্ষরে নামবেন

@6{:@{{@5avg${0,1}}!>$2}$5:}@0,0@1,99;$6:::.

সাবধান, অপারেটর নজরে কখনও কখনও অদ্ভুত হয়।

সম্পাদনা: ফাংশনগুলি সেভ করার পরিবর্তে ইনলাইন করার কথা মনে আছে। ম্যাথমেটিকাকে characters২ টি চরিত্রে পরাজিত করুন!

@0,0@1,99;{:@{{:.1*@+{@3[.,.1,99]^x:*exp-$3}:}::@5avg${0,1}>$2}$5:}:::.

এবং ব্যবহার! অন্তর্নির্মিত আপনি 41 পাবেন।


এক বছরের বিলম্বের আপডেট:

আমি কেবল বুঝতে পেরেছিলাম যে এটি অত্যন্ত অদক্ষ। গল্ফড-ডাউন থেকে 60 টি অক্ষর:

@0#@1,99;{:@{.1*@3[.,.1,99]^@5avg${0,1}@:exp-$3>$2}$5:}:::.

যদি ইউটিএফ -8 ব্যবহার করা হয় (ম্যাথমেটিকা ​​এটিও করে), আমরা 57 এ পৌঁছে যাই:

@0#@1,99;{:@{.1*@3[.,.1,99]^@5avg${0,1}·exp-$3>$2}$5:}∙.

কিছুটা ভিন্ন পুনর্লিখন এটিকে 46 (বা বিল্টিন ব্যবহার করে 27) কেটে ফেলতে পারে:

{:x_S{.5@3[.,.1,99]^avgx·exp-$3*.1<$2}:}∙∓99_0

উত্তরটি দু'বার মুদ্রণ করে আপনি ঠিক থাকলে শেষ দুটি অক্ষর মুছে ফেলা যায়।


আমি যদি কাউকে এটিকে মারতে দেখি তবে আমি অবাক হই: O
জেনস রেন্ডার্স

@ জেনারেন্ডারস: আমি সবেমাত্র করেছি;)
মিমিবাউস

নির্ভুলতা সম্পর্কে আলোচনাটি স্পষ্ট করতে: এটি .1 (সংহতকরণ পদক্ষেপ) এবং 99 (সংহতকরণ সীমা) দ্বারা সেট করা হয়েছে। বাইসেকশন মেশিনের নির্ভুলতায় যায়। দ্বিগুণ সীমা @ 1,99 টি 99 এ রাখা যাবে যদি না আপনি উপরের নম্বরগুলিকে ইনপুট করতে চান (99!)
orion

@mmumboss আবার আপনি পেয়েছেন :)
কালপুরুষ

5

ম্যাটল্যাব 54 47

আমি যদি সঠিক চ্যালেঞ্জগুলি বেছে নিই তবে ম্যাটল্যাব গল্ফ করার জন্য সত্যিই দুর্দান্ত :) আমার কোডে আমি সমীকরণের সমাধান খুঁজে পাই (ux!) = 0 যার মধ্যে আপনি ইউজার ইনপুট, এবং x পরিবর্তনশীল সমাধান করতে পারেন। এর অর্থ হ'ল u = 6 এক্স = 3 ইত্যাদির দিকে নিয়ে যাবে ...

@(x)fsolve(@(y)u-quad(@(x)x.^y./exp(x),0,99),1)

ইন্টিগ্রালের উপরের সীমাটি পরিবর্তন করে যথাযথতা পরিবর্তন করা যেতে পারে যা 99 এ সেট করা হয়েছে। এটি কমিয়ে আউটপুটটির নির্ভুলতা নীচে পরিবর্তন করবে। উদাহরণস্বরূপ 10 এর ইনপুট:

upper limit = 99; answer = 3.390077650833145;
upper limit = 20; answer = 3.390082293675363;
upper limit = 10; answer = 3.402035336604546;
upper limit = 05; answer = 3.747303578099607;

প্রভৃতি


নিয়মের ক্ষেত্রে এটি প্রয়োজনীয় হিসাবে আপনার নির্ভুলতার জন্য বিকল্পটি নির্দিষ্ট করা উচিত! "এটিতে এমন একটি সংখ্যা থাকা উচিত যা নির্বিচারে নির্ভুলতা পেতে স্বতন্ত্রভাবে বড় বা ছোট করা যায়"
জেনস রেন্ডার্স

আমি এটি ইড এবং ম্যাথেমেটিকার সমাধানগুলিতে দেখতে পাচ্ছি না? তবে আমি এটি
খতিয়ে দেখব

1
আমি ইড্ড সংস্করণে 99 নম্বরটি দেখছি, এবং গণিত সংস্করণটি যাইহোক পিটানো হয়েছে
জেনস রেন্ডার্স

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

কিন্তু inf 99 এ পরিবর্তন করার পরে এটি প্রয়োজনীয় যথাযথতাটি পূরণ করে?
রুবিক

3

পাইথন - 199 অক্ষর

ঠিক আছে, সুতরাং আপনার অনেক স্ট্যাক স্পেস এবং প্রচুর সময় প্রয়োজন, তবে ওহে, এটি সেখানে আসবে!

from random import *
from math import e
def f(x,n):
    q=randint(0,x)+random()
    z=0
    d=0.1**n
    y=d
    while y<100:
            z+=y**q*e**(-y)*d
            y+=d
    return q if round(z,n)==x else f(x,n)

আরও পুনরাবৃত্তি সহ এখানে আরও একটি পদ্ধতি।

from random import *
from math import e
def f(x,n):
    q=randint(0,x)+random()
    return q if round(h(q,0,0.1**n,0),n)==x else f(x,n)
def h(q,z,d,y):
    if y>100:return z
    else:return h(q,z+y**q*e**(-y)*d,d,y+d)

আপনি উভয়ই >>>f(10,1)10000 এর পূর্বে পুনরাবৃত্তি সীমা নির্ধারণ করে এই উভয়টিই পরীক্ষা করা যায় dec

মন্তব্যসমূহ এবং কিছু সংশোধনী অন্তর্ভুক্ত করা হচ্ছে 199 টি অক্ষরে।

from random import*
from math import*
def f(x,n):
    q=random()*x+random()
    z=y=0
    while y<100:
            z+=y**q*e**-y*0.1**n
            y+=0.1**n
    return q if round(z,n)==x else f(x,n)

2
এটি একটি code-golfপ্রশ্ন, সুতরাং আপনার সমাধানের দৈর্ঘ্য উল্লেখ করে আপনাকে সবচেয়ে সংক্ষিপ্ত উত্তর সরবরাহ করতে হবে।
ভিজিওন

একটি দুর্দান্ত পদ্ধতি তবে সমস্যাটি হ'ল আপনি গ্যারান্টি দিতে পারবেন না যে এটি কখনই উত্তরটি খুঁজে পাবে ... এছাড়াও, এটি কোডগল্ফ জও যা আপনি চরিত্রের ব্যবহারকে ন্যূনতম করার চেষ্টা করতে পারেন।
জেনস রেন্ডার্স

1
পাইথনের এলোমেলো () একটি মার্সেন টুইস্টার ব্যবহার করে যা আমি বিশ্বাস করি পাইথনের ভাসমান স্থানে চলে আসে, তাই সহনশীলতার মধ্যে কোনও উত্তর থাকলে এটি সর্বদা শেষ করা উচিত।
intx13

আপনি কি বোঝাতে চাইছেন যে এটির প্রতিটি পুনরাবৃত্তি করার আগে প্রতিটি ভাসমান মান ফেরত দেয়? আপনি যদি স্ট্যাকের ওভারফ্লোটি কাটিয়ে উঠতে সক্ষম হন তবে এই কোডের চেয়ে যদি মামলাটি বৈধ হয়
জেনস রেন্ডার্স

2
কোডটি সক্ষম, এটি কেবলমাত্র আপনার এবং আমার কাছে এটি সমাপ্তির সময় কার্যকর করার জন্য সময় বা কম্পিউটার সংস্থান নাও থাকতে পারে;)
intx13

3

পাইথন 2.7 - 215 189 টি অক্ষর

f=lambda t:sum((x*.1)**t*2.71828**-(x*.1)*.1for x in range(999))
n=float(raw_input());x=1.;F=0;C=99
while 1:
 if abs(n-f(x))<1e-5:print x;break
 F,C,x=f(x)<n and(x,C,(x+C)/2)or(F,x,(x+F)/2)

ব্যবহার:

# echo 6 | python invfact_golf.py
2.99999904633
# echo 10 | python invfact_golf.py
3.39007514715
# echo 3628800 | python invfact_golf.py
9.99999685376

নির্ভুলতা পরিবর্তন করতে: পরিবর্তন করুন 1e-5 করতে বৃহত্তর নির্ভুলতার জন্য একটি ছোট সংখ্যায় , আরও নির্ভুলতার জন্য আরও বড় সংখ্যা। আরও নির্ভুলতার জন্য আপনি সম্ভবত এর জন্য আরও ভাল মান দিতে চান e

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

বিকল্পভাবে, 50 টি অক্ষর শেভ করে if abs(n-f(x))<=10**-5: print x;breakদিয়ে প্রতিস্থাপন করুন । এটি আপনাকে আরও এবং আরও সঠিক অনুমান দিয়ে চিরকালের জন্য লুপ করবে। যদিও এটি বিধিগুলির সাথে খাপ খায় তা নিশ্চিত নয়।print x


অক্ষর গণনা করার জন্য আমি সেই সাইটটি জানতাম না। আমি সবসময় ব্যবহার করি cat file | wc -c
রুবিক

@ রবিক: ওহ, ভালো লাগবে না তারা উভয়ই মিলছে =)
ক্লাদিউ

2

ডিজি - 131 133 বাইট

o,d,n=0,0.1,float$input!
for w in(-2..9)=>while(sum$map(i->d*(i*d)**(o+ 10**(-w))/(2.718281**(i*d)))(0..999))<n=>o+=10**(-w)
print o

যেহেতু ডিজি সিপিথন বাইটকোড তৈরি করে এটি পাইথনের জন্যও গণনা করা উচিত তবে ওহ ... কিছু উদাহরণ:

$ dg gam.dg 
10
3.3900766499999984
$ dg gam.dg 
24
3.9999989799999995
$ dg gam.dg 
100
4.892517629999997
$ dg gam.dg 
12637326743
13.27087070999999
$ dg gam.dg  # i'm not really sure about this one :P it's instantaneous though
28492739842739428347929842398472934929234239432948923
42.800660880000066
$ dg gam.dg  # a float example
284253.232359
8.891269689999989

সম্পাদনা: দুটি বাইট যুক্ত করা হয়েছে কারণ এটি মনে রাখেনি যে এটির পাশাপাশি ভাসমানগুলিও গ্রহণ করা উচিত!


খনি দেয় 42.8006566063, সুতরাং তারা যথাযথতার 5 টি সংখ্যার মধ্যে মেলে!
ক্লোদিয়ু

দারুণ! আমি জানি না উপরের সীমাটি কোথায়, তবে এটি কোথাও ভেঙে যেতে হবে। জন্য 1e100এটা দেয়: 69.95780520000001জন্য 1e150এটা আউটপুট 96.10586423000002, জন্য যেহেতু 1e200এটি আপ মারতে লাগল। তবে সত্যই আমি জানি না যে এই ফলাফলগুলি নির্ভরযোগ্য কিনা ...
রুবিক

1

আর , 92 বাইট

একটি ফাংশন, gযা ইনপুট নেয় zএবং number সংখ্যার বিপরীত ফ্যাকটোরিয়াল আউটপুট করে

এ থেকে বেরিয়ে আসার মতো আরও নিশ্চয়ই রয়েছে, তাই যদি আপনি এমন কিছু দেখতে পান যা আমি উন্নত করতে পারি তবে দয়া করে আমাকে জানান।

library(pryr)
g=f(z,uniroot(f(a,integrate(f(x,x^a*exp(-x)),0,Inf)$v-z),c(0,z+1),tol=1e-9)$r)

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

অবহেলিত এবং মন্তব্য করা হয়েছে

library(pryr)                     # Add pryr to workspace
inv.factorial = f(z,              # Declare function which  
  uniroot(                        # Finds the root of
    f(a, integrate(               # The integral of 
      f(x, x^a*exp(-x))           # The gamma function
        ,0 ,Inf                   # From 0 to Infinity
      )$value-z                   # Minus the input value, `z`
    ), c(0, z+1),                 # On the bound of 0 to z+1
    tol = 1e-323                  # With a specified tolerance
  )$root                          # And outputs the root
)                                 # End function

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


0

জাভাস্ক্রিপ্ট (লুপ ব্যবহার না করে!)

এটি করার জন্য, আমি স্ট্র্লিং ফ্যাক্টরিয়াল আনুমানিকের বিপরীতটির একটি সুপরিচিত সংখ্যাসূচক অনুমানটি ব্যবহার করেছি, (এবং এটি দ্বারাও অনুপ্রেরণা পেয়েছি .. কাশি .. কাশি .. অন্য কারও কোড ...)

function f(n){
    if(n==1) return 1;
    else if(n==2) return 2;
    else if(n==6) return 3;
    else if(n==24) return 4;
    else{
        return Math.round((((Math.log(n)/Math.LN10 *  Math.log(10.) - .5 * Math.log(2.*3.141592))+(((Math.log(n)/Math.LN10 *  Math.log(10.) - .5 * Math.log(2.*3.141592))+(((Math.log(n)/Math.LN10 *  Math.log(10.) - .5 * Math.log(2.*3.141592))+(Math.log(n)/Math.LN10 *  Math.log(10.) - .5 * Math.log(2.*3.141592)))/Math.log((Math.log(n)/Math.LN10 *  Math.log(10.) - .5 * Math.log(2.*3.141592)))))/Math.log((((Math.log(n)/Math.LN10 *  Math.log(10.) - .5 * Math.log(2.*3.141592))+(Math.log(n)/Math.LN10 *  Math.log(10.) - .5 * Math.log(2.*3.141592)))/Math.log((Math.log(n)/Math.LN10 *  Math.log(10.) - .5 * Math.log(2.*3.141592)))))))/Math.log((((Math.log(n)/Math.LN10 *  Math.log(10.) - .5 * Math.log(2.*3.141592))+(((Math.log(n)/Math.LN10 *  Math.log(10.) - .5 * Math.log(2.*3.141592))+(Math.log(n)/Math.LN10 *  Math.log(10.) - .5 * Math.log(2.*3.141592)))/Math.log((Math.log(n)/Math.LN10 *  Math.log(10.) - .5 * Math.log(2.*3.141592)))))/Math.log((((Math.log(n)/Math.LN10 *  Math.log(10.) - .5 * Math.log(2.*3.141592))+(Math.log(n)/Math.LN10 *  Math.log(10.) - .5 * Math.log(2.*3.141592)))/Math.log((Math.log(n)/Math.LN10 *  Math.log(10.) - .5 * Math.log(2.*3.141592)))))))))
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.