Compare commits
6 Commits
b9074076d2
...
199cd8709e
Author | SHA1 | Date | |
---|---|---|---|
199cd8709e | |||
bea6b77f8f | |||
a7e7f090f8 | |||
f691a49630 | |||
ca82ba6d86 | |||
334b28ed94 |
@ -29,8 +29,8 @@
|
|||||||
) = {
|
) = {
|
||||||
set page(
|
set page(
|
||||||
margin: 20mm,
|
margin: 20mm,
|
||||||
width: 8in,
|
width: 8.5in,
|
||||||
height: 11.5in,
|
height: 11in,
|
||||||
footer: align(
|
footer: align(
|
||||||
center,
|
center,
|
||||||
context counter(page).display(),
|
context counter(page).display(),
|
||||||
@ -38,30 +38,28 @@
|
|||||||
footer-descent: 5mm,
|
footer-descent: 5mm,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
//
|
||||||
set par(leading: 0.55em, first-line-indent: 0mm, justify: true)
|
// Text style
|
||||||
set text(font: "New Computer Modern")
|
set text(font: "New Computer Modern")
|
||||||
set par(spacing: 0.5em)
|
set par(
|
||||||
|
leading: 0.55em,
|
||||||
|
first-line-indent: 0mm,
|
||||||
|
justify: true,
|
||||||
|
spacing: 0.5em,
|
||||||
|
)
|
||||||
|
|
||||||
|
//
|
||||||
|
// List style
|
||||||
show list: set block(spacing: 0.5em, below: 1em)
|
show list: set block(spacing: 0.5em, below: 1em)
|
||||||
set heading(numbering: (..nums) => nums.pos().at(0))
|
|
||||||
|
|
||||||
show ref: it => {
|
|
||||||
import "object.typ": ref_obj
|
|
||||||
|
|
||||||
// Custom impl for object references
|
|
||||||
let x = ref_obj(it)
|
|
||||||
if (x != none) { return x }
|
|
||||||
|
|
||||||
// Use default `ref` implementation otherwise
|
|
||||||
return it
|
|
||||||
}
|
|
||||||
|
|
||||||
set list(
|
set list(
|
||||||
tight: false,
|
tight: false,
|
||||||
indent: 5mm,
|
indent: 5mm,
|
||||||
spacing: 3mm,
|
spacing: 3mm,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
//
|
||||||
|
// Heading style
|
||||||
|
set heading(numbering: (..nums) => nums.pos().at(0))
|
||||||
show heading.where(level: 1): it => {
|
show heading.where(level: 1): it => {
|
||||||
set align(center)
|
set align(center)
|
||||||
set text(weight: "bold")
|
set text(weight: "bold")
|
||||||
@ -70,6 +68,18 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Hack for custom references
|
||||||
|
show ref: it => {
|
||||||
|
import "object.typ": ref_obj
|
||||||
|
|
||||||
|
let x = ref_obj(it) // Custom impl for object references
|
||||||
|
if (x != none) { return x }
|
||||||
|
|
||||||
|
return it // Use default `ref` implementation otherwise
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Begin content
|
// Begin content
|
||||||
//
|
//
|
||||||
|
76
src/Warm-Ups/Somewhat Random Numbers/main.typ
Normal file
76
src/Warm-Ups/Somewhat Random Numbers/main.typ
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
#import "@local/handout:0.1.0": *
|
||||||
|
|
||||||
|
#show: handout.with(
|
||||||
|
title: [Somewhat Random Numbers],
|
||||||
|
by: "Mark",
|
||||||
|
subtitle: "Based on a handout by Bryant Mathews",
|
||||||
|
)
|
||||||
|
|
||||||
|
#problem()
|
||||||
|
Alice generates 100 random numbers uniformly from $[0,1]$. \
|
||||||
|
Bob generates 101 random numbers from $[0, 1]$, but deletes the lowest result.
|
||||||
|
|
||||||
|
#v(2mm)
|
||||||
|
|
||||||
|
Say we have both of the resulting arrays, but do not know who generated each one. \
|
||||||
|
We would like to guess which of the two was generated by Bob. \
|
||||||
|
What is the optimal strategy, and what is its probability of guessing correctly?
|
||||||
|
|
||||||
|
|
||||||
|
#solution([
|
||||||
|
Looking at the mean seems like a good idea, but there's a better way: \
|
||||||
|
Assign the array with the smaller _minimum_ to Alice.
|
||||||
|
|
||||||
|
#v(3mm)
|
||||||
|
|
||||||
|
To compute the probability, generate 201 numbers. \
|
||||||
|
Assign the first 100 to Alice and the rest to Bob. \
|
||||||
|
Look at the lowest two numbers (of these 201, *before* Bob drops his lowest).
|
||||||
|
|
||||||
|
#v(8mm)
|
||||||
|
|
||||||
|
We'll use the following notation: \
|
||||||
|
`AB` means the lowest was owned by Alice, and the second-lowest, by Bob.
|
||||||
|
|
||||||
|
#v(2mm)
|
||||||
|
|
||||||
|
Probabilities are as follows: \
|
||||||
|
- `AA`: $100\/201 times 99\/200 approx 0.246$
|
||||||
|
- `AB`: $100\/201 times 101\/200 approx 0.251$
|
||||||
|
- `BA`: $101\/201 times 100\/200 approx 0.251$ // spell:disable-line
|
||||||
|
- `BB`: $101\/201 times 100\/200 approx 0.251$
|
||||||
|
|
||||||
|
#v(4mm)
|
||||||
|
Now, Bob drops his lowest number. \
|
||||||
|
We'll cross out the number he drops and box the new lowest number (i.e, the one we observe):
|
||||||
|
- #{
|
||||||
|
(
|
||||||
|
box(`A`, stroke: ored, inset: 1pt)
|
||||||
|
+ box(`A`, inset: 1pt)
|
||||||
|
+ box([: $approx 0.246$], inset: (top: 1pt, bottom: 1pt))
|
||||||
|
)
|
||||||
|
}
|
||||||
|
- #{
|
||||||
|
(
|
||||||
|
box(`A`, stroke: ored, inset: 1pt)
|
||||||
|
+ box(strike(`B`), inset: 1pt)
|
||||||
|
+ box([: $approx 0.251$], inset: (top: 1pt, bottom: 1pt))
|
||||||
|
)
|
||||||
|
}
|
||||||
|
- #{
|
||||||
|
(
|
||||||
|
box(strike(`B`), inset: 1pt)
|
||||||
|
+ box(`A`, stroke: ored, inset: 1pt)
|
||||||
|
+ box([: $approx 0.251$], inset: (top: 1pt, bottom: 1pt))
|
||||||
|
)
|
||||||
|
}
|
||||||
|
- #{
|
||||||
|
(
|
||||||
|
box(strike(`B`), inset: 1pt)
|
||||||
|
+ box(`B`, stroke: ored, inset: 1pt)
|
||||||
|
+ box([: $approx 0.251$], inset: (top: 1pt, bottom: 1pt))
|
||||||
|
)
|
||||||
|
}
|
||||||
|
#v(8mm)
|
||||||
|
Alice has the smallest number in 3 of 4 cases, which have a total probability of $approx 0.749$.
|
||||||
|
])
|
6
src/Warm-Ups/Somewhat Random Numbers/meta.toml
Normal file
6
src/Warm-Ups/Somewhat Random Numbers/meta.toml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[metadata]
|
||||||
|
title = "Somewhat Random Numbers"
|
||||||
|
|
||||||
|
[publish]
|
||||||
|
handout = true
|
||||||
|
solutions = true
|
Loading…
x
Reference in New Issue
Block a user