বৈদ্যুতিক সার্কিট মধ্যে সমান্তরাল প্রতিরোধের


20

পরিচিতি:

দুটি প্রতিরোধক R1এবং R2সমান্তরালভাবে (চিহ্নিত R1 || R2) এর সম্মিলিত প্রতিরোধ রয়েছে Rp:

RP2=R1R2R1+R2
বা মতামত হিসাবে প্রস্তাবিত:

RP2=11R1+1R2

তিন প্রতিরোধকের, R1, R2এবং R3সমান্তরাল ( R1 || R2 || R3) একটি মিলিত সহ্য করার ক্ষমতা আছে (R1 || R2) || R3 = Rp || R3:

RP3=R1R2R1+R2R3R1R2R1+R2+R3

বা, আবার মতামত হিসাবে পরামর্শ হিসাবে:

RP3=11আর1+ +1আর2+ +1আর3

এই সূত্রগুলি অবশ্যই অনিশ্চিত সংখ্যক প্রতিরোধকের কাছে প্রসারিত করা যেতে পারে।


চ্যালেঞ্জ:

ইনপুট হিসাবে ইতিবাচক প্রতিরোধকের মানগুলির একটি তালিকা নিন এবং সংযুক্ত প্রতিরোধের আউটপুট করুন যদি সেগুলি বৈদ্যুতিক সার্কিটের সমান্তরালে স্থাপন করা হয়। আপনি সর্বোচ্চ সংখ্যক প্রতিরোধক ধরে নাও নিতে পারেন (আপনার কম্পিউটার অবশ্যই এটি পরিচালনা করতে পারে)।

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

1, 1
0.5

1, 1, 1
0.3333333

4, 6, 3
1.3333333

20, 14, 18, 8, 2, 12
1.1295

10, 10, 20, 30, 40, 50, 60, 70, 80, 90
2.6117  

প্রতিটি ভাষায় সংক্ষিপ্ত কোড জিততে পারে। ব্যাখ্যা অত্যন্ত উত্সাহিত হয়।


6
আরও কয়েকটি চ্যালেঞ্জ রয়েছে যা সুরেলা মানে ( 1 2 3 ) বোঝায় তবে আমি মনে করি না এখানে একটি সদৃশ আছে। ফ্লাওয়ারের পরামর্শ অনুসারে, আমি মনে করি এই চ্যালেঞ্জের বডিটিতে কোথাও সেই বাক্যাংশটি তালিকাবদ্ধ থাকা উচিত যাতে আমরা ভবিষ্যতের ডুপ আরও সহজে বন্ধ করতে পারি।
FryAmTheEggman

উত্তর:




9

ম্যাটল্যাব , 14 বাইট

ম্যাটল্যাবে কোনও ভেক্টরের সর্বমোট norm(...,p)গণনা করা হয় p। এটি সাধারণত p1 জন্য সংজ্ঞায়িত হয়

vp=(i|vi|p)1p.

তবে ভাগ্যক্রমে আমাদের ক্ষেত্রে, এটি p=1 জন্যও কাজ করে । (দ্রষ্টব্য যে এটি অষ্টাভে কাজ করে না))

@(x)norm(x,-1)

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


4
এটি একসাথে ভয়ঙ্কর এবং সুন্দর!
পাল্টা ঘড়ির কাঁটা বন্ধ করা বন্ধ করে দিয়েছে

1
ধন্যবাদ, এগুলি সেরা অভিনন্দন :)
flawr

7

জেলি ,  5  3 বাইট

İSİ

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

কিভাবে?

প্রাথমিকভাবে আমি এই ফর্মটি আমার বৈদ্যুতিন ইঞ্জিনিয়ারিংয়ের দিনগুলি থেকে ভুলে গিয়েছিলাম ... আমরা কত সহজে ভুলে যাই।

