cryptocalypse commited on
Commit
4025f4d
1 Parent(s): 5a4eef8

libsbase gematria temurae ziruph

Browse files
Files changed (1) hide show
  1. lib/gematria.py +226 -0
lib/gematria.py ADDED
@@ -0,0 +1,226 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ from prettytable import PrettyTable
3
+ from colorama import Fore, Style
4
+ from collections import defaultdict
5
+
6
+ # Función para calcular el valor de gematria de una letra hebrea antigua
7
+ def gematria(letra):
8
+ valores = {'א': 1, 'ב': 2, 'ג': 3, 'ד': 4, 'ה': 5, 'ו': 6, 'ז': 7, 'ח': 8, 'ט': 9,
9
+ 'י': 10, 'כ': 20, 'ל': 30, 'מ': 40, 'נ': 50, 'ס': 60, 'ע': 70, 'פ': 80,
10
+ 'צ': 90, 'ק': 100, 'ר': 200, 'ש': 300, 'ת': 400, 'ך': 20, 'ם': 40, 'ן': 50, 'ף': 80, 'ץ': 90}
11
+ return valores.get(letra, 0)
12
+
13
+ # Función para generar todas las combinaciones posibles de dos letras en hebreo antiguo
14
+ def generar_combinaciones():
15
+ letras = ['א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ז', 'ח', 'ט', 'י', 'כ', 'ל', 'מ', 'נ', 'ס', 'ע', 'פ', 'צ', 'ק', 'ר', 'ש', 'ת',
16
+ 'ך', 'ם', 'ן', 'ף', 'ץ']
17
+ combinaciones = []
18
+ for letra1 in letras:
19
+ for letra2 in letras:
20
+ combinaciones.append(letra1 + letra2)
21
+ return combinaciones
22
+
23
+ # Función para calcular la suma de los valores de gematria y el producto de los valores de gematria de una combinación
24
+ def calcular_valores(combinacion):
25
+ valor1 = gematria(combinacion[0])
26
+ valor2 = gematria(combinacion[1])
27
+ suma = valor1 + valor2
28
+ producto = valor1 * valor2
29
+ ratio = valor1 / valor2 if valor2 != 0 else float('inf')
30
+ return suma, producto, ratio
31
+
32
+ # Función principal
33
+ def main():
34
+ combinaciones = generar_combinaciones()
35
+ table = PrettyTable()
36
+ table.field_names = ["#", Fore.BLUE + "Producto" + Style.RESET_ALL,
37
+ Fore.BLUE + "Suma" + Style.RESET_ALL,
38
+ Fore.BLUE + "Ratio" + Style.RESET_ALL,
39
+ Fore.BLUE + "Valor 2" + Style.RESET_ALL,
40
+ Fore.BLUE + "Valor 1" + Style.RESET_ALL,
41
+ Fore.BLUE + "Combinación" + Style.RESET_ALL]
42
+
43
+ # Diccionario de combinaciones agrupadas por ratio
44
+ combinaciones_por_ratio = defaultdict(set)
45
+
46
+ # Versos del Génesis Sefardí (ejemplo)
47
+ versos_genesis_sefardi = [
48
+ "בראשית ברא אלהים את השמים ואת הארץ",
49
+ "והארץ היתה תהו ובהו וחשך על־פני תהום ורוח אלהים מרחפת על־פני המים",
50
+ "ויאמר אלהים יהי אור ויהי־אור",
51
+ "וירא אלהים את־האור כי־טוב ויבדל אלהים בין האור ובין החשך",
52
+ "ויקרא אלהים לאור יום ולחשך קרא לילה ויהי־ערב ויהי־בקר יום אחד"
53
+ # Agrega más versos según sea necesario...
54
+ ]
55
+
56
+ # Función para obtener el primer par de letras de un verso
57
+ def obtener_primer_par_letras(verso):
58
+ for i in range(len(verso) - 1):
59
+ if verso[i].isalpha() and verso[i+1].isalpha():
60
+ return verso[i:i+2]
61
+ return None
62
+
63
+ # Diccionario para almacenar el primer par de letras y su ratio por verso
64
+ primer_par_por_verso = {}
65
+ for verso in versos_genesis_sefardi:
66
+ primer_par = obtener_primer_par_letras(verso)
67
+ if primer_par:
68
+ suma, producto, ratio = calcular_valores(primer_par)
69
+ primer_par_por_verso[verso] = (primer_par, ratio)
70
+
71
+ # Diccionario para agrupar los primeros pares de letras por ratio
72
+ primer_par_por_ratio = defaultdict(list)
73
+ for verso, (primer_par, ratio) in primer_par_por_verso.items():
74
+ primer_par_por_ratio[ratio].append((primer_par, verso))
75
+
76
+ # Crear la tabla de primeros pares de letras por ratio
77
+ table_primer_par = PrettyTable()
78
+ table_primer_par.field_names = [Fore.BLUE + "Primer Par" + Style.RESET_ALL, Fore.BLUE + "Ratio" + Style.RESET_ALL, Fore.BLUE + "Verso" + Style.RESET_ALL]
79
+ for ratio, pares_verso in sorted(primer_par_por_ratio.items(), key=lambda x: x[0], reverse=True):
80
+ for primer_par, verso in pares_verso:
81
+ table_primer_par.add_row([primer_par, f"{ratio:.2f}", verso])
82
+
83
+ print(table_primer_par)
84
+
85
+ # Procesar combinaciones y crear la tabla principal
86
+ for idx, combinacion in enumerate(combinaciones, start=1):
87
+ suma, producto, ratio = calcular_valores(combinacion)
88
+ combinacion_str = combinacion
89
+ # Resaltar en verde si la combinación está en el conjunto de combinaciones del Génesis Sefardí
90
+ if combinacion in set(''.join(obtener_primer_par_letras(verso)) for verso in versos_genesis_sefardi):
91
+ combinacion_str = Fore.GREEN + combinacion + Style.RESET_ALL
92
+ table.add_row([idx, producto, suma, f"{ratio:.2f}", gematria(combinacion[1]), gematria(combinacion[0]), combinacion_str])
93
+ combinaciones_por_ratio[ratio].add(combinacion)
94
+
95
+ # Mostrar la tabla de combinaciones
96
+ print("\nTabla de combinaciones:")
97
+ print(table)
98
+
99
+ # Mostrar la tabla de combinaciones agrupadas por ratio
100
+ print("\nTabla de combinaciones agrupadas por ratio:")
101
+ table_ratio = PrettyTable()
102
+ table_ratio.field_names = [Fore.BLUE + "Ratio" + Style.RESET_ALL, Fore.BLUE + "Combinaciones" + Style.RESET_ALL]
103
+ for ratio, combinaciones in sorted(combinaciones_por_ratio.items(), key=lambda x: x[0], reverse=True):
104
+ combinaciones_str = ", ".join(combinaciones)
105
+ table_ratio.add_row([f"{ratio:.2f}", combinaciones_str])
106
+ print(table_ratio)
107
+
108
+ # Calcular el número de combinaciones únicas de primeros pares de letras
109
+ primeros_pares_unicos = set(primer_par for primer_par, _ in primer_par_por_verso.values())
110
+ num_primeros_pares_unicos = len(primeros_pares_unicos)
111
+ num_combinaciones_totales = len(combinaciones)
112
+ print(f"\nNúmero de primeros pares de letras únicos: {num_primeros_pares_unicos}")
113
+ print(f"Número de combinaciones totales posibles: {num_combinaciones_totales}")
114
+
115
+ if __name__ == "__main__":
116
+ main()
117
+ from prettytable import PrettyTable
118
+ from colorama import Fore, Style
119
+ from collections import defaultdict
120
+
121
+ # Función para calcular el valor de gematria de una letra hebrea antigua
122
+ def gematria(letra):
123
+ valores = {'א': 1, 'ב': 2, 'ג': 3, 'ד': 4, 'ה': 5, 'ו': 6, 'ז': 7, 'ח': 8, 'ט': 9,
124
+ 'י': 10, 'כ': 20, 'ל': 30, 'מ': 40, 'נ': 50, 'ס': 60, 'ע': 70, 'פ': 80,
125
+ 'צ': 90, 'ק': 100, 'ר': 200, 'ש': 300, 'ת': 400, 'ך': 20, 'ם': 40, 'ן': 50, 'ף': 80, 'ץ': 90}
126
+ return valores.get(letra, 0)
127
+
128
+ # Función para generar todas las combinaciones posibles de dos letras en hebreo antiguo
129
+ def generar_combinaciones():
130
+ letras = ['א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ז', 'ח', 'ט', 'י', 'כ', 'ל', 'מ', 'נ', 'ס', 'ע', 'פ', 'צ', 'ק', 'ר', 'ש', 'ת',
131
+ 'ך', 'ם', 'ן', 'ף', 'ץ']
132
+ combinaciones = []
133
+ for letra1 in letras:
134
+ for letra2 in letras:
135
+ combinaciones.append(letra1 + letra2)
136
+ return combinaciones
137
+
138
+ # Función para calcular la suma de los valores de gematria y el producto de los valores de gematria de una combinación
139
+ def calcular_valores(combinacion):
140
+ valor1 = gematria(combinacion[0])
141
+ valor2 = gematria(combinacion[1])
142
+ suma = valor1 + valor2
143
+ producto = valor1 * valor2
144
+ ratio = valor1 / valor2 if valor2 != 0 else float('inf')
145
+ return suma, producto, ratio
146
+
147
+ # Función principal
148
+ def main():
149
+ combinaciones = generar_combinaciones()
150
+ table = PrettyTable()
151
+ table.field_names = ["#", Fore.BLUE + "Producto" + Style.RESET_ALL,
152
+ Fore.BLUE + "Suma" + Style.RESET_ALL,
153
+ Fore.BLUE + "Ratio" + Style.RESET_ALL,
154
+ Fore.BLUE + "Valor 2" + Style.RESET_ALL,
155
+ Fore.BLUE + "Valor 1" + Style.RESET_ALL,
156
+ Fore.BLUE + "Combinación" + Style.RESET_ALL]
157
+
158
+ # Diccionario de combinaciones agrupadas por ratio
159
+ combinaciones_por_ratio = defaultdict(set)
160
+
161
+ # Versos del Génesis Sefardí (ejemplo)
162
+ versos_genesis_sefardi = [
163
+ "בראשית ברא אלהים את השמים ואת הארץ",
164
+ "והארץ היתה תהו ובהו וחשך על־פני תהום ורוח אלהים מרחפת על־פני המים",
165
+ "ויאמר אלהים יהי אור ויהי־אור",
166
+ "וירא אלהים את־האור כי־טוב ויבדל אלהים בין האור ובין החשך",
167
+ "ויקרא אלהים לאור יום ולחשך קרא לילה ויהי־ערב ויהי־בקר יום אחד"
168
+ # Agrega más versos según sea necesario...
169
+ ]
170
+ versos_genesis_sefardi = json.loads(open("genesis.json","r").read())["text"][0]
171
+
172
+ # Función para obtener el primer par de letras de un verso
173
+ def obtener_primer_par_letras(verso):
174
+ for i in range(len(verso) - 1):
175
+ if verso[i].isalpha() and verso[i+1].isalpha():
176
+ return verso[i:i+2]
177
+ return None
178
+
179
+ # Diccionario para almacenar el primer par de letras y su ratio por verso
180
+ primer_par_por_verso = {}
181
+ for verso in versos_genesis_sefardi:
182
+ primer_par = obtener_primer_par_letras(verso)
183
+ if primer_par:
184
+ suma, producto, ratio = calcular_valores(primer_par)
185
+ primer_par_por_verso[verso] = (primer_par, ratio)
186
+
187
+ # Diccionario para agrupar los primeros pares de letras por ratio
188
+ primer_par_por_ratio = defaultdict(list)
189
+ for verso, (primer_par, ratio) in primer_par_por_verso.items():
190
+ primer_par_por_ratio[ratio].append((primer_par, verso))
191
+
192
+ # Crear la tabla de primeros pares de letras por ratio
193
+ table_primer_par = PrettyTable()
194
+ table_primer_par.field_names = [Fore.BLUE + "Ratio" + Style.RESET_ALL, Fore.BLUE + "Primer Par" + Style.RESET_ALL, Fore.BLUE + "Verso" + Style.RESET_ALL]
195
+ for ratio, pares_verso in sorted(primer_par_por_ratio.items(), key=lambda x: x[0], reverse=True):
196
+ for primer_par, verso in pares_verso:
197
+ table_primer_par.add_row([f"{ratio:.2f}", primer_par, verso])
198
+
199
+ print(table_primer_par)
200
+
201
+ # Procesar combinaciones y crear la tabla principal
202
+ for idx, combinacion in enumerate(combinaciones, start=1):
203
+ suma, producto, ratio = calcular_valores(combinacion)
204
+ combinacion_str = combinacion
205
+ # Resaltar en verde si la combinación está en el conjunto de combinaciones del Génesis Sefardí
206
+ if combinacion in set(''.join(obtener_primer_par_letras(verso)) for verso in versos_genesis_sefardi):
207
+ combinacion_str = Fore.GREEN + combinacion + Style.RESET_ALL
208
+ table.add_row([idx, producto, suma, f"{ratio:.2f}", gematria(combinacion[1]), gematria(combinacion[0]), combinacion_str])
209
+ combinaciones_por_ratio[ratio].add(combinacion)
210
+
211
+ # Mostrar la tabla de combinaciones
212
+ print("\nTabla de combinaciones:")
213
+ print(table)
214
+
215
+ # Mostrar la tabla de combinaciones agrupadas por ratio
216
+ print("\nTabla de combinaciones agrupadas por ratio:")
217
+ table_ratio = PrettyTable()
218
+ table_ratio.field_names = [Fore.BLUE + "Ratio" + Style.RESET_ALL, Fore.BLUE + "Combinaciones" + Style.RESET_ALL]
219
+ for ratio, combinaciones in sorted(combinaciones_por_ratio.items(), key=lambda x: x[0], reverse=True):
220
+ combinaciones_str = ", ".join(combinaciones)
221
+ table_ratio.add_row([f"{ratio:.2f}", combinaciones_str])
222
+ print(table_ratio)
223
+
224
+ if __name__ == "__main__":
225
+ main()
226
+