বড়দিনের জন্য আপনি কতটা উপস্থিত ছিলেন?


32

হ্যাঁ, কত , কত না ...

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

যেহেতু উপহারের পরিমাণটি পাওয়া যায় তার তুলনা করার জন্য এটি যেমন নষ্ট হয়ে যায়, আপনি এমন একটি দীর্ঘ স্ক্রিপ্ট চান না যা সহজেই ক্রিসমাস পার্টিতে অন্যের দ্বারা দেখা এবং পড়তে পারে। অতএব আপনার স্ক্রিপ্টে আপনাকে সর্বনিম্ন বাইটের সংখ্যা রাখতে হবে।

আপনার টাস্কটি সহজ: একটি প্রোগ্রাম তৈরি করুন যা কোনও উপযুক্ত বিন্যাসে ইনপুট হিসাবে মাত্রাগুলির একটি তালিকা গ্রহণ করে এবং আপনার উপহারগুলির সম্মিলিত পরিমাণকে আউটপুট করে। প্রতিটি উপস্থিতির মাত্রা হয় তিনটি সংখ্যার একটি সেট বা একক সংখ্যার। যদি ইনপুটটি তিনটি সংখ্যা ( L, W, H) হয় তবে বর্তমানটি একটি মাত্রার ঘনক্ষেত্র L x W x H। যদি এটি একটি একক সংখ্যা ( R) হয় তবে বর্তমানটি ব্যাসার্ধের একটি গোলক R

নিয়মাবলী:

  • এটি একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন হতে পারে
  • ইনপুটটি যে কোনও সুবিধাজনক বিন্যাসে থাকতে পারে
    • যদি আকাঙ্ক্ষিত হয় তবে একটি গোলকটি দুটি শূন্যের পরে একটি সংখ্যা দ্বারা প্রতিনিধিত্ব করা যেতে পারে
    • একটি কিউবয়েডে সবসময় সমস্ত অ-শূন্য মাত্রা থাকবে।
  • আউটপুট একক দশমিক সংখ্যা হওয়া উচিত
    • অতিরিক্ত আউটপুট গ্রহণ করা হবে যতক্ষণ না উত্তরটি কী তা স্পষ্ট
    • দশমিক বিন্দুর পরে আউটপুটে কমপক্ষে দুটি অঙ্ক থাকতে হবে
    • সংখ্যাটি 1000 এর চেয়ে বড় হলে আউটপুট মান আকারে / বৈজ্ঞানিক স্বরলিপিতে থাকতে পারে।
    • যদি আপনার ভাষার পাই-ধ্রুবক না থাকে তবে উত্তরটি 9999.99 অবধি সঠিক হওয়া উচিত।

উদাহরণ:

((1,4,3),(2,2,2),(3),(4,4,4))
197.0973    // (1*4*3 + 2*2*2 + 4/3*pi*3^3 + 4*4*4)

(5)
523.5988

(5,0,0)
523.5988

লিডারবোর্ড

এই পোস্টের নীচে স্ট্যাক স্নিপেট উত্তরগুলি থেকে ক্যাটালগ তৈরি করে 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


3
কোনও মজাদার এই মজাদার নলাকার বাক্সগুলির মধ্যে একটিতে টুপি পায় না ?
manatwork

2
@ মান্যাটওয়ার্ক, না, সমস্ত মহিলা বোলার টুপি পাবেন এবং আপনি সহজেই একটি গোলকের মধ্যে এটি ফিট করতে পারেন = পি
স্টিভি গ্রিফিন

1
আমি ধরে নিলাম (5)কেবল আংশিক উদাহরণ এবং আমাদের কোডটি কেবল পরিচালনা করতে হবে ((5))
18:55

2
আমাদের পছন্দের ভাষার যদি পাই ধ্রুবক না থাকে তবে কত নির্ভুলতা প্রয়োজন?
ডেনিস

1
@ মান্যাটওয়ার্ক, + এবং * ততক্ষণ ঠিক আছে যতক্ষণ না সেগুলি আপনি ব্যবহার করছেন এমন ভাষাতে সংযোজন এবং গুণ (বা অন্যান্য ক্রিয়াকলাপ) বোঝায় না।
স্টিভি গ্রিফিন

