Bien sûr ! Voici un exemple d’outil Python pour simuler l’impact de différents scénarios économiques

Bien sûr ! Voici un exemple d’outil Python pour simuler l’impact de différents scénarios économiques sur la société, en utilisant un ton humoristique. Cet outil utilise une blockchain simplifiée pour enregistrer les transactions et les impacts économiques.

« `python
import hashlib
import json
from time import time

class Blockchain:
def __init__(self):
self.chain = []
self.current_transactions = []

# Créer un bloc de genèse
self.new_block(previous_hash=’1′, proof=100)

def new_block(self, proof, previous_hash=None):
block = {
‘index’: len(self.chain) + 1,
‘timestamp’: time(),
‘transactions’: self.current_transactions,
‘proof’: proof,
‘previous_hash’: previous_hash or self.hash(self.chain[-1]),
}

self.current_transactions = []
self.chain.append(block)
return block

def new_transaction(self, sender, recipient, amount):
self.current_transactions.append({
‘sender’: sender,
‘recipient’: recipient,
‘amount’: amount,
})
return self.last_block[‘index’] + 1

@staticmethod
def hash(block):
block_string = json.dumps(block, sort_keys=True).encode()
return hashlib.sha256(block_string).hexdigest()

@property
def last_block(self):
return self.chain[-1]

def create_genesis_block():
return Blockchain().last_block

def simulate_scenario(blockchain, scenario_name, transactions):
print(f »Commencement de la simulation pour le scénario {scenario_name}! »)
for transaction in transactions:
blockchain.new_transaction(**transaction)
print(f »Transaction ajoutée: {transaction} »)

proof = blockchain.proof_of_work(blockchain.last_block)
previous_hash = blockchain.hash(blockchain.last_block)
blockchain.new_block(proof, previous_hash)

print(f »Scénario {scenario_name} terminé! »)

def proof_of_work(last_block):
«  » »Simule un travail de preuve pour ajouter un nouveau bloc à la blockchain » » »
last_proof = last_block[‘proof’]
last_hash = blockchain.hash(last_block)

proof = 0
while not (proof_of_work_algorithm(proof, last_proof, last_hash)):
proof += 1

return proof

def proof_of_work_algorithm(proof, last_proof, last_hash):
«  » »Simule un algorithme de preuve de travail » » »
guess = f'{proof}{last_proof}{last_hash}’.encode()
guess_hash = hashlib.sha256(guess).hexdigest()
return guess_hash[:4] == « 0000 »

def main():
blockchain = Blockchain()

# Scénario 1: « La Crise des Croissants »
transactions1 = [
{« sender »: « Boulangerie », « recipient »: « Client », « amount »: 2},
{« sender »: « Client », « recipient »: « Boulangerie », « amount »: 3},
]
simulate_scenario(blockchain, « La Crise des Croissants », transactions1)

# Scénario 2: « Le Boom des Avocats »
transactions2 = [
{« sender »: « Marché », « recipient »: « Client », « amount »: 5},
{« sender »: « Client », « recipient »: « Marché », « amount »: 8},
]
simulate_scenario(blockchain, « Le Boom des Avocats », transactions2)

# Afficher la blockchain
for block in blockchain.chain:
print(json.dumps(block, indent=4))

if __name__ == « __main__ »:
main()
« `

### Explications

1. **Blockchain**: Une classe simple pour gérer une blockchain.
2. **Transactions**: Ajout de transactions humoristiques.
3. **Simulation de Scénarios**: Fonction pour simuler différents scénarios économiques.
4. **Proof of Work**: Simule un travail de preuve pour ajouter des blocs.
5. **Main**: Exécute la simulation avec deux scénarios amusants.

Ce script est un exemple de base et peut être étendu pour inclure des fonctionnalités plus complexes et des simulations plus détaillées.

Retour en haut