Files
2015-12-20 13:43:45 -05:00

37 lines
1.2 KiB
Python

from network.network import (get_number_of_activated_antenna,
can_antenna_be_turned_on,
turn_off_antenna,
turn_on_antenna)
def _flip_coin(random):
return random.random() < 0.5
def create_new_network(network, box_size, random):
number_of_square = box_size * box_size
for antenna in range(number_of_square):
if can_antenna_be_turned_on(antenna, network, box_size) and _flip_coin(random):
network = turn_on_antenna(antenna, network)
else:
network = turn_off_antenna(antenna, network)
return network
def get_pseudo_random_networks(box_size, random):
network = 0
while True:
network = create_new_network(network, box_size, random)
yield network
def get_random_networks(box_size, random):
time_between_sample = 20
for i, network in enumerate(get_pseudo_random_networks(box_size, random), 1):
if i % time_between_sample == 0:
yield network
def estimate_number_of_activated_antenna(n, box_size, random):
estimate = 0
for _, network in zip(range(n), get_random_networks(box_size, random)):
estimate += get_number_of_activated_antenna(network)
return estimate / n