How to wire given resistors to yield a total resistance?

In summary: return 0def para(a,b): return a*b/(a+b)def find(r,sol): global count l = len(r) if l <= 1: count = count + 1 if abs(r[0] - 206.421) < error: print (sol) return 1 else:
  • #1
Stank95
2
0
Essentially I have been given five resistors of strength 180 kΩ, 220 kΩ, 270 kΩ, 330 kΩ, and 390 kΩ and have been told to devise a way to wire these to produce a total resistance of exactly 206.421 kΩ. I have been working on this simply using a guess and check method and have had no luck. Hopefully someone could explain an actual method that I could use, and or provide the set up required. Any and all help is appreciated. Thanks
 
Physics news on Phys.org
  • #2
You might have to end up doing a process of elimination by putting them all in parallel first, then get equivalent resistance and so on.
 
  • #3
I've determined so far that there are no resistors in series on their own, however there have to be some in series within a parallel branch. There is also only one parallel branch within a another parallel. I'm fairly certain I have the wiring correct, but there are literally thousands of combinations of where to put the resistors. That is the main problem.
 
  • #4
I'd probably come up with a bunch of possible topologies and write a computer program to try each possible resistor at each possible location.
 
  • #5
I don't see what's wrong with guess and check, and I don't see that there are thousands of possibilities. Just be methodical:

All parallel: 51 ohms, too small.
1 in series, 4 in parallel: 252-449 ohms, too big.
2+ in series, 3 in parallel: even bigger.
A group of 2 in parallel in series with a group of 3 in parallel: 206.55-251.19, too big.

And so on.
 
  • #6
There are thousands of possibilities. Specifically there are at least:
[tex]\sum _{n=1}^5 \frac{5!}{(5-n)!}2^{n-1}=3165[/tex]
possibilities
 
Last edited:
  • #7
There may be over 3000 possibilities for wiring the resistors, but many can be eliminated by looking at the values of the individual resistors versus the desired equivalent resistance.

As Vanadium 50 has pointed out, all resistors in series and all resistors in parallel have equivalent resistances which are too large and too small. Therefore, it stands to reason that a combination of at least two sets of resistors wired in parallel and then wired in series would give the desired equivalent resistance.
 
  • #8
I can't see a way to get the fractional part with just two resistors. Nearest I got with a spreadsheet was 116.471 (= 330//180).

Edit: Nearest I can get quickly is 206.471 using 180//180 + 330//180 but I guess that's not allowed :-)
 
Last edited:
  • #9
Using the python program below the closest I can get is 206.4177

Output is:

['+', 180, 220, 400, '//', 270, 400, 161.1940, '+', 390, 161.1940, 551.1940, '//', 330, 551.1940, 206.4177]

so 180 and 220 in series, the result parallel with 270, the result of that in series with 390
and the result of that parallel with 330 to get 206.4177

The find function takes a list of resistors of length n, and considers all the ways to make a list of resistors of length n-1 from it, by combining 2 of them, or just dropping 1 resistor.
eventually you get a list of length 1, and you can compare the only member of the list with the target.
If you put in error = 0.0005, you get no solution, and 14400 lists of length 1 are considered.

Code:
resistors  = [180,220,270,330,390]

error = 0.005

count = 0

def para(a,b): return a*b/(a+b)

def find(r,sol):

    global count

    l = len(r)
    
    if l <= 1:

        count = count + 1
    
        if abs(r[0] - 206.421) < error:

            print (sol)
            return 1
        else:
            return 0
    else: 

        for i in range(0,l): 
            if find(r[0:i] + r[i+1:l],sol): return 1

        for i in range(0,l-1):
            for j in range(i+1,l):

                if find(r[0:i] + r[i+1:j] + r[j+1:l] + [ r[i] + r[j] ] ,sol + ['+'] + [r[i]]+[r[j]]+[ r[i] + r[j] ] ):
                    return 1
                if find(r[0:i] + r[i+1:j] + r[j+1:l] + [para(r[i],r[j])], sol + ["//"] + [r[i]]+[r[j]]+[ para(r[i],r[j]) ]): 
                    return 1

        return 0find (resistors,[])
print (count)

There are still 30 different bridge networks where no resistances are parallel or in series to try.
 
  • #10
All the bridge networks have resistance > 239 ohm, so there are no solutions.

If you add 470 ohm, you get (180+470)//(220+390)//(270+300)) = 206.4108 ohm
 
  • #11
Stank95 said:
Essentially I have been given five resistors of strength 180 kΩ, 220 kΩ, 270 kΩ, 330 kΩ, and 390 kΩ and have been told to devise a way to wire these to produce a total resistance of exactly 206.421 kΩ. I have been working on this simply using a guess and check method and have had no luck. Hopefully someone could explain an actual method that I could use, and or provide the set up required. Any and all help is appreciated. Thanks
Seriously, it can't be done.

The best resistors are typically accurate to 1% (about 2 to 4 kΩ, for the ones you are given). Yet you are to produce a final resistance accurate to 0.001 kΩ! I'd be very much surprised if you could measure these resistors to better than 0.1 kΩ, but do correct me if I'm wrong.

If you really need a 206 kΩ resistor, then just get a 200 kΩ resistor, measure it, then get 1 or 2 smaller resistors to make up the remaining difference and put them in series.

Who gave you this task? It makes no sense and serves no useful purpose that I can see.
 
  • #12
We used to have a table on the lab wall to help us with this. You never needed more than two resistors - if you took the tolerances into account. :wink:
 
  • #13
"exactly" to 3 decimal places is pretty tough.
 
  • #14
It appears to be a homework assignment, assuming perfect resistors.
 
  • #15
RocketSci5KN said:
It appears to be a homework assignment, assuming perfect resistors.

Yes. A Maths homework and not much use for learning Electronics. Accuracy and tolerances are what Engineering's all about
 
  • #16
I tried a number of topologies including an unbalanced wheatstone bridge. So far, it looks like Willem2's solution is the closest. The next closest solution from the ones I tried came to 206.471 ohms.
 
Back
Top