İSİ - Link: list of numbers, R   e.g. [r1, r2, ..., rn]
İ   - inverse (vectorises)            [1/r1, 1/r2, ..., 1/rn]
 S  - sum                             1/r1 + 1/r2 + ... + 1/rn
  İ - inverse                         1/(1/r1 + 1/r2 + ... + 1/rn)

4
আমি ধরে নিচ্ছি যে İএকইভাবে iউচ্চারণ করা হয় list। এই চ্যালেঞ্জ বলার উপায় কি সহজ ছিল?
স্টিভি গ্রিফিন


4

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

@(x)1/sum(1./x)

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

হারমোনিক গড়, দ্বারা বিভক্ত n। সহজ কিছু.


@ যে আপনি জানেন, আমি মনে করি না যে আমি এটি কখনও লক্ষ্য করেছি। আমার ধারণা এটি প্রায় সুরেলা মানে ...
জিউসেপ

4

1
এপিএল হ'ল মূল গল্ফিং ভাষা!

@ ইয়িমিনরং এটি কোনও গল্ফকারী ভাষা নয় ...: পি
এরিক দি আউটগল্ফার

আমি জানি, তবে এর বাইট গণনাটি আধুনিক গল্ফিং ভাষার সাথে সমান!


@ আদম ওহ দুহ অবশ্যই ভেক্টরদের 1∘⊥মতো +/...
এরিক আউটগলফার




3

পার্ল 6 , 14 বাইট

