class UnselectiveEvent(SelectiveEvent): def try_to_join(self, skill_q): self.members.append(skill_q) return True
events = [SelectiveEvent() for _ in range(99)] + [UnselectiveEvent()]
for _ in range(1000): society_member = random.random() while not random.choice(events).try_to_join(society_member): pass print(np.mean(events[-1].members)) # e.g. 0.13823472583179908 ```
I augmented the code a bit to get the mean and stddev of the SELECTIVE events to illustrate how far out of distribution the UNselective event would predictably be...
$ ./selection_events.py What skill profile over the SELECTIVE events? N = 98 // Stddev = 0.20449118563464222 // mean = 0.6569978446874036 What is the average skill in THE UNSELECTIVE event 0.1496967789384321
Sorry, I am not the best at expressing myself clearly in prose. This is closer to what I was actually thinking, is it more helpful?
```
import random
import numpy as np
class SelectiveEvent:
def __init__(self):
self.members = []
self.skill_check = random.random()
def try_to_join(self, skill_q):
if skill_q > self.skill_check:
self.members.append(skill_q)
return True
return False
class UnselectiveEvent(SelectiveEvent):
def try_to_join(self, skill_q):
self.members.append(skill_q)
return True
events = [SelectiveEvent() for _ in range(99)] + [UnselectiveEvent()]
for _ in range(1000):
society_member = random.random()
while not random.choice(events).try_to_join(society_member):
pass
print(np.mean(events[-1].members))
# e.g. 0.13823472583179908
```
this is the most lesswrong thing i’ve ever seen. never change
I augmented the code a bit to get the mean and stddev of the SELECTIVE events to illustrate how far out of distribution the UNselective event would predictably be...
$ ./selection_events.py
What skill profile over the SELECTIVE events?
N = 98 // Stddev = 0.20449118563464222 // mean = 0.6569978446874036
What is the average skill in THE UNSELECTIVE event
0.1496967789384321
Two and a half standard deviations worse!