Article épinglé

samedi 5 décembre 2020

Théorie des graphes et social networks

Social network analysis is the study of social structures through the use of graph theory. In this talk I will present network theory and application of building and analyzing social networks for practical use-cases in Python with NetworkX



dimanche 29 novembre 2020

Modèle Proies-Prédateurs de Lotka-Volterra

Université de Nice, Département de Maths



Le modèle que nous étudions a été proposé par Volterra (et indépendamment par Lotka) en 1926 dans un ouvrage intitulé ”Théorie mathématique de la lutte pour la vie” qui est probablement le premier traité d’écologie mathématique. 

Volterra avait été consulté par le responsable de la pêche italienne `a Trieste qui avait remarqué que, juste après la première guerre mondiale (période durant laquelle la pêche avait été nettement réduite) la proportion de requins et autres prédateurs impropres `a la consommation que l’on pêchait parmi les poissons consommables était nettement supérieure `a ce qu’elle était avant guerre et `a ce qu’elle redevint ensuite.

https://math.unice.fr/~diener/MAB06/LotVolt.pdf



mardi 13 octobre 2020

GreenIT - Internet et sobriété

 

A propos
Prononcez « green ail tea point f r ». IT pour « Information Technology » que l’on traduit par le « numérique » en bon français (« digital » est un anglicisme).

Créée en 2004, GreenIT.fr est la communauté des acteurs du numérique responsable qui s’intéressent, entre autre, à la sobriété numérique,à l’écoconception des services numériques, à la lowtech, et plus globalement à un avenir numérique alternatif.


Python et les étoiles

 Longtemps je me suis demandé comment faire ceci:



Etape 1: comprendre

Pour une pyramide à 7 * sur la base je vois:
  • une base avec 7 places -------
  • une pyramide de 4 étages
  • une première ligne avec 1 * et devant l'étoile 3 places vides
  • une seconde ligne avec 3* et devant l'étoile 2 places vides
  • etc

Etape 2: les essais

#Script-----------------------------
a=" "
b="*"

boucle=7
ecart=int((boucle-1)/2)
espace=ecart

for i in range(ecart+1):
    print(ecart*a+b)

#Script----------------------------
a=" "
b="*"

boucle=7
ecart=int((boucle-1)/2)
espace=ecart

for i in range(ecart+1):
    print(ecart*a+b)
    ecart=ecart-1


Etape 3: la réussite ;)

#Script-----------------------------
a=" "
b="*"

boucle=20
ecart=int((boucle-1)/2)
espace=ecart

for i in range(ecart+1):
    print(ecart*a+b*(i*2+1))
    ecart=ecart-1



mardi 29 septembre 2020

Blockchain, Bitcoin mais pas que...

 Ethereum, dont le code informatique est profondément différent de Bitcoin (il a été écrit en partant de zéro), n’a pas été construit pour concurrencer frontalement Bitcoin : il s’agit plutôt de deux utilisations différentes et complémentaires des technologies blockchains. On notera l’existence de différences idéologiques entre les deux communautés qui les entourent : celle de Bitcoin est plus d’inspiration libertarienne, centrée sur le domaine monétaire (inspirée par les théories de Hayek notamment), tandis que celle d’Ethereum vise plus à créer un nouveau web, décentralisé, plutôt qu’une nouvelle monnaie.

https://blockchainfrance.net/2016/03/04/comprendre-ethereum/


Carte des attaques sur Internet

 

Source:
https://www.digitalattackmap.com/#anim=1&color=0&country=ALL&list=0&time=18489&view=map

Pour comprendre se rendre ici
https://www.digitalattackmap.com/about/



Je remercie Thomas Herard (AP1) qui vient de me faire découvrir ce site ;)

Et encore mieux ici


samedi 19 septembre 2020

Visualisation de la densité des nombres premiers

Amélioration du script sur les nombres premiers, l'idée est de les visualiser par des points avec Turtle. Les points sont dessinés verticalement par tranche de 100.


En comptant bien les points de la première verticale de gauche on retrouve :
1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, ....

Script

from turtle import *

#quete des nombres premiers
borne =10000
premier=[1]
j=1
while j<=borne:
    nbre=j
    i=1
    list=[]

    while i<=nbre:
        if nbre%i ==0:
            
            list.append(i)
            i=i+1
        else:
            i=i+1
   
    if len(list)==2:
        premier.append(nbre)
    
    j=j+1
print (premier)

#dessin la nouveauté
x=0
xmax=max(premier)/100
ymax=100
setworldcoordinates(0, 0, xmax, ymax+10)
penup()
for i in range(len(premier)):
    if premier[i]>100*(x+1):
        x=x+1
        write(x*100)
    goto(x,premier[i]-100*x)
    #write(premier[i])
    dot()

dimanche 30 août 2020

Tirage sans remise de k n° parmis N avec m manches




import numpy as np
import matplotlib.pyplot as plt
def tirage_sans_remise(N,k):
    # cette fonction tire k numeros sans remise
    # parmi N numeros
    liste=[]
    tirage=[]
    for i in range (N):
        liste.append(i+1)
   
    for i in range(k):
        sel=np.random.choice(liste)
        tirage.append(sel)
        liste.remove(sel)
    return tirage
        
#nombre de n° possibles
f=6
# n tirage pour une manche
n=3
# nbre de manches = m
m=5

ntirages=[]
for t in range(m):
    ntirages.append(tirage_sans_remise(f,n))
print("Liste des ",m," manches")
print(ntirages)


tot=[]
for i in range (f):
    s=0
    for j in range (m):
        s=s+ntirages[j].count(i+1)    
    tot.append(s)
print ("Bilan des sorties des tirages pour toutes les manches")
print(tot)

# gaphique
plt.bar(range(1,f+1),tot)
plt.title("Cumul des tirages")
plt.xlabel("N° possibles(variable f)")
plt.ylabel("Total des sorties")
plt.show()