Merge branch 'ex8' into 'master'
Add exercise 8 See merge request oysteikt/v21-ma0301!2
This commit is contained in:
commit
83bee793a6
|
@ -0,0 +1,272 @@
|
|||
\documentclass[12pt]{article}
|
||||
\usepackage{ntnu}
|
||||
\usepackage{ntnu-math}
|
||||
\usepackage{ntnu-code}
|
||||
|
||||
\author{Øystein Tveit}
|
||||
\title{MA0301 Exercise 8}
|
||||
|
||||
\usepackage{amsthm}
|
||||
\usepackage{mathabx}
|
||||
|
||||
\begin{document}
|
||||
\ntnuTitle{}
|
||||
\break{}
|
||||
|
||||
\begin{excs}
|
||||
|
||||
\exc{}
|
||||
\begin{subexcs}
|
||||
\subexc{}
|
||||
Since there is only one president, the possibilities is the sum of candidates
|
||||
\[ 5 + 8 = 13 \]
|
||||
|
||||
\subexc{}
|
||||
For every candidate from one party there is all the candidates of the other party to be compared to. Therefore the amount of possibilities is
|
||||
\[ 5 \cdot 8 = 13 \]
|
||||
|
||||
\end{subexcs}
|
||||
|
||||
\exc{}
|
||||
\begin{subexcs}
|
||||
\subexc{}
|
||||
To end up with the amount of possibilities, we have to multiply the amounts of components together
|
||||
\[ 4 \cdot 12 \cdot 3 \cdot 2 = 288 \]
|
||||
|
||||
\subexc{}
|
||||
This reduces the amount of colors from 4 to 1. Therefore the amount of possibilities is
|
||||
\[ 1 \cdot 4 \cdot 3 \cot 2 = 24 \]
|
||||
|
||||
\end{subexcs}
|
||||
|
||||
\exc{}
|
||||
\begin{subexcs}
|
||||
\subexc{}
|
||||
Let one bakery item be either pastry or muffins.
|
||||
\[ (8 + 6) \cdot (4 + 6 + 1 + 1) = 14 \cdot 12 = 168 \]
|
||||
|
||||
\subexc{}
|
||||
\[ 14 \cdot 4 \cdot 6 \cdot 6 = 2016 \]
|
||||
|
||||
\subexc{}
|
||||
\[ 8 \cdot 6 \cdot 6 \cdot 1 \cdot 2(14 \cdot 4) = 32256 \]
|
||||
|
||||
\end{subexcs}
|
||||
|
||||
\exc{}
|
||||
|
||||
\[ \nPr{8!}{8!} = \frac{8!}{(8-8)!} = 8! = 40320 \]
|
||||
|
||||
\exc{}
|
||||
\begin{subexcs}
|
||||
\subexc{}
|
||||
\[ \nPr{7}{2} = \frac{7!}{(7-2)!} = \frac{7!}{5!} = 7 \cdot 6 = 42 \]
|
||||
|
||||
\subexc{}
|
||||
\[ \nPr{8}{4} = \frac{8!}{(8-4)!} = 8 \cdot 7 \cdot 6 \cdot 5 = 1680 \]
|
||||
|
||||
\subexc{}
|
||||
\[ \nPr{10}{7} = \frac{10!}{(10-7)!} = 10 \cdot 9 \cdot \ldots \cdot 4 = 604800 \]
|
||||
|
||||
\subexc{}
|
||||
\[ \nPr{12}{3} = \frac{12!}{(12-3)!} = 12 \cdot 11 \cdot 10 = 1320 \]
|
||||
|
||||
\end{subexcs}
|
||||
|
||||
\exc{}
|
||||
\begin{subexcs}
|
||||
\subexc{}
|
||||
\[ \nCr{10}{4} = \frac{10!}{4!(10-4)!} = \frac{10!}{4!6!} = \frac{10 \cdot \cancelto{3}{9} \cdot \cancelto{1}{8} \cdot 7}{1 \cdot \cancel{2} \cdot \cancel{3} \cdot \cancel{4}} = 10 \cdot 3 \cdot 7 = 210 \]
|
||||
|
||||
\subexc{}
|
||||
\[ \nCr{12}{7} = \frac{12!}{7!5!} = \frac{\cancelto{1}{12} \cdot 11 \cdot \cancelto{1}{10} \cdot 9 \cdot 8}{1 \cdot \cancel{2} \cdot \cancel{3} \cdot \cancel{4} \cdot \cancel{5}} = 11 \cdot 9 \cdot 8 = 792 \]
|
||||
|
||||
\subexc{}
|
||||
\[ \nCr{14}{12} = \frac{14!}{12!2!} = \frac{14 \cdot 13}{2} = 91 \]
|
||||
|
||||
\subexc{}
|
||||
\[ \nCr{15}{10} = \frac{15!}{10!5!} = \frac{\cancelto{1}{15} \cdot \cancelto{7}{14} \cdot 13 \cdot \cancelto{3}{12} \cdot 11}{1 \cdot \cancel{2} \cdot \cancel{3} \cdot \cancel{4} \cdot \cancel{5}} = 7 \cdot 13 \cdot 3 \cdot 11 = 3003 \]
|
||||
|
||||
\end{subexcs}
|
||||
|
||||
\exc{}
|
||||
\begin{subexcs}
|
||||
\subexc{}
|
||||
|
||||
If there are no restrictions, the amount of arrangements will be the number of permutations of the books
|
||||
|
||||
\[ \nPr{7}{7} = 7! \]
|
||||
|
||||
In order for the languages to alternate, the 3 books has to be inbetween each of the 4 books
|
||||
|
||||
There are $\nPr{3}{3}$ permutations of the C++ books. For each of those permutations, there are $\nPr{4}{4}$ permutations of the Java books.
|
||||
|
||||
Hence the amount of ways to arrange the books will be
|
||||
|
||||
\subexc{}
|
||||
\[ \nPr{3,3} \cdot \nPr{4}{4} = 3! \cdot 4! = 144 \]
|
||||
|
||||
Because all the C++ books has to be together, we can think of them like one "block" in the permutations of 5 blocks where four of the blocks are Java books.
|
||||
|
||||
For each of those blocks, there is $\nPr{3}{3}$ arrangements of the C++ books.
|
||||
|
||||
Hence the amount of ways to arrange the books will be
|
||||
|
||||
\subexc{}
|
||||
\[ \nPr{3}{3} \cdot \nPr{5}{5} = 3! \cdot 5! = 720 \]
|
||||
|
||||
Here, there are just two blocks. Therefore there is only $\nPr{2}{2}$ permutations of the blocks
|
||||
|
||||
For each of those permutations, there are $\nPr{3}{3}$ ways to arrange the C++ books.
|
||||
|
||||
And for each way to arrange the C++ books, there are $\nPr{4}{4}$ ways to arrange the java books.
|
||||
|
||||
Hence the amount of ways to arrange the books will be
|
||||
|
||||
\subexc{}
|
||||
\[ \nPr{2}{2} \cdot \nPr{3}{3} \cdot \nPr{4}{4} = 288 \]
|
||||
|
||||
\end{subexcs}
|
||||
|
||||
\exc{}
|
||||
\begin{subexcs}
|
||||
\subexc{}
|
||||
Because we don't care if there's a different order that the people were selected, we have to use combinations.
|
||||
|
||||
No restrictions means every combination of 12 in 20 people.
|
||||
|
||||
\[ \nCr{20}{12} = 125970 \]
|
||||
|
||||
\subexc{}
|
||||
For every combination of six women, we have every combination of six men.
|
||||
\[ \nCr{10}{6} \cdot \nCr{10}{6} = 44100 \]
|
||||
|
||||
\subexc{}
|
||||
Here we sum together all the combinations where there is an even number of women for every corresponding combination of men.
|
||||
\[ \sum^5_{i=0} \nCr{10}{2i} \cdot \nCr{10}{2(6-i)} = 63090 \]
|
||||
|
||||
\subexc{}
|
||||
In order for the selection to contain more women than men, the amount of women has to be 7 so that the amount of men is 5.
|
||||
|
||||
Therefore, we sum together all combination products from 7 to 10.
|
||||
\[ \sum^{10}_{i=7} \nCr{10}{i} \cdot \nCr{10}{12-i} = 40935 \]
|
||||
|
||||
\subexc{}
|
||||
Sum of all combination products from 8 to 10.
|
||||
\[ \sum^{10}_{i=8} \nCr{10}{i} \cdot \nCr{10}{12-i} = 10695 \]
|
||||
|
||||
\end{subexcs}
|
||||
|
||||
\exc{}
|
||||
|
||||
In order to solve this task, we will sum together separate cases \\
|
||||
|
||||
Case i) The number only contains one distinct digit from $\{1, 3, 7, 8\}$
|
||||
|
||||
This would be all the permutations of the digits, that is
|
||||
|
||||
\[ \nPr{4}{4} \] \\
|
||||
|
||||
Case ii) The number contains 2 of the digit $3$ and two distinct digits from $\{1, 7, 8\}$
|
||||
|
||||
Here, we start with all the ways we can form a four digit number including two of the digit $3$.
|
||||
|
||||
Since we don't care what order the $3$s are in, we want the combinations (for example, $x{\color{red}3}{\color{ForestGreen}3}x$ and $x{\color{ForestGreen}3}{\color{red}3}x$ are the same)
|
||||
|
||||
Therefore the amount of ways we can write a four digit number including two of the digit $3$ would be
|
||||
|
||||
\[\nCr{4}{2}\]
|
||||
|
||||
For each of those ways to write the number, there are all the permutations of the remaining digits ways to construct a number (here order does matter since the digits are distinct)
|
||||
|
||||
Hence, the amount of ways we can write this number would be
|
||||
|
||||
\[\nCr{4}{2} \cdot \nPr{3}{3}\] \\
|
||||
|
||||
Case iii) The number contains 2 of the digit $7$ and two distinct digits from $\{1, 3, 8\}$
|
||||
|
||||
This is the same as Case ii, just with $7$s instead of $3s$ \\
|
||||
|
||||
Case iv) The number contains 2 of the digit $3$ and 2 of the digit $7$
|
||||
|
||||
In this case, the amount of combinations would be the same as the amount of the ways we can write a four digit number with two fixed numbers.
|
||||
|
||||
Hence, the amount of ways we can write this number would be
|
||||
|
||||
\[\nCr{4}{2}\]
|
||||
|
||||
In conclusion, the total amount of distinct four digit integers we can make with the digits $1$, $3$, $3$, $7$, $7$, $8$ would be
|
||||
|
||||
\[ \nPr{4}{4} + \nCr{4}{2} \cdot \nPr{3}{3} \cdot 2 + \nCr{4}{2} = 102 \]
|
||||
|
||||
\exc{}
|
||||
|
||||
Here i wrote a program to calculate a modified pascal triangle and print the coefficients of a specific row
|
||||
|
||||
\codeFile{scripts/pascal.py}{python}
|
||||
|
||||
Here are the results:
|
||||
|
||||
\begin{verbatim}
|
||||
a.
|
||||
1 x^12 y^0
|
||||
12 x^11 y^1
|
||||
66 x^10 y^2
|
||||
220 x^9 y^3
|
||||
495 x^8 y^4
|
||||
792 x^7 y^5
|
||||
924 x^6 y^6
|
||||
792 x^5 y^7
|
||||
495 x^4 y^8
|
||||
220 x^3 y^9
|
||||
66 x^2 y^10
|
||||
12 x^1 y^11
|
||||
1 x^0 y^12
|
||||
|
||||
b.
|
||||
1 x^12 y^0
|
||||
24 x^11 y^1
|
||||
264 x^10 y^2
|
||||
1760 x^9 y^3
|
||||
7920 x^8 y^4
|
||||
25344 x^7 y^5
|
||||
59136 x^6 y^6
|
||||
101376 x^5 y^7
|
||||
126720 x^4 y^8
|
||||
112640 x^3 y^9
|
||||
67584 x^2 y^10
|
||||
24576 x^1 y^11
|
||||
4096 x^0 y^12
|
||||
|
||||
c.
|
||||
4096 x^12 y^0
|
||||
-73728 x^11 y^1
|
||||
608256 x^10 y^2
|
||||
-3041280 x^9 y^3
|
||||
10264320 x^8 y^4
|
||||
-24634368 x^7 y^5
|
||||
43110144 x^6 y^6
|
||||
-55427328 x^5 y^7
|
||||
51963120 x^4 y^8
|
||||
-34642080 x^3 y^9
|
||||
15588936 x^2 y^10
|
||||
-4251528 x^1 y^11
|
||||
531441 x^0 y^12
|
||||
\end{verbatim}
|
||||
|
||||
Which means that the coefficient for $x^9y^3$ for each of the subexercises would be
|
||||
|
||||
\begin{subexcs}
|
||||
\subexc{}
|
||||
\[ 220 \]
|
||||
|
||||
\subexc{}
|
||||
\[ 17601 \]
|
||||
|
||||
\subexc{}
|
||||
\[ -3041280 \]
|
||||
|
||||
\end{subexcs}
|
||||
|
||||
\end{excs}
|
||||
\end{document}
|
|
@ -0,0 +1,25 @@
|
|||
from itertools import permutations, combinations
|
||||
|
||||
def amountOfBooksWhere(fun):
|
||||
return len([bookOrder for bookOrder in permutations('jjjjccc') if fun(''.join(bookOrder))])
|
||||
|
||||
# a)
|
||||
def no_restriction(books):
|
||||
return True
|
||||
|
||||
# b)
|
||||
def alternating_books(books):
|
||||
return all(books.find(l+l) == -1 for l in set(books))
|
||||
|
||||
# c)
|
||||
def all_cs_are_together(books):
|
||||
return not books.find('ccc') == -1
|
||||
|
||||
# d)
|
||||
def all_cs_js_are_together(books):
|
||||
return not (books.find('ccc') == -1 or books.find('jjjj') == -1)
|
||||
|
||||
print(amountOfBooksWhere(no_restriction))
|
||||
print(amountOfBooksWhere(alternating_books))
|
||||
print(amountOfBooksWhere(all_cs_are_together))
|
||||
print(amountOfBooksWhere(all_cs_js_are_together))
|
|
@ -0,0 +1,38 @@
|
|||
from math import comb
|
||||
|
||||
def pascal(n, left, right):
|
||||
i = 1
|
||||
result = [[left, right]]
|
||||
|
||||
while i < n:
|
||||
prev_row = result[-1]
|
||||
result.append(
|
||||
[left ** (i+1)]
|
||||
+ [comb(i+1, j+1) * (left ** (len(prev_row)-j-1)) * (right ** (j+1)) for j in range(len(prev_row)-1)]
|
||||
+ [right ** (i+1)])
|
||||
|
||||
i += 1
|
||||
|
||||
return result
|
||||
|
||||
def pretty_print_pascal(triangle):
|
||||
for i, row in enumerate(triangle):
|
||||
print(f'{i+1}.\t{row}')
|
||||
|
||||
def pretty_print_row(row):
|
||||
for i, coefficient in enumerate(row):
|
||||
print(f'{coefficient}\tx^{len(row)-i-1}\ty^{i}')
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
print('a. ')
|
||||
pretty_print_row(pascal(12, 1, 1)[-1])
|
||||
print()
|
||||
|
||||
print('b. ')
|
||||
pretty_print_row(pascal(12, 1, 2)[-1])
|
||||
print()
|
||||
|
||||
print('c. ')
|
||||
pretty_print_row(pascal(12, 2, -3)[-1])
|
Loading…
Reference in New Issue