Problem with python code. Combinations of 2-state vectors

  • Comp Sci
  • Thread starter wyosteve
  • Start date
  • #1
23
0
I am trying to find all combinations of a four element vector that contains only 1's and -1's.
Ex (1,1,1,1),(-1,1,1,1),...(-1,-1,-1,-1) etc
My idea to do this is pretty inefficient im sure but I can't think of another way to do it, so here is what I was trying to do.
I found how many total vectors there would be, then created that many empty lists. I began with vector `A` and then compared this to each list in `vectors`. If `A` matched any of the lists then I randomly changed the sign of an element of `A`, and then again checked the new list `A` against `vectors`. If `A` didn't find a match then it replaced on of the lists in `vectors`, and the while loop was incremented by 1. This should proceed until all possible combinations have been found and printed.
However my code is just spitting out the first change in `vectors` then continually looping without adding any new `A`'s to `vectors`. Can anyone spot what in my code isn't doing what I intended it to do and/or point me in the right direction? Thanks

Code:
import random
    numvec = 2**4 # number of macrostates for a 4 component 2-state system

    vectors = [[0,0,0,0] for i in range(numvec)] #initializing the numvec vectors 
    A = [1,1,1,1]
    i = 0
    while i < 16:
        if any(x == A for x in vectors):
            y = random.randrange(0, 3)
            A[y] = A[y] * -1
        else:
            vectors[i] = A
            print vectors[i] 
            i += 1
      
    print vectors
Oh and again I realize this method is incredibly inefficient but as this is a homework assignment I am more concerned with being able to get python to do what I want it to do, then using a bunch of built in functions to do the work for me. Thanks again.
 

Answers and Replies

  • #2
23
0
never mind, figured it out (with help)
 

Related Threads on Problem with python code. Combinations of 2-state vectors

  • Last Post
Replies
4
Views
1K
Replies
2
Views
2K
  • Last Post
Replies
1
Views
1K
Replies
2
Views
585
Replies
4
Views
2K
  • Last Post
Replies
2
Views
870
Replies
1
Views
2K
Replies
2
Views
3K
Replies
3
Views
1K
Top