{ "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": 2, "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": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "box_size = 8\n", "n = 10**7\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": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "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": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "18.0" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean(list(map(get_number_of_activated_antenna, valid_networks)))" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "□-□-□-□-■-□-□-□\n", "■-□-□-□-□-■-□-■\n", "□-■-□-■-□-□-■-□\n", "□-□-■-□-□-■-□-■\n", "■-□-□-□-■-□-■-□\n", "□-■-□-□-□-□-□-□\n", "□-□-□-□-□-□-■-□\n", "■-□-□-□-□-■-□-■\n", "\n" ] } ], "source": [ "print(pp_network(valid_networks[0], 8))" ] }, { "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 }