Files
simulationexam/.ipynb_checkpoints/accep_reject-checkpoint.ipynb
2015-12-20 13:43:45 -05:00

145 lines
10 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab inline\n",
"from network.network import is_valid_network, get_number_of_activated_antenna, pp_network\n",
"from numpy import mean\n",
"from random import Random"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"random = Random(666)\n",
"def get_some_possible_network(n, box_size):\n",
" number_of_square = box_size * box_size\n",
" for i in range(n):\n",
" yield random.randint(0, 2 ** number_of_square - 1)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"box_size = 5\n",
"n = 1000000\n",
"\n",
"valid_networks = []\n",
"for network in get_some_possible_network(n, box_size):\n",
" if is_valid_network(network, box_size):\n",
" valid_networks.append(network)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fe8f4a177b8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"hist(list(map(get_number_of_activated_antenna, valid_networks)), bins=100)\n",
"None"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"6.2328431372549016"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mean(list(map(get_number_of_activated_antenna, valid_networks)))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"valid_networks[0]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.4.3+"
}
},
"nbformat": 4,
"nbformat_minor": 0
}