Spaces:
Runtime error
Runtime error
import json | |
from prettytable import PrettyTable | |
from colorama import Fore, Style | |
from collections import defaultdict | |
# Funci贸n para calcular el valor de gematria de una letra hebrea antigua | |
def gematria(letra): | |
valores = {'讗': 1, '讘': 2, '讙': 3, '讚': 4, '讛': 5, '讜': 6, '讝': 7, '讞': 8, '讟': 9, | |
'讬': 10, '讻': 20, '诇': 30, '诪': 40, '谞': 50, '住': 60, '注': 70, '驻': 80, | |
'爪': 90, '拽': 100, '专': 200, '砖': 300, '转': 400, '讱': 20, '诐': 40, '谉': 50, '祝': 80, '抓': 90} | |
return valores.get(letra, 0) | |
# Funci贸n para generar todas las combinaciones posibles de dos letras en hebreo antiguo | |
def generar_combinaciones(): | |
letras = ['讗', '讘', '讙', '讚', '讛', '讜', '讝', '讞', '讟', '讬', '讻', '诇', '诪', '谞', '住', '注', '驻', '爪', '拽', '专', '砖', '转', | |
'讱', '诐', '谉', '祝', '抓'] | |
combinaciones = [] | |
for letra1 in letras: | |
for letra2 in letras: | |
combinaciones.append(letra1 + letra2) | |
return combinaciones | |
# Funci贸n para calcular la suma de los valores de gematria y el producto de los valores de gematria de una combinaci贸n | |
def calcular_valores(combinacion): | |
valor1 = gematria(combinacion[0]) | |
valor2 = gematria(combinacion[1]) | |
suma = valor1 + valor2 | |
producto = valor1 * valor2 | |
ratio = valor1 / valor2 if valor2 != 0 else float('inf') | |
return suma, producto, ratio | |
# Funci贸n principal | |
def main(): | |
combinaciones = generar_combinaciones() | |
table = PrettyTable() | |
table.field_names = ["#", Fore.BLUE + "Producto" + Style.RESET_ALL, | |
Fore.BLUE + "Suma" + Style.RESET_ALL, | |
Fore.BLUE + "Ratio" + Style.RESET_ALL, | |
Fore.BLUE + "Valor 2" + Style.RESET_ALL, | |
Fore.BLUE + "Valor 1" + Style.RESET_ALL, | |
Fore.BLUE + "Combinaci贸n" + Style.RESET_ALL] | |
# Diccionario de combinaciones agrupadas por ratio | |
combinaciones_por_ratio = defaultdict(set) | |
# Versos del G茅nesis Sefard铆 (ejemplo) | |
versos_genesis_sefardi = [ | |
"讘专讗砖讬转 讘专讗 讗诇讛讬诐 讗转 讛砖诪讬诐 讜讗转 讛讗专抓", | |
"讜讛讗专抓 讛讬转讛 转讛讜 讜讘讛讜 讜讞砖讱 注诇志驻谞讬 转讛讜诐 讜专讜讞 讗诇讛讬诐 诪专讞驻转 注诇志驻谞讬 讛诪讬诐", | |
"讜讬讗诪专 讗诇讛讬诐 讬讛讬 讗讜专 讜讬讛讬志讗讜专", | |
"讜讬专讗 讗诇讛讬诐 讗转志讛讗讜专 讻讬志讟讜讘 讜讬讘讚诇 讗诇讛讬诐 讘讬谉 讛讗讜专 讜讘讬谉 讛讞砖讱", | |
"讜讬拽专讗 讗诇讛讬诐 诇讗讜专 讬讜诐 讜诇讞砖讱 拽专讗 诇讬诇讛 讜讬讛讬志注专讘 讜讬讛讬志讘拽专 讬讜诐 讗讞讚" | |
# Agrega m谩s versos seg煤n sea necesario... | |
] | |
# Funci贸n para obtener el primer par de letras de un verso | |
def obtener_primer_par_letras(verso): | |
for i in range(len(verso) - 1): | |
if verso[i].isalpha() and verso[i+1].isalpha(): | |
return verso[i:i+2] | |
return None | |
# Diccionario para almacenar el primer par de letras y su ratio por verso | |
primer_par_por_verso = {} | |
for verso in versos_genesis_sefardi: | |
primer_par = obtener_primer_par_letras(verso) | |
if primer_par: | |
suma, producto, ratio = calcular_valores(primer_par) | |
primer_par_por_verso[verso] = (primer_par, ratio) | |
# Diccionario para agrupar los primeros pares de letras por ratio | |
primer_par_por_ratio = defaultdict(list) | |
for verso, (primer_par, ratio) in primer_par_por_verso.items(): | |
primer_par_por_ratio[ratio].append((primer_par, verso)) | |
# Crear la tabla de primeros pares de letras por ratio | |
table_primer_par = PrettyTable() | |
table_primer_par.field_names = [Fore.BLUE + "Primer Par" + Style.RESET_ALL, Fore.BLUE + "Ratio" + Style.RESET_ALL, Fore.BLUE + "Verso" + Style.RESET_ALL] | |
for ratio, pares_verso in sorted(primer_par_por_ratio.items(), key=lambda x: x[0], reverse=True): | |
for primer_par, verso in pares_verso: | |
table_primer_par.add_row([primer_par, f"{ratio:.2f}", verso]) | |
print(table_primer_par) | |
# Procesar combinaciones y crear la tabla principal | |
for idx, combinacion in enumerate(combinaciones, start=1): | |
suma, producto, ratio = calcular_valores(combinacion) | |
combinacion_str = combinacion | |
# Resaltar en verde si la combinaci贸n est谩 en el conjunto de combinaciones del G茅nesis Sefard铆 | |
if combinacion in set(''.join(obtener_primer_par_letras(verso)) for verso in versos_genesis_sefardi): | |
combinacion_str = Fore.GREEN + combinacion + Style.RESET_ALL | |
table.add_row([idx, producto, suma, f"{ratio:.2f}", gematria(combinacion[1]), gematria(combinacion[0]), combinacion_str]) | |
combinaciones_por_ratio[ratio].add(combinacion) | |
# Mostrar la tabla de combinaciones | |
print("\nTabla de combinaciones:") | |
print(table) | |
# Mostrar la tabla de combinaciones agrupadas por ratio | |
print("\nTabla de combinaciones agrupadas por ratio:") | |
table_ratio = PrettyTable() | |
table_ratio.field_names = [Fore.BLUE + "Ratio" + Style.RESET_ALL, Fore.BLUE + "Combinaciones" + Style.RESET_ALL] | |
for ratio, combinaciones in sorted(combinaciones_por_ratio.items(), key=lambda x: x[0], reverse=True): | |
combinaciones_str = ", ".join(combinaciones) | |
table_ratio.add_row([f"{ratio:.2f}", combinaciones_str]) | |
print(table_ratio) | |
# Calcular el n煤mero de combinaciones 煤nicas de primeros pares de letras | |
primeros_pares_unicos = set(primer_par for primer_par, _ in primer_par_por_verso.values()) | |
num_primeros_pares_unicos = len(primeros_pares_unicos) | |
num_combinaciones_totales = len(combinaciones) | |
print(f"\nN煤mero de primeros pares de letras 煤nicos: {num_primeros_pares_unicos}") | |
print(f"N煤mero de combinaciones totales posibles: {num_combinaciones_totales}") | |
if __name__ == "__main__": | |
main() | |
from prettytable import PrettyTable | |
from colorama import Fore, Style | |
from collections import defaultdict | |
# Funci贸n para calcular el valor de gematria de una letra hebrea antigua | |
def gematria(letra): | |
valores = {'讗': 1, '讘': 2, '讙': 3, '讚': 4, '讛': 5, '讜': 6, '讝': 7, '讞': 8, '讟': 9, | |
'讬': 10, '讻': 20, '诇': 30, '诪': 40, '谞': 50, '住': 60, '注': 70, '驻': 80, | |
'爪': 90, '拽': 100, '专': 200, '砖': 300, '转': 400, '讱': 20, '诐': 40, '谉': 50, '祝': 80, '抓': 90} | |
return valores.get(letra, 0) | |
# Funci贸n para generar todas las combinaciones posibles de dos letras en hebreo antiguo | |
def generar_combinaciones(): | |
letras = ['讗', '讘', '讙', '讚', '讛', '讜', '讝', '讞', '讟', '讬', '讻', '诇', '诪', '谞', '住', '注', '驻', '爪', '拽', '专', '砖', '转', | |
'讱', '诐', '谉', '祝', '抓'] | |
combinaciones = [] | |
for letra1 in letras: | |
for letra2 in letras: | |
combinaciones.append(letra1 + letra2) | |
return combinaciones | |
# Funci贸n para calcular la suma de los valores de gematria y el producto de los valores de gematria de una combinaci贸n | |
def calcular_valores(combinacion): | |
valor1 = gematria(combinacion[0]) | |
valor2 = gematria(combinacion[1]) | |
suma = valor1 + valor2 | |
producto = valor1 * valor2 | |
ratio = valor1 / valor2 if valor2 != 0 else float('inf') | |
return suma, producto, ratio | |
# Funci贸n principal | |
def main(): | |
combinaciones = generar_combinaciones() | |
table = PrettyTable() | |
table.field_names = ["#", Fore.BLUE + "Producto" + Style.RESET_ALL, | |
Fore.BLUE + "Suma" + Style.RESET_ALL, | |
Fore.BLUE + "Ratio" + Style.RESET_ALL, | |
Fore.BLUE + "Valor 2" + Style.RESET_ALL, | |
Fore.BLUE + "Valor 1" + Style.RESET_ALL, | |
Fore.BLUE + "Combinaci贸n" + Style.RESET_ALL] | |
# Diccionario de combinaciones agrupadas por ratio | |
combinaciones_por_ratio = defaultdict(set) | |
# Versos del G茅nesis Sefard铆 (ejemplo) | |
versos_genesis_sefardi = [ | |
"讘专讗砖讬转 讘专讗 讗诇讛讬诐 讗转 讛砖诪讬诐 讜讗转 讛讗专抓", | |
"讜讛讗专抓 讛讬转讛 转讛讜 讜讘讛讜 讜讞砖讱 注诇志驻谞讬 转讛讜诐 讜专讜讞 讗诇讛讬诐 诪专讞驻转 注诇志驻谞讬 讛诪讬诐", | |
"讜讬讗诪专 讗诇讛讬诐 讬讛讬 讗讜专 讜讬讛讬志讗讜专", | |
"讜讬专讗 讗诇讛讬诐 讗转志讛讗讜专 讻讬志讟讜讘 讜讬讘讚诇 讗诇讛讬诐 讘讬谉 讛讗讜专 讜讘讬谉 讛讞砖讱", | |
"讜讬拽专讗 讗诇讛讬诐 诇讗讜专 讬讜诐 讜诇讞砖讱 拽专讗 诇讬诇讛 讜讬讛讬志注专讘 讜讬讛讬志讘拽专 讬讜诐 讗讞讚" | |
# Agrega m谩s versos seg煤n sea necesario... | |
] | |
versos_genesis_sefardi = json.loads(open("genesis.json","r").read())["text"][0] | |
# Funci贸n para obtener el primer par de letras de un verso | |
def obtener_primer_par_letras(verso): | |
for i in range(len(verso) - 1): | |
if verso[i].isalpha() and verso[i+1].isalpha(): | |
return verso[i:i+2] | |
return None | |
# Diccionario para almacenar el primer par de letras y su ratio por verso | |
primer_par_por_verso = {} | |
for verso in versos_genesis_sefardi: | |
primer_par = obtener_primer_par_letras(verso) | |
if primer_par: | |
suma, producto, ratio = calcular_valores(primer_par) | |
primer_par_por_verso[verso] = (primer_par, ratio) | |
# Diccionario para agrupar los primeros pares de letras por ratio | |
primer_par_por_ratio = defaultdict(list) | |
for verso, (primer_par, ratio) in primer_par_por_verso.items(): | |
primer_par_por_ratio[ratio].append((primer_par, verso)) | |
# Crear la tabla de primeros pares de letras por ratio | |
table_primer_par = PrettyTable() | |
table_primer_par.field_names = [Fore.BLUE + "Ratio" + Style.RESET_ALL, Fore.BLUE + "Primer Par" + Style.RESET_ALL, Fore.BLUE + "Verso" + Style.RESET_ALL] | |
for ratio, pares_verso in sorted(primer_par_por_ratio.items(), key=lambda x: x[0], reverse=True): | |
for primer_par, verso in pares_verso: | |
table_primer_par.add_row([f"{ratio:.2f}", primer_par, verso]) | |
print(table_primer_par) | |
# Procesar combinaciones y crear la tabla principal | |
for idx, combinacion in enumerate(combinaciones, start=1): | |
suma, producto, ratio = calcular_valores(combinacion) | |
combinacion_str = combinacion | |
# Resaltar en verde si la combinaci贸n est谩 en el conjunto de combinaciones del G茅nesis Sefard铆 | |
if combinacion in set(''.join(obtener_primer_par_letras(verso)) for verso in versos_genesis_sefardi): | |
combinacion_str = Fore.GREEN + combinacion + Style.RESET_ALL | |
table.add_row([idx, producto, suma, f"{ratio:.2f}", gematria(combinacion[1]), gematria(combinacion[0]), combinacion_str]) | |
combinaciones_por_ratio[ratio].add(combinacion) | |
# Mostrar la tabla de combinaciones | |
print("\nTabla de combinaciones:") | |
print(table) | |
# Mostrar la tabla de combinaciones agrupadas por ratio | |
print("\nTabla de combinaciones agrupadas por ratio:") | |
table_ratio = PrettyTable() | |
table_ratio.field_names = [Fore.BLUE + "Ratio" + Style.RESET_ALL, Fore.BLUE + "Combinaciones" + Style.RESET_ALL] | |
for ratio, combinaciones in sorted(combinaciones_por_ratio.items(), key=lambda x: x[0], reverse=True): | |
combinaciones_str = ", ".join(combinaciones) | |
table_ratio.add_row([f"{ratio:.2f}", combinaciones_str]) | |
print(table_ratio) | |
if __name__ == "__main__": | |
main() | |