You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.9 KiB
63 lines
1.9 KiB
2 years ago
|
import random
|
||
|
import subprocess
|
||
|
|
||
|
# Comando shell a ser executado
|
||
|
shell_script = "sh backup"
|
||
|
|
||
|
# Executar o script shell
|
||
|
subprocess.call(shell_script, shell=True)
|
||
|
|
||
|
tabela_periodica = {
|
||
|
'H': {'energia': 4.5},
|
||
|
'C': {'energia': 7.5},
|
||
|
'N': {'energia': 10.0},
|
||
|
'O': {'energia': 12.0},
|
||
|
'F': {'energia': 15.0},
|
||
|
'P': {'energia': 18.0},
|
||
|
'S': {'energia': 20.0},
|
||
|
'Cl': {'energia': 22.0}
|
||
|
}
|
||
|
|
||
|
def calcular_energia_molecula(molecula):
|
||
|
energia_total = 0
|
||
|
for elemento, quantidade in molecula.items():
|
||
|
energia_atomo = tabela_periodica[elemento]['energia']
|
||
|
energia_total += energia_atomo * quantidade
|
||
|
return energia_total
|
||
|
|
||
|
def gerar_molecula():
|
||
|
molecula = {}
|
||
|
simbolos_atomos = ['H', 'C', 'N', 'O', 'F', 'P', 'S', 'Cl']
|
||
|
comprimento_molecula = random.randint(5, 15)
|
||
|
|
||
|
for _ in range(comprimento_molecula):
|
||
|
simbolo = random.choices(simbolos_atomos, weights=[0.2, 0.3, 0.1, 0.1, 0.05, 0.05, 0.05, 0.1])[0]
|
||
|
if simbolo in molecula:
|
||
|
molecula[simbolo] += 1
|
||
|
else:
|
||
|
molecula[simbolo] = 1
|
||
|
|
||
|
return molecula
|
||
|
|
||
|
# Obter a quantidade de vezes que o loop será executado
|
||
|
quantidade_loop = int(input("Digite a quantidade de vezes que o loop será executado: "))
|
||
|
|
||
|
# Realizar o loop
|
||
|
for _ in range(quantidade_loop):
|
||
|
# Gerar a molécula
|
||
|
molecula_gerada = gerar_molecula()
|
||
|
|
||
|
# Calcular a energia da molécula
|
||
|
energia_molecula = calcular_energia_molecula(molecula_gerada)
|
||
|
|
||
|
# Salvar no arquivo mol.db
|
||
|
with open('../database/reactor/mol.db', 'a') as arquivo:
|
||
|
arquivo.write("Smile=")
|
||
|
for elemento, quantidade in molecula_gerada.items():
|
||
|
arquivo.write(elemento + str(quantidade))
|
||
|
arquivo.write("\n")
|
||
|
arquivo.write("Energy=" + str(energia_molecula) + " eV\n")
|
||
|
arquivo.write("\n")
|
||
|
|
||
|
# print(f"Molécula gerada: {molecula_gerada} - Energia: {energia_molecula} eV")
|