79 lines
2.4 KiB
Python
Executable File
79 lines
2.4 KiB
Python
Executable File
#! /usr/bin/env python3
|
|
|
|
import math
|
|
import numpy as np
|
|
import pandas as pd
|
|
|
|
class Populations:
|
|
"""
|
|
This class is made of a pd.Series of the clients and the operation that
|
|
can be made on the population.
|
|
"""
|
|
def __init__(self, carac):
|
|
"""
|
|
Population constructor, initialises the client population with
|
|
the caracterictic given to it.
|
|
"""
|
|
self.population = pd.Series()
|
|
self.nmbr = carac
|
|
self.add_client(self.nmbr)
|
|
"""
|
|
We have to define more caracteristics. We will start with a
|
|
simple serie of inds and their number
|
|
"""
|
|
return
|
|
|
|
def add_client(self, nb):#Need to add an arg "habits"
|
|
"""
|
|
Add 'nb' clients to the population.
|
|
"""
|
|
start = len(self.population)
|
|
end = start + nb
|
|
inds = []
|
|
for i in range(nb):
|
|
inds.append(Individu())
|
|
self.population = self.population.append(pd.Series(inds, index=range(start, end)))
|
|
self.nmbr += nb
|
|
return
|
|
|
|
|
|
class Individu: #tout OK
|
|
"""
|
|
This class define the clients, it's caracteristics being :
|
|
- User habits :
|
|
- The habits with the Magna Wallet and the 3 tokens :
|
|
-self.magna_wallet_btc
|
|
-self.magna_wallet_eth
|
|
-self.magna_wallet_mgn
|
|
They containe statisctical law of the user habits.
|
|
The methods of this class operate on only one client.
|
|
"""
|
|
|
|
def __init__(self):#OK
|
|
"""
|
|
Constructeur d'une instance 'individu'.
|
|
Ce constructeur fait appel aux fonction especes et aleatoire
|
|
pour initialisé les variables d'un individu aux valeurs propres
|
|
à son espèce.
|
|
"""
|
|
# Those 3 caracteristic are the users habits concerning the client
|
|
# use of Magna Wallet
|
|
self.magna_wallet_btc = (
|
|
np.random.normal(
|
|
loc=0.00001, scale=0.002),
|
|
abs(np.random.normal(
|
|
loc=0.002, scale=0.01))
|
|
)
|
|
self.magna_wallet_eth = (
|
|
np.random.normal(
|
|
loc=0.01, scale=0.9),
|
|
abs(np.random.normal(
|
|
loc=0.5, scale=5))
|
|
)
|
|
self.magna_wallet_mgn = (
|
|
np.random.normal(
|
|
loc=1, scale=10),
|
|
abs(np.random.normal(
|
|
loc=10, scale=50))
|
|
)
|
|
return |