উত্তর:


10

জেলি , 19 18 বাইট

Zµ*3×1420÷339Ḣo@PS

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

দুর্ভাগ্যবশত, জেলি একটি নেই π ধ্রুবক এখনো, এবং vectorizer ভাসে সঠিকভাবে হ্যান্ডেল নেই।

এই সমস্যাগুলি কাটিয়ে ওঠার জন্য, 4 3/3 দ্বারা গুণিত করার পরিবর্তে , আমরা 1420 দ্বারা গুণ করব এবং 339 দ্বারা ভাগ করব । যেহেতু 1420 ÷ 339 = 4.18879056… এবং 4π / 3 = 4.18879020… , এটি নিয়ম মেনে চলার জন্য যথেষ্ট যথাযথ।

জেলির নতুন সংস্করণটি আরও নির্ভুলতার সাথে 14 বাইটে এই কাজটি সম্পাদন করতে পারে ।

Zµ*3×240°Ḣo@PS

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

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

Zµ*3×1420÷339Ḣo@PS  Left argument: A, e.g., [[1, 2, 3], [4, 0, 0]]

Z                   Zip A; turn A into [[1, 4], [2, 0], [3, 0]].
 µ                  Begin a new, monadic chain with zip(A) as left argument.
  *3                Cube all involved numbers.
    ×1420           Multiply all involved numbers by 1420.
         ÷339       Divide all involved numbers by 339.
                    This calculates [[4.19, 268.08], [33.51, 0], [113.10, 0]]
             Ḣ      Head; retrieve the first array.
                    This yields [4.19, 268.08].
                P   Take the product across the columns of zip(A).
                    This yields [6, 0].
              o@    Apply logical OR with swapped argument order to the results.
                    This replaces zeroes in the product with the corresponding
                    results from the left, yielding [6, 268.08].
                 S  Compute the sum of the resulting numbers.

অ-প্রতিযোগিতামূলক সংস্করণ এর ×240°পরিবর্তে ব্যবহার করে ×1420÷339, যা 240 দ্বারা গুণিত হয় এবং পণ্যগুলি রেডিয়ানে রূপান্তর করে।


9

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

q[x]=4/3*pi*x^^3
q x=product x
sum.map q

ব্যবহারের উদাহরণ: sum.map q $ [[1,4,3],[2,2,2],[3],[4,4,4]]-> 197.09733552923254

এটা কিভাবে কাজ করে: ইনপুট তালিকাটির প্রতিটি উপাদান জন্য: যদি এটি একটি একক উপাদান আছে xক্যালকুলেট, গোলক ভলিউম আর নিতে product। এটি যোগ.


1
বাইট গণনা করার এই পদ্ধতিটি কি সাধারণত বৈধ? আমি বলতাম p=sum.map q(এবং তারপরে pসংখ্যার তালিকার তালিকায় ব্যবহার করতে বলেছি )
Leif Willerts

1
@ লিফওয়িলার্টস: মেটা সম্পর্কিত সাম্প্রতিক একটি বিষয় রয়েছে যা বৈশ্বিক সংজ্ঞাগুলিতে রিলে যে নামহীন ফাংশন দেয়। sum.map qএকটি নামবিহীন ফাংশন যা নির্ভর করে q, তাই আমার ধারণা এটি ঠিক আছে fine
নিমি

9

পাইথ, 19 18 বাইট

sm|*Fd*.tC\ð7^hd3Q

ডেনিসকে 1 বাইট ধন্যবাদ

প্রদর্শন

ইনপুট ফর্ম্যাট তালিকার তালিকা:

[[1,4,3],[2,2,2],[3,0,0],[4,4,4]]

এটি ঘনক্ষেত্রের ভলিউম গণনা করার জন্য মাত্রাগুলিকে একসাথে গুণ করে। যদি এটি শূন্যে আসে তবে এটি গোলকের ভলিউম গণনা করে।

