User Name Password Register
DaniWeb IT Discussion Community
All
What is DaniWeb IT Discussion Community?
You're currently browsing the C++ section within the Software Development category of DaniWeb, a massive community of 427,680 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 4,317 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our C++ advertiser: Programming Forums
Views: 3006 | Replies: 13
Reply
Join Date: Nov 2006
Posts: 6
Reputation: merck120 is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
merck120 merck120 is offline Offline
Newbie Poster

Permutations of an N element array

  #1  
Nov 9th, 2006
I am currently working on a program in C, that needs to calculate the permutations
of a n integer array. The approach that I have taken is using recursion, using a n-element array of counters incrementing the correct value each recursion,
so the subroutine calls itself x (x being the max # of permutations) number of times returning the next permutation.

For example: Information known ahead of time: n = 3(could be any value); n_array[0] = 3 (could be any value from 1 to 9), n_array[1] = 3, n_array[2] = 3:
so first permutation (does not have to be in this order):
0 0 0
0 0 1
0 0 2
0 1 0
0 1 1
0 1 2
0 2 0
0 2 1
0 2 2
1 0 0
1 0 1
1 0 1
1 1 1 etc.
That being said, I attempted to write a loop within the recursive function that looks like this,
 for(i = 0; i <n; i++) {
     if(i == n-1) {
            count[i]++;
      }
      if(count[i] == n_array[i]) {
            count[i] = 0;
            count[i-1]++;
       }
}
which gives the following:
0 0 0
0 0 1
0 0 2
0 1 0
0 1 1
0 1 2
0 2 0
0 2 1
0 2 2
0 3 0 -> incorrect
1 0 1
1 0 2 etc.
I realize what my loop is doing, but I can't think of a way to fix
it, any fresh ideas would be appriciated. Thanks in advance.
Last edited by WaltP : Nov 10th, 2006 at 2:02 am. Reason: Use regular CODE tags, not INLINECODE tags for code blocks
AddThis Social Bookmark Button
Reply With Quote  
Join Date: Aug 2005
Posts: 4,782
Reputation: iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light 
Rep Power: 17
Solved Threads: 319
iamthwee's Avatar
iamthwee iamthwee is offline Offline
Industrious Poster

Re: Permutations of an N element array

  #2  
Nov 10th, 2006
this would be in the daniweb code snippet section.
I'm not a programmer. My attitude starts with ignorance, holds steady at conversation, and ends with a trip to the hospital. Get used to it.
Reply With Quote  
Join Date: Nov 2006
Posts: 6
Reputation: merck120 is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
merck120 merck120 is offline Offline
Newbie Poster

Re: Permutations of an N element array

  #3  
Nov 10th, 2006
Originally Posted by iamthwee View Post
this would be in the daniweb code snippet section.


Under what listing, I went through all snippets, and I did not see what I was looking for.
Reply With Quote  
Join Date: Aug 2005
Posts: 4,782
Reputation: iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light 
Rep Power: 17
Solved Threads: 319
iamthwee's Avatar
iamthwee iamthwee is offline Offline
Industrious Poster

Re: Permutations of an N element array

  #4  
Nov 10th, 2006
I'm not a programmer. My attitude starts with ignorance, holds steady at conversation, and ends with a trip to the hospital. Get used to it.
Reply With Quote  
Join Date: Jun 2006
Location: India
Posts: 6,863
Reputation: ~s.o.s~ is a splendid one to behold ~s.o.s~ is a splendid one to behold ~s.o.s~ is a splendid one to behold ~s.o.s~ is a splendid one to behold ~s.o.s~ is a splendid one to behold ~s.o.s~ is a splendid one to behold ~s.o.s~ is a splendid one to behold 
Rep Power: 23
Solved Threads: 344
Moderator
Featured Poster
~s.o.s~'s Avatar
~s.o.s~ ~s.o.s~ is offline Offline
Lazy, Useless & Apathetic

Re: Permutations of an N element array

  #5  
Nov 10th, 2006
A non recursive way, if it suits your need:

http://www.daniweb.com/code/snippet533.html
I don't accept change. I don't deserve to live.

Happiness corrupts people.

Failing to value the lives of others cheapens your own.
Reply With Quote  
Join Date: Nov 2006
Posts: 6
Reputation: merck120 is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
merck120 merck120 is offline Offline
Newbie Poster

Re: Permutations of an N element array

  #6  
Nov 10th, 2006
Originally Posted by ~s.o.s~ View Post
A non recursive way, if it suits your need:

http://www.daniweb.com/code/snippet533.html

Not what I am looking for, look at my first post.
Reply With Quote  
Join Date: Aug 2005
Posts: 4,782
Reputation: iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light 
Rep Power: 17
Solved Threads: 319
iamthwee's Avatar
iamthwee iamthwee is offline Offline
Industrious Poster

Re: Permutations of an N element array

  #7  
Nov 10th, 2006
Originally Posted by merck120 View Post
Not what I am looking for, look at my first post.


So, your example don't even make sense

0 0 0
0 0 1
0 0 2
0 1 0
0 1 1
0 1 2
0 2 0
0 2 1
0 2 2
1 0 0
1 0 1 <- Why the repeat
1 0 1 <-Why the repeat
1 1 1

In fact your example doesn't even exhibit behaviour you would expect when using the word 'permutation'
Last edited by iamthwee : Nov 10th, 2006 at 2:29 pm.
I'm not a programmer. My attitude starts with ignorance, holds steady at conversation, and ends with a trip to the hospital. Get used to it.
Reply With Quote  
Join Date: Nov 2006
Posts: 6
Reputation: merck120 is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
merck120 merck120 is offline Offline
Newbie Poster

Re: Permutations of an N element array

  #8  
Nov 10th, 2006
Originally Posted by iamthwee View Post
So, your example don't even make sense

0 0 0
0 0 1
0 0 2
0 1 0
0 1 1
0 1 2
0 2 0
0 2 1
0 2 2
1 0 0
1 0 1 <- Why the repeat
1 0 1 <-Why the repeat
1 1 1

In fact your example doesn't even exhibit behaviour you would expect when using the word 'permutation'

I sorry, that line is a typo, and it should not be repeated, and yeah I know permutation is not the best word, for what I am doing, combinations, would probably be better.

it should be:
100
101
102
110
etc.
Last edited by merck120 : Nov 10th, 2006 at 2:34 pm.
Reply With Quote  
Join Date: Aug 2005
Posts: 4,782
Reputation: iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light 
Rep Power: 17
Solved Threads: 319
iamthwee's Avatar
iamthwee iamthwee is offline Offline
Industrious Poster

Re: Permutations of an N element array

  #9  
Nov 10th, 2006
Ok, so do you mean the mathematical definition of the word combination.


Or are you going to change your mind again.
I'm not a programmer. My attitude starts with ignorance, holds steady at conversation, and ends with a trip to the hospital. Get used to it.
Reply With Quote  
Join Date: Nov 2006
Posts: 6
Reputation: merck120 is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
merck120 merck120 is offline Offline
Newbie Poster

Re: Permutations of an N element array

  #10  
Nov 10th, 2006
Originally Posted by iamthwee View Post
Ok, so do you mean the mathematical definition of the word combination.


Or are you going to change your mind again.

Yes, all of the mathematical combinations, per my fixed example.
Reply With Quote  
Reply

Only community members can participate in forum threads. You must register or log in to contribute.

DaniWeb C++ Marketplace
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)

 

Thread Tools Display Modes

Similar Threads
Other Threads in the C++ Forum

All times are GMT -4. The time now is 11:15 am.
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC