এন-ডাইমেনশনাল সার্কেল!


16

এমন একটি প্রোগ্রাম লিখুন যা এর ইনপুট হিসাবে দুটি সংখ্যা নেয়। প্রথমটি হল মাত্রার সংখ্যা - একটি বিন্দুর জন্য 0, একটি সরলরেখার জন্য 1, একটি বৃত্তের জন্য 2, একটি গোলকের জন্য 3। দ্বিতীয় সংখ্যাটি হ'ল বস্তুর ব্যাসার্ধ, বা এটি যদি 1-মাত্রিক হয় তবে সংখ্যাটি নিজেই। 0 মাত্রার জন্য আউটপুট 0। আউটপুট হ'ল বস্তুর দৈর্ঘ্য / ক্ষেত্র / আয়তন।

যদি আমরা প্রথম নম্বর n, দ্বিতীয়টি rএবং আউটপুট কল করি তবে আমরা এটি xপাই:

  • এন = 0, এক্স = 1 এর জন্য

  • এন = 1, এক্স = 2 × আর এর জন্য

  • n = 2, x = r 2 × π এর জন্য π

  • এন = 3, X = ( 4 / 3 ) × R 3 × π

  • এবং তাই ... যদি আপনি চান, যদিও।

মন্তব্য:

  • ক্ষেত্রে যখন একটি বা উভয় সংখ্যা নেতিবাচক হয়, বা যখন প্রথম সংখ্যাটি পুরো হয় না, তখন কভার করার প্রয়োজন হয় না।

  • প্রোগ্রামটি অবশ্যই কোনও ফাইল থেকে পড়তে হবে না এবং কেবলমাত্র দুটি নম্বর কেবল ইনপুট।

  • আউটপুটটিতে কেবল সংখ্যাগুলি ব্যবহার করা উচিত (যেমন "14 * পাই" নয়) এবং কমপক্ষে দুটি দশমিক অঙ্কের ক্ষেত্রে সঠিক হওয়া উচিত।

  • N = 0 হিসাবে, আপনি কোডটি আরও ছোট করে দিলে আপনি 0 আউটপুট করতে পারেন।

  • আরও উত্তরের 4 এবং আরও মাত্রিক "গোলকগুলি" কভার করে এমন উত্তরের জন্য অতিরিক্ত সোয়াগ!

  • এটি , তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তরটি জেতে!

উদাহরণ:

 1 1 -> 2

 2 3 -> 28,27

 3 1 -> 4,19

 3 4,5 -> 381,70

 1 9.379 -> 18.758

 0 48 -> 1

2
হ্যাঁ! আমি পোস্টে মিথ্যা ম্যাথজ্যাক্স সমীকরণ পছন্দ করি!
রুডলফ জেলিন

1
সমালোচনা করার জন্য নয়, তবে আমি দেখতে পাচ্ছি না যে কোনও রেখাকে কীভাবে 1 ডি সার্কেল হিসাবে বিবেচনা করা যেতে পারে ...
xem

10
@xem কেন্দ্র থেকে প্রদত্ত দূরত্বের মধ্যে থাকা সমস্ত পয়েন্ট হিসাবে একটি বৃত্ত হিসাবে বিবেচনা করুন
লুইস মেন্ডো

3
গণিতের ধরণগুলি বিভিন্ন মাত্রার এই "বল" বলবে। উত্স থেকে দূরত্ব সহ পয়েন্টগুলির সেটটি == rগোলক, উত্স থেকে দূরত্ব সহ পয়েন্টগুলির সেট <= rবল is তারপরে এগুলি 0-বল = পয়েন্ট, 1-বল = বিভাগ, 2-বল = ডিস্ক, 3-বল = বল, 4-বল, 5-বল, এবং গ। (" n-ball = সাধারণ নাম" হিসাবে তালিকাভুক্ত )।
এরিক টাওয়ার