গোলক ধ্রুবককে 4/3*piরেডিয়ানে 240 ডিগ্রি হিসাবে গণনা করা হয়। .t ... 7ডিগ্রিগুলিতে ইনপুটটিকে রেডিয়ানে রূপান্তর করে এবং C\ðকোড পয়েন্ট গণনা করে ð, যা 240 হয়।


7

পাইথন 2, 86 70 বাইট

lambda i:sum(x[0]*x[1]*x[2]if len(x)>1 else x[0]**3*4.18879for x in i)

আমি আপনার বাইট গণনাটি ৮ 86 হিসাবে পেয়েছি , আপনি কীভাবে পেলেন?
wnnmaw

অতিরিক্তভাবে, আপনি পাই এর জন্য ম্যানুয়ালি একটি মান রেখে বাইটস সংরক্ষণ করতে পারেন, আপনি 3.14159265358979323এমনকি বিরতি পর্যন্ত ব্যবহার করতে পারেন
wnnmaw

@nnmaw আমি আমদানি গণনা করতে ভুলে
গিয়েছি

আমি বিশ্বাস করি পাই এর জন্য আপনার হার্ডকোড মানটি কিছুটা বন্ধ রয়েছে
wnnmaw

4
@ Wnnmaw এটি পাই নয়; এটি 4 পিআই / 3
ডেনিস

5

গণিত, 34 বাইট

Tr[1.##&@@@(#/.{r_}:>{4r^3/3Pi})]&

একটি নামবিহীন ফাংশন যা দৈর্ঘ্যের নেস্টেড তালিকা নেয় এবং ভলিউমটিকে আসল সংখ্যা হিসাবে প্রদান করে।

আমরা প্রথমে এর সাথে সম্পর্কিত গোলকের ভলিউমের সাথে একক মানগুলি প্রতিস্থাপন করি /.{r_}:>{4r^3/3Pi}। তারপরে আমরা প্রতিটি তালিকার বিষয়বস্তুগুলি দিয়ে গুণ করি 1.##&@@@। অবশেষে আমরা যোগফলটি ভেক্টরের ট্রেস হিসাবে গণনা করি Tr[...]


5

জাভাস্ক্রিপ্ট (ES6), 56

l=>l.map(([x,y,z])=>t+=y?x*y*z:x*x*x*4/3*Math.PI,t=0)&&t

আরও বুদ্ধিমান .reduce সংস্করণটি 1 বাইট দীর্ঘ

l=>l.reduce((t,[x,y,z])=>t+(y?x*y*z:x*x*x*4/3*Math.PI),0)

যোগ্যতার জন্য যথাযথ হওয়া উচিত বলে 4.11879আপনি স্থানে ব্যবহার করে কয়েকটি বাইট সংরক্ষণ করতে 4/3*Math.PIপারেন।
ETH প্রোডাকশনগুলি

@ এথ প্রডাকশন হ্যাঁ, তবে In case your language doesn't have a Pi-constant,এবং আমার ভাষার পিআই ধ্রুবক রয়েছে, তাই এটি যোগ্যতা অর্জন করে কিনা তা আমি জানি না
edc65

5

পাইথন, 49 বাইট

lambda l:sum(a*b*c or a**3*4.18879for a,b,c in l)

গোলকের প্রতিনিধিত্ব হিসাবে ব্যবহার করে (a,0,0)। কিউবয়েড হিসাবে বিবেচিত, এর ভলিউম 0 রয়েছে, সেক্ষেত্রে পরিবর্তে গোলকের ভলিউম ব্যবহৃত হয়। ধ্রুবকটি কতটা সঠিক হতে হবে সে সম্পর্কে আমি পরিষ্কার নই, তাই আমি আশা করি এটি যথেষ্ট।


4

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

it!ptbw~)3^4*3/XT*hs

ইনপুট ফর্ম্যাটটি একটি ম্যাট্রিক্স যা প্রতিটি সারিতে একটি ঘনক বা গোলককে বর্ণনা করে। একটি গোলকটি কেবল এই সারির প্রথম সংখ্যা দ্বারা সংজ্ঞায়িত হয়; অন্য দুটি সংখ্যা শূন্য। সুতরাং চ্যালেঞ্জের প্রথম উদাহরণটি হ'ল:

