|
import json |
|
|
|
|
|
with open("graphs/prime_perfect_data.json", "r") as f: |
|
data = json.load(f) |
|
|
|
|
|
inferred_relationships = [] |
|
|
|
|
|
for link in data["relationships"]: |
|
source = link["source"] |
|
target = link["target"] |
|
relationship = link["relationship"] |
|
|
|
|
|
if relationship == "multiplied_to_generate": |
|
factor = target / source |
|
if factor.is_integer(): |
|
inferred_relationships.append({ |
|
"source": source, |
|
"target": target, |
|
"relationship": f"multiplied_by_{int(factor)}" |
|
}) |
|
|
|
|
|
elif relationship == "next_in_sequence": |
|
diff = target - source |
|
inferred_relationships.append({ |
|
"source": source, |
|
"target": target, |
|
"relationship": f"add_{int(diff)}" |
|
}) |
|
|
|
|
|
elif relationship == "generates_Mersenne_prime": |
|
if (source > 1) and (target == 2**source - 1): |
|
inferred_relationships.append({ |
|
"source": source, |
|
"target": target, |
|
"relationship": "mersenne_equation" |
|
}) |
|
|
|
|
|
elif relationship == "generates_perfect_number": |
|
if (source > 1) and (target == 2**(source - 1) * (2**source - 1)): |
|
inferred_relationships.append({ |
|
"source": source, |
|
"target": target, |
|
"relationship": "perfect_equation" |
|
}) |
|
|
|
|
|
combined_data = { |
|
"nodes": data["nodes"], |
|
"relationships": data["relationships"] + inferred_relationships |
|
} |
|
|
|
|
|
with open("graphs/inferred_prime_perfect_data.json", "w") as f: |
|
json.dump(combined_data, f, indent=4) |
|
|
|
print("Inferred relationships added to graphs/inferred_prime_perfect_data.json") |