4 টি ব্যান্ড রঙের কোডেড প্রতিরোধকের প্রতিরোধের গণনা করুন


29

প্রতিরোধকের সাধারণভাবে আছে রঙ কোডেড ব্যান্ড যে তাদের চিহ্নিত করতে ব্যবহার করা হয় প্রতিরোধের মধ্যে Ohms । এই চ্যালেঞ্জে আমরা কেবলমাত্র সাধারণ 4-ব্যান্ড, ট্যান, অক্ষীয়-সীসা প্রতিরোধক বিবেচনা করব। আমরা তাদের প্রকাশ করব:

xyzt

xপ্রথম তাত্পর্যপূর্ণ চিত্রের জন্য প্রথম ব্যান্ডটি কোথায় , yদ্বিতীয় তাত্পর্যপূর্ণ চিত্রের জন্য দ্বিতীয় ব্যান্ড, zগুণকের জন্য তৃতীয় ব্যান্ড এবং সহনশীলতারt জন্য চতুর্থ ব্যান্ড ।

প্রত্যেকেই এমন xyztএকটি চিঠি উপস্থাপন করে যা ব্যান্ডের রঙ সংক্ষেপ করে:

K = Black
N = Brown
R = Red
O = Orange
Y = Yellow
G = Green
B = Blue
V = Violet
A = Gray
W = White
g = Gold
s = Silver
_ = None

সুতরাং, উদাহরণস্বরূপ, NKOgকিছু বিশেষ প্রতিরোধক।

এই টেবিলের সাহায্যে প্রতিরোধের গণনা করা যেতে পারে:

প্রতিরোধকের রঙের কোড সারণী

সারণী হিসাবে পরামর্শ দেয়:

  • xএবং yকোন অক্ষর ছাড়া হতে পারে g, sএবং _
  • zবাদে কিছু হতে পারে _
  • আমরা সীমাবদ্ধ করব tশুধুমাত্র হতে g, sঅথবা _

( এখানে এমন একটি সহজ প্রতিরোধের ক্যালকুলেটর রয়েছে যা আমরা ঠিক একই রকম প্রতিরোধকের সেট নিয়ে কাজ করি ))

প্রতিরোধের 10 * x + yবার zগুণক, একটি সহনশীলতা tশতাংশ।

উদাহরণস্বরূপ, এর প্রতিরোধের গণনা করতে NKOgআমরা দেখতে পাচ্ছি:

  1. N মানে ব্রাউন 1।
  2. K মানে 0 এর জন্য কালো
  3. Oমানে 10 3 এর জন্য কমলা ।
  4. g Gold 5% এর জন্য সোনার অর্থ।

সুতরাং প্রতিরোধের হয় (10*1 + 0)*10^310000 Ω ±5%

চ্যালেঞ্জ

এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা ফর্মের 4 টি চরিত্রের স্ট্রিংয়ের সাথে লাগে এবং ফর্মের xyztপ্রতিরোধকে মুদ্রণ করে বা প্রদান করে [resistance] Ω ±[tolerance]%

  • প্রতিরোধকটি "উল্টোদিকে" হতে পারে, অর্থাৎ বিপরীত ক্রমে tzyx। উদাহরণস্বরূপ, উভয় NKOgএবং gOKNউত্পাদন করা উচিত 10000 Ω ±5%
  • প্রতিরোধ সর্বদা প্লেইন ওহমে থাকে না, কখনও কিলোহোম, মেঘোম ইত্যাদি is
  • Ωohmsযেমন প্রতিস্থাপন করা যেতে পারে 10000 ohms ±5%
  • ±+/-যেমন প্রতিস্থাপন করা যেতে পারে 10000 Ω +/-5%
  • দশমিক পয়েন্টের ডানদিকে শূন্যগুলি অনুসরণ করা ভাল। (যেমন 10000.0 Ω +/-5%)
  • আপনি ধরে নিতে পারেন ইনপুট সর্বদা বৈধ ( xএবং yকখনও নয় gs_; zকখনও নয় _; tকেবল gs_)।
  • সমস্ত 10 × 10 × 12 × 3 = 3600 সম্ভাব্য প্রতিরোধকগুলিকে (2 × 3600 সম্ভাব্য ইনপুট) সমর্থন করা প্রয়োজন এমনকি যদি কিছু রঙের ব্যান্ড সংমিশ্রণগুলি বাস্তব জীবনে উত্পাদিত না হয়।

বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।

উদাহরণ

  1. gOKN10000 ohms +/-5%
  2. KKR_0 Ω +/-20%
  3. ggKN1 ohms ±5%
  4. ggGO3.5 Ω ±5%
  5. ssGO0.350 Ω ±10%
  6. GOOs53000 ohms +/-10%
  7. YAK_48.0 ohms +/-20%
  8. _WAV78000000000 Ω ±20%
  9. gBBB66000000.000 ohms ±5%
  10. _RYR2400.00 ohms ±20%

Iff তুমি আমার চ্যালেঞ্জ ভোগ, চেক আউট বিবেচনা ব্লক বিল্ডিং বট ঝাঁকে ঝাঁকে!

উত্তর:



9

সিজেম, 53 51 50 বাইট

" Ω ±"l_W%e<)iB%5*F-'%@"gKNROYGBVAW"f#:(2/'e*s~o

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

(বাইটের জন্য @ ইউজার ২৩০১৩ ধন্যবাদ


আমি পাইথন থেকে শুরু, কিন্তু

eval("%d%de%d"%tuple("gKNROYGBVAW".find(x)-1for x in L))

খুব ব্যয়বহুল ছিল ...


2
:(2/'e*s~সংরক্ষণ [
জিমি 23013

@ ইউজার ২৩০১৩ হ্যাঁ ধন্যবাদ, আমি eযেখানে এটি প্রয়োজন সেখানে সন্নিবেশ করার বিভিন্ন ধরণের চেষ্টা করছি , কিন্তু আমি কখনই ভাবিনি /এবং*
স্প ৩০০

4

পাইথন 3, 130 114 বাইট

def f(v):
 a,b,c,d=["_sgKNROYGBVAW".index(x)-3for x in v[::(1,-1)[v[0]in'sg_']]]
 return "%s Ω ±%s%%"%((10*a+b)*10**c,2.5*2**-d)

সম্পাদনা করুন: @ এসপি 3000 এটি নির্দেশ করে যে অর্ডারিংটি (10 বাইট সংরক্ষণের min(v,v[::-1])চেয়ে v[::(1,-1)[v[0]in'sg_']]) আরও ভালভাবে সনাক্ত করা যেতে পারে, এর সূচিটি পরীক্ষা করে _কিছু অপ্রয়োজনীয় সাদা স্থান সরিয়ে ফেলবে না।

def f(v):a,b,c,d=["sgKNROYGBVAW".find(x)-2for x in min(v,v[::-1])];return"%s Ω ±%s%%"%((10*a+b)*10**c,2.5*2**-d)

ধন্যবাদ - আমি লাইনগুলিকে একত্রিত করার বিষয়ে উপলব্ধি করেছি, তবে min()সঠিক ক্রমটি সনাক্ত করতে ব্যবহারের কৌশলটি আমি মিস করেছি - দুর্দান্ত।
ক্রোনাইটিস

3

পার্ল, 93 বাইট

#!perl -lp
ord>90and$_=reverse;s/./-3+index zsgKNROYGBVAW,$&/ge;$_=s/..\K/e/*$_." Ω ±"./.$/*5*$&."%"

1

হাস্কেল, 135 132 130 বাইট

r y|y<"["=p[k|j<-y,(c,k)<-zip"_ sgKNROYGBVAW"[-4..],c==j]
r y=r.reverse$y
p[a,b,c,d]=show((a*10+b)*10**c)++" Ω ±"++show(-5*d)++"%"

ব্যাখ্যা:

r y|y<"["=            If first letter of argument is a capital
p[..]                 Call p on the list created
[k|                   Make a list of all k
   j<-y               Draw character j from input
       ,(c,k)<-       With (c,k) being a pair from
               zip    A list of pairs of corresponding elements from the lists:
"_ sgKNROYGBVAW"       The space at 2nd position is to match '_' with -4, but 's' with -2
[-4..]                 An infinite list starting at -4
,c==j]                Only use element k if j equals the character c

r y=r.reverse$y       If first call fails, call again with reversed argument.

p[a,b,c,d]=           Assign the first four elements of the argument to a,b,c,d respectively.
show                  Turn (number) into string
10**c                 10 to the power of c
++                    Concatenate strings
-5*d                  This works for the tolerance because '_' makes d=-4

নিমিকে ধন্যবাদ, আমি আরও 2 বাইট ছেঁটেছি

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