1/*.sum o 1/**

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

1 / **এটি একটি বেনাম ফাংশন যা তার যুক্তিগুলির পারস্পরিক ক্রিয়াকলাপগুলির একটি তালিকা প্রদান করে। 1 / *.sumএটি অন্য একটি বেনাম ফাংশন যা এর তালিকার যুক্তিগুলির উপাদানগুলির যোগফলের পারস্পরিক প্রতিপাদন করে। oঅপারেটর ঐ দুই ফাংশন composes।


খুব সুন্দর. হাইপারহাটভারগুলি গল্ফিংয়ে প্রায়শই যথেষ্ট পরিমাণে ব্যবহৃত হয় না কারণ সেগুলি আরও জটিল অভিব্যক্তিতে ব্যবহার করা যায় না। যদি তারা স্বাভাবিক তল্লাসিদের কাছাকাছি থাকত তবে আমি এই জাতীয় কাজ করার আশা করতাম তবে হায় হায় ...
জো কিং

হ্যাঁ, এটি সম্ভবত প্রথমবারের মতো আমি এমনকি গল্ফিংয়ের জন্য কোনওটি ব্যবহার করার কথা ভেবেছিলাম এবং এর সীমাবদ্ধতাগুলি আবিষ্কার করতে আমি হতাশ হয়েছি।
শান


3

কোনও সুরেলা গড়ন অন্তর্নির্মিত আছে, বা এটি টাইপ দীর্ঘ?
এরিক ডুমিনিল

@ এরিক আফাইক এটি স্বজ্ঞাতভাবে নামকরণ করেছে HarmonicMeanএবং এটি দীর্ঘ।
আমার সর্বনাম 15

3

ম্যাথগল্ফ , ৩bytes

∩Σ∩

বিল্টিনগুলি ব্যবহার করে অন্যান্য উত্তরগুলির সমান (1এন) এবং Σ(যোগফল):

M(x1,...,xn)=11x1+1x2+...+1xn

Try it online.


2

PHP, 51 bytes

Reciprocal of sum of reciprocals. Input is $a.

1/array_reduce($a,function($c,$i){return$c+1/$i;});

Try it online!


With PHP7.4, I think you can do this: 1/array_reduce($a,fn($c,$i)=>$c+1/$i); (38 bytes). Read more in wiki.php.net/rfc/arrow_functions
Ismael Miguel

I think you're right! But nowhere to demo?

You have to download it yourself. However, since PHP 7.4.0RC1 was released on the 5th of this month (php.net/archive/2019.php#2019-09-05-1), you probably are safe using it. If you have doubts, you can ask in the meta.
Ismael Miguel




2

x86-64 মেশিন কোড - 20 18 বাইট

0F 57 C0             xorps       xmm0,xmm0  
loopHead
F3 0F 53 4C 8A FC    rcpss       xmm1,dword ptr [rdx+rcx*4-4]
0F 58 C1             addps       xmm0,xmm1  
E2 F6                loop        loopHead
0F 53 C0             rcpps       xmm0,xmm0  
C3                   ret  

ইনপুট - উইন্ডোজ কলিং কনভেনশন। প্রথম প্যারামিটারটি প্রতিরোধকের সংখ্যা RCX। প্রতিরোধকগুলিতে একটি পয়েন্টার রয়েছে RDX*psতারা এক বাইট ছোট হওয়ায় নির্দেশাবলী ব্যবহৃত হয়। প্রযুক্তিগতভাবে, আপনার কাছে কেবল প্রায় 2 ^ 61 প্রতিরোধক থাকতে পারে তবে আপনি তার অনেক আগেই র‌্যামের বাইরে চলে যাবেন। যথাযথতাও দুর্দান্ত নয়, যেহেতু আমরা ব্যবহার করছি rcpps


"কেবলমাত্র 2⁶¹ রোধকারী" সম্ভবত পর্যবেক্ষণযোগ্য মহাবিশ্ব পূরণ করতে পারে (বহুবার)!

প্রকৃতপক্ষে, 2 ^ 61 কেবলমাত্র 2.305843e + 18 এবং পর্যবেক্ষণযোগ্য মহাবিশ্বের ব্যাস 8.8 × 10 ^ 26 মিটার।
আমি

হ্যাঁ, মারাত্মক পর্যালোচনা! আসল প্রস্থের দৈর্ঘ্য মঙ্গলগ্রহের ছোট চাঁদ ডিমোসের আকার এবং ভর প্রায় হবে।

2

জাভা 8, 24 বাইট

a->1/a.map(d->1/d).sum()

আমি লক্ষ্য করেছি যে এখানে এখনও কোনও জাভা উত্তর নেই, তাই অনুভূত হয়েছে আমি একটি যুক্ত করব।

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

ব্যাখ্যা:

অন্যান্য উত্তরের মতো একই হারমোনিক গড় পদ্ধতির ব্যবহার করে:

M(x1,...,xn)=11x1+1x2+...+1xn

a->                       // Method with DoubleStream parameter and double return-type
     a.map(d->1/d)        //  Calculate 1/d for each value `d` in the input-stream
                  .sum()  //  Then take the sum of the mapped list
   1/                     //  And return 1/sum as result


2

ইন্টেল 8087 এফপিইউ মেশিন কোড, 19 বাইট

 D9 E8      FLD1                    ; push 1 for top numerator on stack
 D9 EE      FLDZ                    ; push 0 for running sum 
        R_LOOP: 
 D9 E8      FLD1                    ; push 1 numerator for resistor
 DF 04      FILD WORD PTR[SI]       ; push resistor value onto stack 
 DE F9      FDIV                    ; divide 1 / value 
 DE C1      FADD                    ; add to running sum 
 AD         LODSW                   ; increment SI by 2 bytes 
 E2 F4      LOOP R_LOOP             ; keep looping 
 DE F9      FDIV                    ; divide 1 / result                  
 D9 1D      FSTP WORD PTR[DI]       ; store result as float in [DI]

এটি মূল আইবিএম পিসির 8087 এফপিইউতে স্ট্যাক-ভিত্তিক ভাসমান পয়েন্ট নির্দেশাবলী ব্যবহার করে।

ইনপুট প্রতিরোধকের মানগুলিতে পয়েন্টার হয়, প্রতিরোধকের [SI]সংখ্যা CX। আউটপুট একক নির্ভুলতার (ডিডি) মান হয় [DI]


1

ডার্ট , 42 বাইট

f(List<num>a)=>a.reduce((p,e)=>p*e/(p+e));

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

numপ্রকারটি স্পষ্টভাবে নির্দিষ্ট করে ধরণী sucky হয়, টাইপ infering প্রতিরোধ করে, কারণ এটি অনুমান করা হয় (dynamic, dynamic) => dynamicযে কোন কারণে দ্বিগুণ উত্পাদন করতে পারে না


1

পিএইচপি , 40 বাইট

for(;$n=$argv[++$i];$r+=1/$n);echo 1/$r;

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

পরীক্ষা: এটি অনলাইনে চেষ্টা করে দেখুন!

অনুরূপ Yimin রঙ এর সমাধান বাইট গণনা কিন্তু বিল্ট-ইনস এবং সব প্রোগ্রাম বাইট ছাড়া অন্তর্ভুক্ত করা হয়।


1

পাইথন 3, 58 44 বাইট

f=lambda x,y=0,*i:f(x*y/(x+y),*i)if y else x

একটি পুনরাবৃত্তি ফাংশন। প্যাকেজবিহীনভাবে পাস করার জন্য আর্গুমেন্টগুলি দরকার:

i=[10, 10, 20]
f(*i)

অথবা

f(10, 10, 20)

ব্যাখ্যা:

# lambda function with three arguments. *i will take any unpacked arguments past x and y,
# so a call like f(10, 20) is also valid and i will be an empty tuple
# since y has a default value, f(10) is also valid
f=lambda x,y=0,*i: \

# a if case else b
# determine parallel resistance of x and y and use it as variable x
# since i is passed unpacked, the first item in the remaining list will be y and
# the rest of the items will be stored in i
# in the case where there were no items in the list, y will have the default value of 0
f(x*y/(x+y),*i) \

# if y does not exist or is zero, return x
if y else x

1

কাঠকয়লা , 7 বাইট

I∕¹Σ∕¹A

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। 1V প্রয়োগ করা হলে প্রতিটি প্রতিরোধকের দ্বারা অঙ্কিত বর্তমানের গণনা করে মোট গ্রহণ করে এবং 1V প্রয়োগ করা হলে সেই প্রতিরোধের গণনা করে যা সেই বর্তমানকে আঁকতে পারে। ব্যাখ্যা:

      A Input array
    ∕¹  Reciprocal (vectorised)
   Σ    Sum
 ∕¹     Reciprocal
I       Cast to string for implicit print


1

[ম্যাটল্যাব], 15 বাইট

Flawr চমৎকার উত্তর চেয়ে আরও একটি বাইট , কিন্তু আমি অন্যান্য ফাংশন ব্যবহার করতে হয়েছিল তাই এখানে যায়:

@(x)1/sum(1./x)

এটি বরং সুস্পষ্ট, এটি প্রতিরোধের বিপরীতের সমষ্টি করে, তারপরে সমতুল্য সমান্তরাল প্রতিরোধের আউটপুটে যোগফলকে উল্টে দেয়।


1

ফোর্থ (গফার্থ) , 49 বাইট

: f 0e 0 do dup i cells + @ s>f 1/f f+ loop 1/f ;

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

ইনপুটটি একটি মেমরি ঠিকানা এবং অ্যারের দৈর্ঘ্য (অপ্রচলিত অ্যারে হিসাবে ব্যবহৃত হয়, যেহেতু ফোর্থে বিল্ট-ইন অ্যারে কনস্ট্রাক্ট নেই)

অন্যান্য উত্তরগুলির মতো যোগফলের যোগফলকে ব্যবহার করে

কোড ব্যাখ্যা

: f           \ start a new word definition
  0e          \ stick an accumulator on the floating point stack
  0 do        \ start a loop from 0 to array-length -1
    dup       \ copy the array address
    i cells + \ get the address of the current array value
    @ s>f     \ get the value and convert it to a float
    1/f f+    \ invert and add to accumulator
  loop        \ end the loop definition
  1/f         \ invert the resulting sum
;             \ end the word definition

1

expl3 (LaTeX3 প্রোগ্রামিং স্তর), 65 বাইট

নিম্নলিখিতটি একটি ফাংশন সংজ্ঞায়িত করে যা ফলাফলটি টার্মিনালে মুদ্রণ করে (দুর্ভাগ্যক্রমে expl3খুব ভার্জোজ ফাংশন নাম রয়েছে):

\def\1#1{\fp_show:n{1/(\clist_map_function:nN{#1}\2)}}\def\2{+1/}

একটি সম্পূর্ণ স্ক্রিপ্ট যা টার্মিনাল থেকে চালানো যেতে পারে যাবতীয় পরীক্ষার কেস পাশাপাশি প্রবেশের সেটআপ সহ expl3:

\RequirePackage{expl3}\ExplSyntaxOn
\def\1#1{\fp_show:n{1/(\clist_map_function:nN{#1}\2)}}\def\2{+1/}
\1{1, 1}
\1{1, 1, 1}
\1{4, 6, 3}
\1{20, 14, 18, 8, 2, 12}
\1{10, 10, 20, 30, 40, 50, 60, 70, 80, 90}
\stop

pdflatex <filename>নিম্নলিখিতটি দিয়ে চালিত হলে কনসোল আউটপুট:

This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./cg_resistance.tex
LaTeX2e <2018-12-01>
(/usr/local/texlive/2019/texmf-dist/tex/latex/unravel/unravel.sty
(/usr/local/texlive/2019/texmf-dist/tex/latex/l3kernel/expl3.sty
(/usr/local/texlive/2019/texmf-dist/tex/latex/l3kernel/expl3-code.tex)
(/usr/local/texlive/2019/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def))
 (/usr/local/texlive/2019/texmf-dist/tex/latex/l3packages/xparse/xparse.sty)
(/usr/local/texlive/2019/texmf-dist/tex/generic/gtl/gtl.sty))
> 1/(\clist_map_function:nN {1,1}\2)=0.5.
<recently read> }

l.3 \1{1, 1}

?
> 1/(\clist_map_function:nN {1,1,1}\2)=0.3333333333333333.
<recently read> }

l.4 \1{1, 1, 1}

?
> 1/(\clist_map_function:nN {4,6,3}\2)=1.333333333333333.
<recently read> }

l.5 \1{4, 6, 3}

?
> 1/(\clist_map_function:nN {20,14,18,8,2,12}\2)=1.129538323621694.
<recently read> }

l.6 \1{20, 14, 18, 8, 2, 12}

?
> 1/(\clist_map_function:nN
{10,10,20,30,40,50,60,70,80,90}\2)=2.611669603067675.
<recently read> }

l.7 \1{10, 10, 20, 30, 40, 50, 60, 70, 80, 90}

?
 )
No pages of output.
Transcript written on cg_resistance.log.

ব্যাখ্যা

\fp_show:n : তার তর্কটিকে একটি ভাসমান বিন্দু অভিব্যক্তি হিসাবে মূল্যায়ন করে এবং টার্মিনালে ফলাফল মুদ্রণ করে, প্রতিটি প্রসারণযোগ্য ম্যাক্রো সেই প্রক্রিয়া চলাকালীন প্রসারিত হয়।

\clist_map_function:nN : দুটি আর্গুমেন্ট গ্রহণ করে, কমা দ্বারা পৃথক করা তালিকা এবং একটি ফাংশন / ম্যাক্রো, যদি \clist_map_function:nN { l1, l2, l3 } \fooএটির মতো বলা হয় তবে এটির মতো কিছুতে প্রসারিত হয় \foo{l1}\foo{l2}\foo{l3}। আমাদের ক্ষেত্রে \fooম্যাক্রোর পরিবর্তে \2ব্যবহৃত হয়, যা প্রসারিত হয় +1/যাতে অভিব্যক্তিটি প্রসারিত হয়+1/{l1}+1/{l2}+1/{l3}

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