Presentation is loading. Please wait.

Presentation is loading. Please wait.

MA/CSSE 473 Day 19 Sleepsort Finish Nim Josephus problem

Similar presentations


Presentation on theme: "MA/CSSE 473 Day 19 Sleepsort Finish Nim Josephus problem"— Presentation transcript:

1 MA/CSSE 473 Day 19 Sleepsort Finish Nim Josephus problem
Transform and conquer examples

2 MA/CSSE 473 Day 19 Announcement of Exam 2 allowed resource change
Student Questions SleepSort demo Proofs of Nim strategy lemmas Josephus problem Transform and conquer – what's it all about? Instance simplification: presorting Instance simplification: Gaussian elimination and LU decomposition (Representation change: AVL trees) Pass around attendance sheet.

3 Recap Multi-Pile Nim There are multiple piles of chips. Two players take turns by removing from any single pile at least one and at most all of that pile's chips. (The number of chips taken can vary from move to move) The winner is the player who takes the last chip. What is the winning strategy for 2-pile Nim? For the general case, consider the "Nim sum", x  y, which is the integer obtained by bitwise XOR of corresponding bits of two non-negative integers x and y. What is 6  3? 2-piles: Take enough chips form larger pile so that n1 = n2. 6  3: 1 1 0 0 1 1 ------ = 5

4 Recap: Multi-Pile Nim Strategy
Solution by C.L. Bouton: The first player has a winning strategy iff the nim sum of the "pile counts" is not zero. Let's prove it. Note that  is commutative and associative. Also note that for any non-negative integer k, kk is zero.

5 Multi-Pile Nim Proof Notation:
Let x1, … ,xn be the sizes of the piles before a move, and y1, … ,yn be the sizes of the piles after that move. Let s = x1  …  xn, and t = y1  …  yn. Observe: If the chips were removed from pile k, then xi = yi for all ik, and xk > yk . Lemma 1: t = s  xk  yk . Lemma 2: If s = 0, then t  0. Lemma 3: If s  0, it is possible to make a move such that t=0. [after proof, do an example]. Proof of the strategy is then a simple induction. (It's a HW problem) Example: 3 piles, containing 7, 13, and 8 chips. Lemma 1 proof: t = 0 ⊕ t = s ⊕ s ⊕ t = s ⊕ (x1 ⊕ ... ⊕ xn) ⊕ (y1 ⊕ ... ⊕ yn) = s ⊕ (x1 ⊕ y1) ⊕ ... ⊕ (xn ⊕ yn) = s ⊕ 0 ⊕ ... ⊕ 0 ⊕ (xk ⊕ yk) ⊕ 0 ⊕ ... ⊕ 0 = = s ⊕ xk ⊕ yk Lemma 2 proof: If there is no possible move, then the lemma is vacuously true (and the first player loses the normal play game by definition). Otherwise, any move in heap k will produce t = xk ⊕ yk from (*). This number is nonzero, since xk ≠ yk. Lemma 3 proof: Let d be the position of the leftmost (most significant) nonzero bit in the binary representation of s, and choose k such that the dth bit of xk is also nonzero. (Such a k must exist, since otherwise the dth bit of s would be 0.) Then letting yk = s ⊕ xk, we claim that yk < xk: all bits to the left of d are the same in xk and yk, bit d decreases from 1 to 0 (decreasing the value by 2d), and any change in the remaining bits will amount to at most 2d−1. The first player can thus make a move by taking xk − yk objects from heap k, then t = s ⊕ xk ⊕ yk (by (Lemma 1)) = s ⊕ xk ⊕ (s ⊕ xk) = 0.

6 Josephus problem - background
Flavius Josephus was a Jewish general and historian who lived and wrote in the 1st century AD Much of what we know about 1st century life in Israel (and the beginnings of Christianity) before and after the Roman destruction of the Jewish temple in 70 AD comes from his writings The "Josephus problem" is based on an odd suicide pact that he describes He and his men stood in a circle and counted off Every other person (or every third person, accounts vary) was killed The last person was supposed to kill himself He must have been the next-to-last person! When it got down to two people, he persuaded the other person that they should surrender instead

7 Josephus Problem n people, numbered 1-n, are in a circle
Count starts with 1 Every 2nd person is eliminated The last person left, J(n), is the winner Examples: n=8, n=7 J(1) = 1 Solution if n is even: Solution if n is odd: Use it to find J(2) … J(8) Clever solution: cyclic bit shift left n=8: First pass eliminates positions 2, 4, 6, 8. Second pass eliminates 3, 7. Third pass left n=7. First pass 2, 4, 6, 1. Then 5, is left If n is even: We eliminate 2, 4, 6, … n on first round. This leaves us with the same problem for n/2 (except for renumbering) 1 1, 2 3, 35, etc. i2*i-1. Thus J(2k) = 2∙J(k)-1 If n is odd: We eliminate 2, 4, 6, … n-1, 1 on first round. This leaves us with the same problem for (n-1)/2 items (except for renumbering) 1 3, 2 5, 37, etc. i2*i+1. Thus J(2k+1) = 2∙J(k)+1 Cyclic bit shift: 11, 1001, 1111, 100001, 101011, 110101, 111111, 100001


Download ppt "MA/CSSE 473 Day 19 Sleepsort Finish Nim Josephus problem"

Similar presentations


Ads by Google