Pour moi Les 20% et 17% sont choisis parce : (1+0.2)x(1-0.17) est très proche de 1 mais en dessous : 0.996
ce qui amène l'appauvrissement inexorable du pauvre -> oligarchie
avec les données que tu prends dans ton exemple (RATE=0.2, DRATE=0.05) on obtient 25% et 15%, en refaisant le calcul (1+0.25)x(1-0.15) on obtient 1.06 bien au dessus de 1 le pauvre a tendance à s'enrichir il n'y aura pas d'oligarchie.
D'ailleurs avec le script "corrigé", c'est bien ce que je constate (voir ci dessous l'algo que j'utilise).
je trouve qu'avec rate et drate c'est difficile à voir si on est en dessus ou en dessous de cette barre fatidique des "1" où tout bascule.
L'algo (pour le cas 20%, 17 % : oligarchie assez rapide.)
#!/usr/bin/env python3fromrandomimportrandintfromstatisticsimportmean,median,pstdevimporttimeNB_PEOPLE=15AMOUNT_START=10000NB_LOOP=5000000RATE=0.185DRATE=0.015defpays(customer,seller,base):# no advantage for the poorest as no poorestifseller==customer:customer-=base*RATEseller+=base*RATE# poorest receive the money so add DRATE in the transferelifseller<customer:customer-=base*(RATE+DRATE)seller+=base*(RATE+DRATE)# poorest pay the money so deduct DRATE in the transferelse:customer-=base*(RATE-DRATE)seller+=base*(RATE-DRATE)returncustomer,sellerpeople=[AMOUNT_START]*NB_PEOPLEtimestamp=time.time()for_inrange(0,NB_LOOP):# select two random peoplea=randint(0,NB_PEOPLE-1)b=awhilea==b:b=randint(0,NB_PEOPLE-1)base=min(people[a],people[b])people[a],people[b]=pays(people[a],people[b],base)iftime.time()-timestamp>=0.5:print(f"people: {', '.join(str(round(p,2)) for p in people)} ",end='\r')timestamp=time.time()# final, show the resultsprint(f"people: {', '.join(str(round(p,2)) for p in people)}")print(f"Last tranfert base: {round(base)}")print(f"avg: {mean(people)} | median: {round(median(people))} | pstdev: {round(pstdev(people))}")
[^] # Re: Mais où sont passés les 17% et 20%
Posté par Tit . En réponse au journal Un article de "Pour la science" m'ayant amené à coder pour une petite vérification perso.... Évalué à 2.
Pour moi Les 20% et 17% sont choisis parce : (1+0.2)x(1-0.17) est très proche de 1 mais en dessous : 0.996
ce qui amène l'appauvrissement inexorable du pauvre -> oligarchie
avec les données que tu prends dans ton exemple (RATE=0.2, DRATE=0.05) on obtient 25% et 15%, en refaisant le calcul (1+0.25)x(1-0.15) on obtient 1.06 bien au dessus de 1 le pauvre a tendance à s'enrichir il n'y aura pas d'oligarchie.
D'ailleurs avec le script "corrigé", c'est bien ce que je constate (voir ci dessous l'algo que j'utilise).
je trouve qu'avec rate et drate c'est difficile à voir si on est en dessus ou en dessous de cette barre fatidique des "1" où tout bascule.
L'algo (pour le cas 20%, 17 % : oligarchie assez rapide.)
avec ta proposition
pas d'oligarchie