Line 3: | Line 3: | ||
=Notes On Blockus= | =Notes On Blockus= | ||
+ | Part 1 | ||
+ | Review Recursion | ||
+ | int fib(nit n) { | ||
+ | If (n==0) return 0; | ||
+ | If(n==1) return 1; | ||
+ | Return fin(n-1)+fib(n-2); | ||
+ | } | ||
+ | |||
+ | How many ways can you split 3 into different ways? | ||
+ | 3 | ||
+ | 1 2 | ||
+ | 2 1 | ||
+ | 1 1 1 | ||
+ | |||
+ | For any number n be about to generate all the possible types. | ||
+ | |||
+ | . = uncertain numbers | ||
+ | |||
+ | 4 | ||
+ | 2 . . (two possible numbers to pick 1 or 2) | ||
+ | 1. (one possible number left the pick 1) | ||
+ | 1 | ||
+ | |||
+ | Think of it as a budget | ||
+ | Can always spend 1 to n | ||
+ | USE A FOR LOOP | ||
+ | |||
+ | For nit partition of 7 | ||
+ | 4 … | ||
+ | 1.. | ||
+ | 2. | ||
+ | 1. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | //BUDGET COUNT IDEAS | ||
+ | |||
+ | void int p (int n) | ||
+ | { | ||
+ | int p; | ||
+ | if(n <= 0) return; | ||
+ | for (i = 1; i <= n; i++) | ||
+ | { | ||
+ | int p( n -i); | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | void int p2 (int [] pout, int curr, int n) | ||
+ | { | ||
+ | int i; | ||
+ | |||
+ | if(n ==0) | ||
+ | { | ||
+ | |||
+ | for(i = 0; i < curr; i++) | ||
+ | { | ||
+ | printf("%d", pout[1] | ||
+ | } | ||
+ | |||
+ | printf("\n")l | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | for (i = 0; i <= n; i++) { | ||
+ | pout [curr] = n -1; | ||
+ | int p2 (pout, curr +1, i); | ||
+ | } | ||
+ | |||
+ | } | ||
− | |||
Latest revision as of 05:39, 7 April 2011
Notes On Blockus
Part 1
Review Recursion int fib(nit n) {
If (n==0) return 0; If(n==1) return 1; Return fin(n-1)+fib(n-2);
}
How many ways can you split 3 into different ways? 3 1 2 2 1 1 1 1
For any number n be about to generate all the possible types.
. = uncertain numbers
4 2 . . (two possible numbers to pick 1 or 2) 1. (one possible number left the pick 1) 1
Think of it as a budget Can always spend 1 to n USE A FOR LOOP
For nit partition of 7 4 … 1.. 2. 1.
//BUDGET COUNT IDEAS
void int p (int n) {
int p; if(n <= 0) return; for (i = 1; i <= n; i++)
{
int p( n -i);
}
void int p2 (int [] pout, int curr, int n)
{
int i;
if(n ==0) {
for(i = 0; i < curr; i++) { printf("%d", pout[1] }
printf("\n")l return; }
for (i = 0; i <= n; i++) { pout [curr] = n -1; int p2 (pout, curr +1, i); }
}