[1 4 3; 2 2 2; 3 0 0; 4 4 4]

এটি ভাষার বর্তমান প্রকাশ, ২.০.২ ব্যবহার করে , যা এই চ্যালেঞ্জের চেয়ে আগের earlier

উদাহরণ:

>> matl it!ptbw~)3^4*3/XT*hs
> [1 4 3; 2 2 2; 3 0 0; 4 4 4]
197.0973355292326

>> matl it!ptbw~)3^4*3/XT*hs
> [5 0 0]
523.5987755982989

ব্যাখ্যা:

i             % input matrix
t!            % duplicate and transpose: each object is now a column
p             % product of elements in each column
t             % duplicate                                               
b             % bubble up top-third element in stack                              
w             % swap top two elements in stack                                  
~             % logical 'not'. This gives logical index of speheres                 
)             % reference () indexing. This is a logical-linear index to get sphere radii
3^4*3/XT*     % formula for volume of spehere; element-wise operations
h             % horizontal concatenation                                
s             % sum                

3

প্রোলোগ, 115 100 বাইট

কোড:

[]*0.
[[L,W,H]|T]*V:-W=0,X is 4*pi*L^3/3,T*Y,V is X+Y;X is L*W*H,T*Y,V is X+Y.
p(L):-L*V,write(V).

ব্যাখ্যা:

[]*0.
[[L,W,H]|T]*V:-W=0,                           % When 2nd dimension is 0
                  X is 4*pi*L^3/3,            % Calc volume of sphere
                  T*Y,                        % Recurse over list
                  V is X+Y                    % Sum volumes
                  ;                           % When we have a cube
                  X is L*W*H,                 % Calc cube volume
                  T*Y                         % Recurse over list
                  V is X+Y.                   % Sum volumes
p(L):-L*V,                                    % Get combined volume of list of lists
      write(V).                               % Print volume

উদাহরণ:

p([[1,4,3],[2,2,2],[3,0,0],[4,4,4]]).
197.09733552923257

p([[5,0,0]]).
523.5987755982989

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

সম্পাদনা করুন: ডায়ডিক প্রিকিকেট সংজ্ঞায়িত করে 15 বাইট সংরক্ষণ করা হয়েছে।


3

পার্ল, 52 47 বাইট

s/,/*/g||s@$@**3*4.18879@,$\+=eval for/\S+/g}{

46 + 1 এর জন্য -p(এটি সাধারণ ছিল; এটি এখানে আলাদা কিনা তা আমাকে জানান এবং আমি আপডেট করব)

ব্যবহার: একটি ফাইল রাখা এবং echo 1,4,3 2,2,2 3 4,4,4 | perl -p x.pl

মন্তব্য সহ:

s/,/*/g                # x,y,z becomes x*y*z
||                     # if that fails,
s@$@**3*1420/339@      # x becomes x**3 * 1420/339
,                      # 
$\+=eval               # evaluate the expression and accumulate
for/\S+/g              # iterate groups of non-whitespace
}{                     # -p adds while(<>){...}continue{print}; resets $_

আপডেট 47 ধন্যবাদ @Dennis কয়েকটি ব্যবহার বাইট সংরক্ষণের জন্য এই কৌতুক


s/,/*/g||s@$@**3*4.18879@,$\+=eval for/\S+/g;}{কয়েক বাইট সাশ্রয়।
ডেনিস

@ ডেনিস ধন্যবাদ! আমি এর আগে $ with দিয়ে চেষ্টা করেছি তবে ব্যয়টি পুনরায় সেট করে $_$_একটি নতুন ব্লকে কেন পুনরায় সেট করা হচ্ছে তা এখনও পরিষ্কার নয় যদিও $_ব্লক-লোকাল ইন while(<>){}?
কেনে

হ্যাঁ, $_বর্তমান সুযোগের ডিফল্ট পরিবর্তনশীল। এন্ড ব্লকে এটি অপরিজ্ঞাত।
ডেনিস

2

সিজেম, 24 21 বাইট

q~{3*)4P*3/*+3<:*}%:+

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

q~       e# Read and evaluate input.
{        e# Map this block over the list of presents...
  3*     e#   Repeat the list of lengths 3 times. This will expand cuboids to 9 elements
         e#   and spheres to three copies of the radius.
  )      e#   Pull off the last element.
  4P*3/* e#   Multiply by 4 pi / 3.
  +      e#   Add it back to the list of lengths.
  3<     e#   Truncate to 3 elements. This is a no-op for spheres, which now have three
         e#   elements [r r 4*pi/3*r] but discards everything we've done to cuboids, such
         e#   that they're reduced to their three side lengths again.
  :*     e#   Multiply the three numbers in the list.
}%
:+       e# Sum all the individual volumes.

2

পাওয়ারশেল, 67 বাইট

($args|%{($_,((,$_*3)+4.18879))[$_.count-eq1]-join'*'})-join'+'|iex

কিছু কালো যাদু এখানে ঘটছে। আমি এটি দিয়ে সাবলীলভাবে চলার চেষ্টা করব।

আমরা প্রথমে আমাদের ইনপুটটি গ্রহণ করি, স্বতন্ত্র কমা-বিস্মৃত অ্যারে হিসাবে প্রত্যাশিত (1,4,3) (2,2,2) (3) (4,4,4), এবং পাইপটিকে একটি লুপে |%{}

লুপের অভ্যন্তরে, আমরা প্রথমে যাচাই করেছিলাম, আমরা $_যে বিশেষ অ্যারে বিবেচনা করছি, তার একটি মাত্র আইটেম রয়েছে এবং সেটি অ্যারেতে সূচক হিসাবে ব্যবহার করুন (মূলত / অন্য নির্মাণ যদি সংক্ষিপ্ততর হয়)। এটা একটির বেশি আইটেমের পারেন, অনুমান করা (1,4,3)ইনপুট হিসাবে, আমরা প্রথমার্ধে, যা কেবল মাধ্যমে অ্যারে থুতু হয় নির্বাহ $_যেমন (1,4,3)। অন্যথায়, আমরা একটি নতুন গতিশীল অ্যারে তৈরি করি যা উপাদানটির সাথে তিনবার থাকে (,$_*3)এবং 4/3 য় * পাই এর সান্নিধ্যে টেক করি। ইনপুট জন্য (3), এর ফলাফল (3,3,3,4.18879)আউটপুট হবে।

হ্যাঁ, পাওয়ারশেলের একটি পাই ধ্রুবক রয়েছে। নেট কলের মাধ্যমে অ্যাক্সেস করা হয়েছে [math]::PI, তবে এটি দীর্ঘতর এবং আমি এটি ব্যবহার করতে চাই না। : P

নির্বিশেষে, আমরা মাধ্যমে আস্টেরিক্স সঙ্গে যে আউটপুট অ্যারে কনক্যাটেনেট -join'*', তাই "1*4*3"। একবার আমরা সম্পূর্ণরূপে লুপের মাধ্যমে আসি, এখন আমাদের কাছে স্ট্রিংয়ের সংগ্রহ রয়েছে। আমরা -join'+'সকলেই একসাথে আমাদের সংযোজন এবং iexফলাফলটি গণনা করার জন্য প্রকাশ করি।

ইসস।


1

রুবি, 58 টি অক্ষর

->b{b.reduce(0){|t,s|a,b,c=*s;t+(c ?a*b*c :a**3*4.18879)}}

নমুনা রান:

2.1.5 :001 ->b{b.reduce(0){|t,s|a,b,c=*s;t+(c ?a*b*c :a**3*4.18879)}}[[[1,4,3],[2,2,2],[3],[4,4,4]]]
 => 197.09733

রুবি, 50 টি অক্ষর

উন্নত ধারণাটি নির্লজ্জভাবে এডসি 65 এর জাভাস্ক্রিপ্ট উত্তর থেকে চুরি হয়েছে ।

->b{t=0;b.map{|a,b,c|t+=c ?a*b*c :a**3*4.18879};t}

নমুনা রান:

2.1.5 :001 > ->b{t=0;b.map{|a,b,c|t+=c ?a*b*c :a**3*4.18879};t}[[[1,4,3],[2,2,2],[3],[4,4,4]]]
 => 197.09733

1

জাপট, 27 22 বাইট

N®r*1 ª4/3*M.P*Zg ³} x

স্থান-বিভাজিত অ্যারে হিসাবে ইনপুট নেয়। এটি অনলাইন চেষ্টা করুন!

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

N®   r*1 ª 4/3*M.P*Zg ³  } x
NmZ{Zr*1 ||4/3*M.P*Zg p3 } x

          // Implicit: N = array of input arrays
NmZ{   }  // Map each item Z in N to:
Zr*1      //  Reduce Z with multiplication.
||4/3*M.P //  If this is falsy, calculate 4/3 times Pi
*Zg p3    //  times the first item in Z to the 3rd power.
x         // Sum the result.
          // Implicit: output last expression


1

পিপ , 23 বাইট

{$*a|4/3*PI*@a**3}MSg^s

এই প্রোগ্রামটিতে ইনপুট দেওয়ার কয়েকটি উপায় রয়েছে। এটি প্রতিটি উপস্থিতিকে তিনটি স্পেস-বিভাজিত সংখ্যার কমান্ড-লাইন আর্গুমেন্ট হিসাবে গ্রহণ করতে পারে (যা উদ্ধৃতিতে মোড়ানো প্রয়োজন pip.py present.pip "1 4 3" "3 0 0":)। পর্যায়ক্রমে, -rপতাকাটি নির্দিষ্ট করুন এবং প্রতিটি স্থানকে তিনটি স্পেস-বিভাজনযুক্ত সংখ্যার সমন্বয়ে স্টিডিনের একটি লাইন হিসাবে উপহার দিন। এটি অনলাইন চেষ্টা করুন!

কিভাবে?

                         g is list of cmdline args (or lines of stdin, if using -r flag)
                         s is space, PI is what it says on the tin (implicit)
                    g^s  Split each argument on spaces, so we have a list of lists
{                }MS     Map this function to each sublist and sum the results:
 $*a                      Fold the list on * (i.e. take the product)
    |                     Logical OR: if the above value is zero, use this value instead:
     4/3*PI*              4/3 pi, times
            @a            First element of the list
              **3         Cubed
                         Autoprint the result

0

পার্ল 5, 142 বাইট

সঙ্গে চালান -pকমান্ড লাইন, এবং টাইপ নম্বর, একটি কমা দিয়ে বিভাজিত যেমন:

5,0,0 অথবা (5,0,0)

উত্পাদন করা হবে

523.598820058997

piপার্লে কোনও কীওয়ার্ড নেই । এটি বেশিরভাগ ক্ষেত্রেই উল্লেখযোগ্য উল্লেখযোগ্য পরিসংখ্যানগুলির সাথে নির্ভুল, তবে আমি যে পাইয়ের সমস্ত পরিসংখ্যান টাইপ করি এমনকি এটি কিছু গণনার জন্য খুব সঠিক হবে না। তাই আমি এটি দিয়ে রেখেছি 3.1415। আমি গ্রহণযোগ্য কিনা তা আমি নিশ্চিত নই।

কোড:

@a=$_=~/(\d+,*)/g;$_=0;@n = map(split(/\D/),@a);for($i=0;$i<$#n;$i+=3){$x=$n[$i];$n[$i+1]==0?$_+=1420/339*$x**3:$_+=($x*$n[$i+1]*$n[$i+2]);}

ডেনিসের পরামর্শে আরও সুস্পষ্টতার জন্য সম্পাদিত, যিনি আমার চেয়ে বেসিক গণিতে আরও ভাল, এবং মাইকেলটি-র পরামর্শ অনুসারে বাইটস সংরক্ষণ করার পরে বাইটস সংরক্ষণ করুন।


2
আপনি কীভাবে পার্স করবেন 1511? 2. 3.1415 না সঠিকভাবে বৃত্তাকার বা পর্যাপ্ত সুনির্দিষ্ট হয় না। যদি আমার গণনাগুলি সঠিক হয় তবে ত্রুটিটি অবশ্যই 0.0000017 এর বেশি হওয়া উচিত না । 3. (4/3)*3.1415একটি একক ভাসা দিয়ে প্রতিস্থাপন করা যেতে পারে।
ডেনিস

১. ওপি বলছে যে আমরা গোলকের জন্য শূন্যের অনুমান করতে পারি (যা আসলে আমি সরবরাহ করেছি উদাহরণ ইনপুট), ২. আপনি কী গণনা ব্যবহার করছেন তা আমি জানি না, তবে নিশ্চিত, আমি নির্ভুলতা বাড়িয়ে দেব এবং ৩ ভাল পরামর্শ, আমি এটি মিস করেছি। ধন্যবাদ!
কোডফুন 64

এই মুহুর্তে আমার সামনে সংস্থানগুলি নেই, যদিও আমি ভাবছি যদি 1420/339এটি করা আপনাকে যুক্তিসঙ্গত সমীকরণের সাথে কয়েকটা বাইট ফিরিয়ে দেয়। (এটি 4/3 * 355/113)। ভগ্নাংশ এবং আপনার মূল্যমানের মধ্যে পার্থক্য হ'ল -8.49130615e-8

@ মিশেলটি এটি সবচেয়ে মজার বিষয়। আপনার কি এমন কোনও স্ক্রিপ্ট আছে যা সংখ্যার ক্ষুদ্রতম ভগ্নাংশের উপস্থাপনা খুঁজে পায়? ;)
কোডফুন 64

কোডফান 64 আমি পাই এর জন্য অন্যান্য সাধারণ অনুমানের কাজটি সবেমাত্র করেছি । 22/7, যথেষ্ট সহনশীলতা মধ্যে নেই তাই আমি এ glanced en.wikipedia.org/wiki/Approximations_of_%CF%80 একটি যদি এটি একটি সহনশীলতা কি @Dennis জন্য জিজ্ঞাসা ছিল বেশী ভালো ছিল দেখতে পরের এক ব্যবহার করা হয়েছে।

0

লুয়া, 115 104 বাইট

function f(a)b=0 for i=1,#a do c=a[i]b=b+(1<#c and c[1]*c[2]*c[3]or(4/3)*math.pi*c[1]^3)end return b end

সোজা সমাধান, আমাকে সিউডো-টের্নারি অপারেশনটি প্রথম বন্ধনে আবদ্ধ <condition> and <non-false> or <value if false>করতে হবে অন্যথায় উভয় ক্ষেত্রের সমষ্টি হবে।

ইনপুট অবশ্যই ফর্মের মধ্যে থাকতে হবে এবং array={{1,4,3},{2,2,2},{3},{4,4,4}}ফলাফল সম্পাদন করে দেখা যায় print(f(array))


0

05 এ বি 1 ই , 18 16 বাইট

εDgi3m4žq*3/*]PO

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

ব্যাখ্যা:

ε                # Map each inner list of the (implicit) input to:
 D               #  Duplicate the current inner list
  gi             #  Is the length 1 (is it an `R`):
    3m           #   Take the duplicated current item and take its cube
                 #    i.e. [3] → [27]
      žq         #   PI
        4*       #   Multiplied by 4
          3/     #   Divided by 3
                 #    → 4.1887902047863905
            *    #   And multiply it with the current cubed `R`
                 #    [27] and 4.1887902047863905 → [113.09733552923254]
]                # Close both the if and map
 P               # Take the product of each inner list
                 #  i.e. [[1,4,3],[2,2,2],[113.09733552923254],[4,4,4]]
                 #   → [12,8,113.09733552923254,64]
  O              # Take the total sum (and output implicitly)
                 #  i.e. [12,8,113.09733552923254,64] → 197.09733552923254

0

আর, 38 36 বাইট

function(x,y=4*pi/3*x,z=x)sum(x*y*z)

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


আপনার যা দরকার তা না f<-এবং {}?
জিউসেপে

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

(5,0,0) এর জন্য আমি শূন্য পেয়েছি - এটি কি সঠিক নয়? ব্যবহার করার জন্য সম্পাদনা করেছেন sum(এবং জিউসেপের পরামর্শ অনুযায়ী প্রয়োজনীয় কিছু জিনিস সরিয়ে
ফেললেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.