3
"0 মাত্রার জন্য আউটপুট 0" এবং "এন = 0, x = 1" একে অপরের বিরোধিতা করে। আপনি দয়া করে একটি চয়ন করতে পারেন (বা উভয় অনুমোদিত যে স্পষ্ট করে)?
পাওলো ইবারম্যান

উত্তর:


7

জেলি , 13 বাইট + অতিরিক্ত সোয়াগ

÷2µØP*÷!
ç×*@

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

কোনো মাত্রা জন্য কাজ করে, তাই যতদিন π নির্দিষ্ট মান পাওয়া ØP( 3.141592653589793) সঠিক যথেষ্ট।

কিভাবে?

÷2µØP*÷! - Link 1: n, r
÷2       - n / 2
  µ      - monadic chain separation
   ØP    - π (3.141592653589793)
     *   - exponentiate: π^(n/2)
       ! - Pi(n/2): Gamma(n/2 + 1)
      ÷  - divide: π^(n/2) / Gamma(n/2 + 1)

ç×*@     - Main link: n, r
ç        - call last link (1) as a dyad: π^(n/2) / Gamma(n/2 + 1)
  *@     - exponentiate with reversed @rguments: r^n
 ×       - multiply: r^n * π^(n/2) / Gamma(n/2 + 1)

1
ম্যাথমেটিকাকে মারার জন্য ভালই হয়েছে!
সিজে ডেনিস

অভিনন্দন, আপনি জিতেছেন!
রুডলফ জেলিন

13

ম্যাথমেটিকা, 18 বাইট, 168.15 ট্রিলিয়ন ডায়ামেন্ট পর্যন্ত

Pi^(a=.5#)/a!#2^#&

বেনামে ফাংশন। ইনপুট হিসাবে দুটি সংখ্যা নেয় এবং আউটপুট হিসাবে একটি নিখুঁত সংখ্যা প্রদান করে। যেকোন সংখ্যক মাত্রা নিয়ে কাজ করে। আউটপুট 1.জন্য এন = 0. ব্যবহার থেকে সূত্র একটি N- বলের ভলিউম উইকিপিডিয়া উপর।

ব্যাখ্যা

আমরা গণনা করার চেষ্টা করছি π n / 2 / Γ ( n / 2 + 1) · আর এন , বা N[Pi^(n/2)/Gamma[n/2 + 1] R^n]ম্যাথমেটিকায়। আমাদের ক্ষেত্রে #(প্রথম যুক্তি) n এবং #2(দ্বিতীয় যুক্তি) হ'ল আর । এটি আমাদের সাথে ছেড়ে যায় N[Pi^(#/2)/Gamma[#/2 + 1] #2^#] &, যা নিম্নরূপে গল্ফ করা যেতে পারে:

N[Pi^(#/2)/Gamma[#/2 + 1] #2^#] &
Pi^(.5#)/Gamma[.5# + 1] #2^# &    (* replace exact with approximate numbers*)
Pi^(.5#)/(.5#)! #2^# &            (* n! == Gamma[n + 1] *)
Pi^(a=.5#)/a! #2^# &              (* replace repeated .5# *)
Pi^(a=.5#)/a!#2^#&                (* remove whitespace *)

এবং এইভাবে, আমাদের আসল প্রোগ্রাম।


উত্তম উত্তর - এটি দ্রুত ছিল! কেবল স্পষ্টকরণের জন্য: আউটপুটটি কত ডিজিটের সঠিক? কত মাত্রা গণনা করা সম্ভব?
রুডলফ জেলিন

@ RudolfL.Jelínek 5 সম্পর্কে উল্লেখযোগ্য পরিসংখ্যান থেকে আউটপুট, এবং এটি সমস্ত কাজ এন জন্য 168.146.894.169.516 পর্যন্ত (কম সংখ্যায় সঙ্গে যদিও) = 1।
LegionMammal978

@ LegionMammal978 কোন সূত্র? আমি বেশ নিশ্চিত যে আপনি সেখানে গামা ফাংশনটি ব্যবহার করবেন না
অ্যাঙ্গস

@ অ্যাঙ্গস এন ! = Γ  (  n + 1)।
LegionMammal978

2
ওহ, !অ-ইন্টিগ্রালগুলির জন্যও কাজ করে। ম্যাথামেটিকা ​​ব্যবহার করে এটি প্রায় প্রতারণার মতো অনুভূত হয় ... :)
অ্যাঙ্গস

6

জাভাস্ক্রিপ্ট (ES6), 45 বাইট + অতিরিক্ত সোয়াগ

উইকিপিডিয়া থেকে পুনরাবৃত্ত সূত্র , যে কোনও মাত্রার জন্য কাজ করা উচিত

f=(n,r)=>n<2?n?2*r:1:f(n-2,r)*2*Math.PI*r*r/n

6

আর, 75 40 38 বাইট (অতিরিক্ত অতিরিক্ত সোয়াগ)

ঠিক আছে, দেখে মনে হচ্ছে পুনরাবৃত্ত ফাংশন না দিয়ে গামা ফাংশনটি দিয়ে এবং ব্যবহার করে আমি এটিকে গল্ফ করতে পারি।

function(n,r)pi^(n/2)/gamma(n/2+1)*r^n

nব্যাসার্ধের একটি- মাত্রিক হাইপারস্পিয়ারের ভলিউম গণনা করার জন্য একটি বেনামি ফাংশন সংজ্ঞায়িত করে r

কিছু উদাহরণ:

1 1 -> 2

0 48 -> 1

2 3 -> 28.27433

3 4.5 -> 381.7035

7 7 -> 3891048

100 3 -> 122051813

Swagless সমাধান, 38 34 বাইট

কম কয়েক বাইট জন্য, আপনি একটি বেনামী ফাংশন যে শুধুমাত্র মাত্রা 1 3. রিটার্নস কাজ করে থাকতে পারে numeric(0)জন্য n=0, এবং NAজন্য n>3। ( numeric(0)দৈর্ঘ্যের 0 এর একটি সংখ্যক ভেক্টর; NAএটি "উপলভ্য নয়" এর জন্য Per) পারফরম্যান্স অন্যথায় উপরের সাধারণ সমাধানের মতো।

function(n,r)c(1,pi,4/3*pi)[n]*r^n

1
SS এসএসএসএসডাব্লুডাব্লুডাব্লুডাব্লুডাব্লিউডাব্লিউএইএএএএজিজিজিজিজিজিজিজিজি!
রুডলফ জেলিন

5

হাস্কেল, 74 65 36 বাইট + অতিরিক্ত সোয়াগ

0%r=1
1%r=2*r
n%r=2*pi*r^2/n*(n-2)%r

রিকার্সিভ সূত্র, সমস্ত মাত্রার জন্য কাজ করে যা ডাবল-স্পষ্টতা ভাসমান পয়েন্ট সংখ্যা হিসাবে ঠিক উপস্থাপিত হতে পারে তবে অ-অবিচ্ছেদ্য মাত্রার জন্য অসীম লুপ হয়ে যায়। উত্তরাধিকারের জন্য পুরানো সংস্করণ:

n%r=(max 1$1-(-1)**n)*(2*pi)^(floor$n/2)*r**n/product[n,n-2..1.1]

সমস্ত মাত্রার জন্য কাজ করে। তাউ মেনিফেস্টো থেকে সূত্রটি ব্যবহার করে । product[n,n-2..1.1]একটি ডাবল ফ্যাক্টরিয়াল হ্যাক যা এর জন্য শূন্য গণনা করবে নাn==2


5

জাভাস্ক্রিপ্ট, 61 51 49 43 বাইট

০-৩ মাত্রা সমর্থিত কারণ কোনও চতুর্থ মাত্রা নেই

7 বাইট সংরক্ষণ করার জন্য @ হেইডিকে ধন্যবাদ

d=(n,r)=>r**n*(n<2?n+1:Math.PI*(n<3?1:4/3))

ফাংশন তৈরি করে d। তারপরে th শক্তি rথেকে উত্থাপিত হয় nএবং তারপরে এটি nতারনারী অপারেটরগুলি ব্যবহারের উপর নির্ভর করে একটি সংখ্যার সাথে গুণ করে multip আউটপুট 1জন্যn=0

কমপক্ষে 2 দশমিক স্থানে আউটপুট দেয় (10+ ডিপি)

এখানে একটি নাস্তা স্নিপেট!

var N = document.getElementById("n");
var R = document.getElementById("r");
N.value="3";//default
R.value="4.5";//default
d=(n,r)=>r**n*(n<2?n+1:Math.PI*(n<3?1:4/3));
var b = document.getElementById("b");
b.onclick = function() {
  var s = document.getElementById("s");
  var n = document.getElementById("n").value;
  var r = document.getElementById("r").value;
  s.textContent = d(parseFloat(n),parseFloat(r));
}
span {border:1px solid black;padding:10px;font-size:30px;}
Value of n: <input id="n" type="number"></input>
Value of r: <input id="r" type="number"></input><br>
<button id="b">Calculate!</button><br><br><br>
<span id="s">THERE IS NO 4TH DIMENSION</span>


আমার নন-পোস্ট সলিউশনটি প্রচুর পরিমাণে মারবে। +1 টি!
রুডলফ জেলিন

6
কি বোবা ভিডিও…
নাম

1
@ সার্জবর্চ কমপক্ষে এটি আমার বক্তব্য প্রমাণ করে :)
কৃতিক্সিত লিথোস

2
@ সার্জবর্চ হা হা ইয়ুপ বোবা ভিডিও - 0:40 3 dimensions that behave in the same way and one that behaves in a different way- এই মুহুর্তে তিনি মনে করছেন যে চতুর্থ মাত্রা রয়েছে তবে 1 ম, দ্বিতীয় বা তৃতীয় নয়!
লেভেল নদী সেন্ট

1
@ লেভেলরিভারস্ট ওয়েল ওয়েবে আমি প্রথম ফলাফল ছিল ¯ \ _ (ツ) _ / ¯
ক্রিটিসি লিথোস

3

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

3:^[2P4*P/3]*1hi)

এটি 3 টি মাত্রা পর্যন্ত কাজ করে। ইনপুটগুলি বিপরীত ক্রমে থাকে, এটি: rতবে n

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

বিবেচনা করুন r=3, n=2একটি উদাহরণ হিসাবে।

3:         % Push array [1 2 3]
           % STACK: [1 2 3]
^          % Take r implicitly, and raise it to [1 2 3] element-wise
           % STACK: [3 9 27]
[2P4*P/3]  % Push array [2 pi 4*pi/3]
           % STACK: [3 9 27], [2 pi 4*pi/3]
*          % Multiply element-wise
           % STACK: [6 28.2743 113.0973]
1h         % Append 1
           % STACK: [6 28.2743 113.0973, 1]
i)         % Input n and use it as modular index into the array. Display implicitly
           % STACK: 28.2743

2

জাভা / সি / সি ++ / সি #, 69 67 বাইট + অতিরিক্ত সোয়াগ!

সম্পাদনা: @ অ্যালেক্সারেসেরকে ধন্যবাদ 2 বাইট সংরক্ষণ করা হয়েছে

একটি ডায়াডিক ফাংশন - প্রথম যুক্তি হল মাত্রার সংখ্যা, দ্বিতীয়টি হল এন-বলের ব্যাসার্ধ।

float v(int n,float r){return n<1?1:n<2?2*r:6.283f*r*r*v(n-2,r)/n;}

একটি এন-বলের ভলিউমের জন্য পুনরাবৃত্তির সূত্র: ভি এন = (2πr 2 ভি এন -2 )n

ওহো! জাভা (আমার পরীক্ষার ভাষা) স্কালকে এখানে ?:পরাজিত করে, ক্ষুদ্র টের্নারি সিনট্যাক্সের জন্য ধন্যবাদ ! এই ফাংশনটি শিরোনামের সমস্ত 4 টি ভাষায় সিন্টেক্সিকভাবে সঠিক, এবং আমি এটি সি (মিনজিডাব্লু জিসিসি 5.4.0), এবং সি # (ভিএস আলটিমেট 2016, সি # 6.0) দিয়ে পরীক্ষা করেছি। আমি ধরে নিচ্ছি যে এটি সি ++ তেও কাজ করবে there যেহেতু এই ফাংশনটি অনেকটা গ্রন্থাগার-স্বতন্ত্র, সুতরাং এটি কোনও সি-জাতীয় ভাষায় অনুরূপ বাক্য গঠন সহ কাজ করা উচিত।


কি দারুন! আমি ভেবেছিলাম আমি কখনই জাভা উত্তর পাব না! বুঝেছি ধন্যবাদ! এবং, একটি বোনাস হিসাবে, এটি কিছু উত্তরগুলি পরাজিত করেছে এবং অতিরিক্ত সোয়াগ পেয়েছে! ₊₁
রুডলফ জেলিন

n==0থেকে সংক্ষিপ্ত করা যেতে পারে n<1এবং n==1করাn<2
AlexRacer

2

হাস্কেল, ট্যাব ইনডেন্টের জন্য 52 বাইট 42 বাইট + অতিরিক্ত সোয়াগ

সম্পাদনা করুন: সংরক্ষিত 10 বাইট @WChargin ধন্যবাদ

একটি ডায়াডিক ত্রিযুক্ত ফাংশন - প্রথম যুক্তি হল মাত্রার সংখ্যা, দ্বিতীয়টি এন-বলের ব্যাসার্ধ।

v 0 r=1
v 1 r=2*r
v n r=2*pi*r*r*v(n-2)r/n

একটি এন-বলের ভলিউমের জন্য পুনরাবৃত্তির সূত্র: ভি এন = (2πr 2 ভি এন -2 )n

এটিকে একটি পৃথক স্ক্রিপ্ট ফাইল হিসাবে সংরক্ষণ করুন এবং vআউটপুট পরীক্ষার জন্য একটি ফাংশন সহ , যেমন show (v 3 4.5),। আমি এটি পরীক্ষা করিনি, দয়া করে আমাকে জানান, এটি কাজ করে না।

2π টির জন্য 6.2832 সান্নিধ্যের সাথে পুরানো প্রোগ্রাম প্রতিস্থাপন করা হয়েছে (ট্যাব ইন্ডেন্ট সহ 50 বাইট):

let v 0 r=1
    v 1 r=2*r
    v n r=2*pi*r*r*(v(n-2)r)/n

এই একাধিক লাইন মোডে (ব্যবহার GHCi সাথে ব্যবহার করা যাবে :set +mবা মধ্যবর্তী কোড পরিক্ষেপ :{& :}, পরিবেষ্টনের তাদের নিজস্ব লাইন হচ্ছে। পরীক্ষক ফাংশন প্রয়োজন।

পূর্ণ-প্রোগ্রাম টাইপ অনুমানের সাথে স্ট্যাটিক টাইপিং এখানে কার্যকর হয়, যা হাস্কেলকে স্কালার চেয়ে অনেক ভাল করার সুযোগ দেয় এবং গ্রোভির কাছে পৌঁছায়, তবে কিছু চরিত্রের পুনরাবৃত্তি জড়িত একটি টের্নির পরিবর্তে প্যাটার্ন ম্যাচের জন্য একে একে যথেষ্ট মারধর করেন না।


51 লেআউট সরাসরি ব্যবহার করা হয় তবে, 49 আপনি প্রতিস্থাপন যদি 2*piজন্য 6.2832: 47 যদি তোমরা recursive কল প্রায় প্রথম বন্ধনী ড্রপ, এবং let{v 0 r=1;v 1 r=2*r;v n r=2*pi*r*r*v(n-2)r/n}...
wchargin

… তবে আরও সাধারণ স্কোরিং হল একটি পৃথক স্ক্রিপ্ট ফাইল হিসাবে জমা দেওয়া; ড্রপ করুন let{}এবং আমার সেমিকোলনগুলি লাইনফিডগুলির সাথে প্রতিস্থাপন করুন মাত্র 42 বাইট (নতুন লাইনের পিছনে ছাড়াই) get
wchargin

@ ডাব্লুচারগিন আমি পুরো 2 দিন ধরে হাস্কেল শিখছি, তাই পয়েন্টারটির জন্য ধন্যবাদ। আমি প্রথম বন্ধনী নিয়ে সতর্কতার দিক থেকে ভ্রান্ত হয়েছি কারণ আমি হাসকেলে অপারেটর বনাম ফাংশন কলের অগ্রাধিকার সম্পর্কে নিশ্চিত নই
তমোঘনা চৌধুরী

2

র্যাকেট 69 বাইট (অতিরিক্ত অতিরিক্ত সোয়াগ)

Https://en.wikedia.org/w/index.php?title=Volume_of_an_n-ball§ion=3# রিকার্স ফর্মুলা ব্যবহার করে

@Wchargin এর পরামর্শ সহ

(define(v d r)(match d[0 1][1(* 2 r)][_(/(* 2 pi r r(v(- d 2)r))d)]))

অবরুদ্ধ (v = ভলিউম, ডি = মাত্রা, আর = ব্যাসার্ধ):

(define(v d r)
  (match d
    [0 1]
    [1 (* 2 r)]
    [_ (/ (*  2   pi   r   r   (v (- d 2) r)  )
          d)]
    ))

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

(v 1 1)
(v 2 3)
(v 3 1)
(v 3 4.5)
(v 1 9.379)
(v 0 48)

আউটপুট:

2
28.274333882308138
4.1887902047863905
381.7035074111599
18.758
1

আমি অত্যন্ত সন্দেহ করি যে এটি আইনী: আপনি বাইট গণনায় এর সংজ্ঞা গণনা না করে পুনরাবৃত্ত ফাংশনটি ব্যবহার করছেন। এটি হ'ল আপনি যে বাক্সটি 67 বাইট হিসাবে স্কোর করছেন তা বৈধ র‌্যাকেট নয়, যেমন vআনবাউন্ড (অন্যান্য পরামিতিগুলির উল্লেখ না করা)। অবশ্যই আপনারও গুনতে হবে (define(v d r))? এটি আপনাকে 82 বাইট পর্যন্ত নিয়ে আসে ...
wchargin

… তবে আপনি তার থেকে condনেস্টেড ifএক্সপ্রেশন দিয়ে প্রতিস্থাপন করে আপনাকে চারটি বাইট ছাঁটাই করতে পারবেন , আপনাকে 78 বাইটে নামিয়ে আনতে পারেন (define(v d r)(if(= d 0)1(if(= d 1)(* 2 r)(*(/(* 2 pi(* r r))d)(v(- d 2)r)))))
wchargin

... এবং একটি আরও matchপেতে আরও তিনটি শেভ (define(v d r)(match d[0 1][1(* 2 r)][_(*(/(* 2 pi(* r r))d)(v(- d 2)r))]))
wchargin

দুর্দান্ত পরামর্শ দেওয়ার জন্য ধন্যবাদ। আমি উত্তরে এগুলি অন্তর্ভুক্ত করছি।
rnso

@ ওচার্জিন: সূত্রটিতে (v (- d 2) r) প্রতিস্থাপন করে এবং "(* আরআর)" এর পরিবর্তে কেবল "আরআর" ব্যবহার করে আমি আরও 9 বাইট হ্রাস করতে পারি কারণ এটি ইতিমধ্যে একটি গুণ সূত্রে রয়েছে।
rnso

1

পার্ল, 63 বাইট + অতিরিক্ত সোয়াগ

@a=1..2;push@a,6.283/$_*@a[$_-2]for 2..($b=<>);say$a[$b]*<>**$b

একবারে দুটি এবং দুটি পূর্ণসংখ্যা গ্রহণ করে, তারপরে এন-গোলকের প্রদত্ত ব্যাসার্ধের জন্য n-ভলিউমকে আউটপুট দেয়। যখন এন = 0, ভি = 1, এবং যখন এন = 1, ভি = 2 আর সমস্ত পরবর্তী মাত্রা নিম্নলিখিত সূত্র দ্বারা গণনা করা হয়:

পুনরাবৃত্তির পরিমাণের সূত্র

যেহেতু r n প্রতিটি সূত্রে ব্যাসার্ধের গুণক, তাই আমি এটি বেস হিসাবের বাইরে রেখেছি এবং কেবল শেষে এটি প্রয়োগ করি।

2π কোডটিতে 6.283 দ্বারা সংযুক্ত হয়।


খুব সুন্দর এবং পুনরাবৃত্ত, এবং the পুনরাবৃত্তাকার সূত্রটি দেখানোর জন্য।
রুডলফ জেলিন

1

স্কালা, 53 বাইট

{import math._;(n,r)=>pow(r,n)*Seq(1,2,Pi,Pi*4/3)(n)}

দুঃখিত, আমার জন্য কোনও অতিরিক্ত সোয়াগ নেই :(

ব্যাখ্যা:

{                     //define a block, the type of this is the type of the last expression, which is a function
  import math._;        //import everything from math, for pow and pi
  (n,r)=>               //define a function
    pow(r,n)*             //r to the nth power multiplied by
    Seq(1,2,Pi,Pi*4/3)(n) //the nth element of a sequence of 1, 2, Pi and Pi*4/3
}

1

জাভাস্ক্রিপ্ট (ES6), 39 বাইট, কোনও সোয়াগ নেই

(n,r)=>[1,r+r,a=Math.PI*r*r,a*r*4/3][n]

1

পাইথন 3, 76 72 68 বাইট + অতিরিক্ত সোয়াগ!

অতিরিক্ত সোয়াগ সঙ্গে পুনরাবৃত্তি সমাধান!
রিটার্নস 0জন্যn=0

from math import*
f=lambda n,r:n*r*2*(n<2or pi*r/n/n*(f(n-2,r)or 1))

পুরানো পদ্ধতির ( 1জন্য n=1):

from math import*
f=lambda n,r:1*(n<1)or r*2*(n<2)or 2*pi*r*r/n*f(n-2,r)

থেকে পুনরাবৃত্তি সূত্র উইকিপিডিয়া

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



1

স্কালা, 81 79 বাইট + অতিরিক্ত সোয়াগ!

সম্পাদনা: @ অ্যালেক্সারেসেরকে ধন্যবাদ 2 বাইট সংরক্ষণ করা হয়েছে

একটি ডায়াডিক ফাংশন - প্রথম যুক্তি হল মাত্রার সংখ্যা, দ্বিতীয়টি হল এন-বলের ব্যাসার্ধ।

def v(n:Int,r:Float):Float=if n<1 1 else if n<2 2*r else 6.2832f*r*r*v(n-2,r)/n

একটি এন-বলের ভলিউমের জন্য পুনরাবৃত্তির সূত্র: ভি এন = (2πr 2 ভি এন -2 )n

রিরসিভ ফাংশন এবং ফাংশন প্যারামিটার এবং ভার্বোস টার্নারি সিনট্যাক্সগুলির রিটার্ন ধরনেরগুলির জন্য স্কালার টাইপ অনুমানের অভাব এখানে বেশ খানিকটা ব্যথা করে :(


1

গ্রোভী, 49 47 বাইট + অতিরিক্ত সোয়াগ!

সম্পাদনা: @ অ্যালেক্সারেসেরকে ধন্যবাদ 2 বাইট সংরক্ষণ করা হয়েছে

একটি ডায়াডিক ফাংশন - প্রথম যুক্তি হল মাত্রার সংখ্যা, দ্বিতীয়টি হল এন-বলের ব্যাসার্ধ।

def v(n,r){n<1?1:n<2?2*r:6.2832*r*r*v(n-2,r)/n}

একটি এন-বলের ভলিউমের জন্য পুনরাবৃত্তির সূত্র: ভি এন = (2πr 2 ভি এন -2 ) ⁄ ⁄n

গতিশীল টাইপিং এফটিডাব্লু!

আমার স্কালা এবং জাভা উত্তরগুলি একই যুক্তি ব্যবহার করে তবে স্ট্যাটিক টাইপিংয়ের সাথে টীক টীকাগুলির কারণে এত বেশি বাইট গণনা করা হয় :( তবে স্কালা এবং গ্রোভি আমাকে returnজাভা / সি-এর বিপরীতে বাইট গণনাটিকে সহায়তা করে) ...


অতিরিক্ত সোয়াগ্যাগের জন্য!
রুডলফ জেলিন

1

Lithp , 96 টি অক্ষর + অতিরিক্ত সোয়াগ

পঠনযোগ্যতার জন্য 2 এ লাইন বিভক্ত:

#N,R::((if (< N 2) ((? (!= 0 N) (* 2 R) 1)) ((/ (* (* (* (* (f (- N 2) R) 2)
        3.1416) R) R) N))))

ভাবছেন কম স্থানের প্রয়োজন হলে আমার পার্সার আপগ্রেড করতে হবে। কোড আকারটি সুন্দরভাবে কেটে দেওয়া হবে, বিশেষত that ((/ (* (* (* (*বিভাগে।

ব্যবহার:

% n-circle.lithp
(
    (def f #N,R::((if (< N 2) ((? (!= 0 N) (* 2 R) 1)) ((/ (* (* (* (* (f (- N 2) R) 2) 3.1416) R) R) N)))))
    (print (f 1 1))
    (print (f 2 3))
    (print (f 3 1))
    (print (f 3 4.5))
    (print (f 1 9.379))
    (print (f 0 48))
)

#./run.js n-circle.lithp
2
28.274333882308138
4.1887902047863905
381.7035074111598
18.758
1

কয়েকটা বাইট অফ শেভ করার জন্য রুডলফকে ধন্যবাদ।


1
" 3.141592653589793" থেকে " 3.1416" সংক্ষিপ্তকরণ, 11 বাইট সংরক্ষণ এবং এখনও নিয়মগুলির মধ্যে ফিট করার বিষয়ে কী?
রুডলফ জেলিন

1

সিজেএম (অতিরিক্ত ক্রেডিট সহ 27 বাইট)

{1$_[2dP]*<f*\,:)-2%./1+:*}

অনলাইন পরীক্ষা স্যুট । এটি একটি বেনামে ব্লক (ফাংশন) যা যুক্তি গ্রহণ করেd r স্ট্যাকের উপর এবং ফলাফলটি স্ট্যাকের উপর ফেলে দেয়।

ব্যবচ্ছেদ

সাধারণ এন-ডাইমেনশনাল সূত্রটি আবার লিখতে পারে

22π2R!!
{            e# Begin block: stack holds d r
  1$_[2dP]*< e#   Build a list which repeats [2 pi] d times and take the first d elements
  f*         e#   Multiply each element of the list by r
  \,:)-2%    e#   Build a list [1 ... d] and take every other element starting at the end
  ./         e#   Pointwise divide. The d/2 elements of the longer list are untouched
  1+:*       e#   Add 1 to ensure the list is non-empty and multiply its elements
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.