szó jelentését keresi. A DICTIOUS-ban nem csak a
szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a
szót egyes és többes számban mondani. Minden, amit a
szóról tudni kell, itt található. A
szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. A
és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.
Kiejtés
Főnév
hiperkocka
- (matematika, gráfelmélet)
Hiperkocka definíció
A hiperkocka az -dimenziós tér általánosítása, amely a kocka -dimenziós analógiája. A hiperkocka -dimenzióban egy szabályos geometriai test, amelynek:
- Csúcsai: , amelyek megfelelnek az bináris vektoroknak.
- Élei: Két csúcs között akkor van él, ha azok Hamming-távolsága pontosan 1.
- Lapjai: dimenziós hiperkockából állnak.
Matematikai reprezentáció
Egy -dimenziós hiperkocka:
- Csúcsainak halmaza: , ahol minden csúcs egy -dimenziós bináris vektor.
- Élek halmaza: Két csúcs között pontosan akkor van él, ha pontosan egy koordinátában térnek el.
Tulajdonságai
1. Dimenziók száma:
Egy -dimenziós hiperkockának:
2. Szimmetria:
A hiperkocka minden dimenzióban szimmetrikus, és minden csúcs ekvivalens.
3. Hamming-távolság:
A csúcsok közötti távolság (az élek száma) megegyezik a csúcsok között eltérő bitek számával.
4. Összefüggő gráf:
Az -dimenziós hiperkocka mindig összefüggő, és minden csúcs pontosan szomszéddal rendelkezik.
Példák
1-dimenziós hiperkocka ()
- Csúcsok:
- Élek:
- Vizualizáció: Egy egyenes vonal.
2-dimenziós hiperkocka ()
- Csúcsok:
- Élek:
- Vizualizáció: Egy négyzet.
3-dimenziós hiperkocka ()
- Csúcsok:
- Élek: Két csúcs között akkor van él, ha Hamming-távolságuk 1.
- Vizualizáció: Egy kocka.
4-dimenziós hiperkocka ()
- Csúcsok:
- Vizualizáció: A 3D-s kocka két példányának összekötésével ábrázolható, ahol minden csúcsot összekötünk a megfelelő párjával.
Hiperkocka generálása Pythonban
Csúcsok generálása
Az -dimenziós hiperkocka csúcsai az -hosszúságú bináris vektorok.
import itertools
def generate_hypercube_vertices(n):
return
# Példa: 3-dimenziós hiperkocka csúcsai
vertices = generate_hypercube_vertices(3)
print("Csúcsok:", vertices)
Élek generálása
Az élek meghatározása a Hamming-távolság alapján történik.
def hamming_distance(a, b):
return sum(x != y for x, y in zip(a, b))
def generate_hypercube_edges(vertices):
edges =
for i, v1 in enumerate(vertices):
for v2 in vertices:
if hamming_distance(v1, v2) == 1:
edges.append((v1, v2))
return edges
# Példa: 3-dimenziós hiperkocka élei
edges = generate_hypercube_edges(vertices)
print("Élek:", edges)
Hiperkocka vizualizáció NetworkX segítségével
import networkx as nx
import matplotlib.pyplot as plt
def draw_hypercube(n):
vertices = generate_hypercube_vertices(n)
edges = generate_hypercube_edges(vertices)
G = nx.Graph()
G.add_nodes_from(vertices)
G.add_edges_from(edges)
pos = nx.spring_layout(G, seed=42)
nx.draw(G, pos, with_labels=True, node_color='lightblue', node_size=500)
plt.show()
# 3-dimenziós hiperkocka rajzolása
draw_hypercube(3)
Incidenciamátrix generálása
Az incidenciamátrix a csúcsok és élek közötti kapcsolatokat reprezentálja.
import numpy as np
def generate_incidence_matrix(vertices, edges):
matrix = np.zeros((len(vertices), len(edges)), dtype=int)
for j, edge in enumerate(edges):
for i, vertex in enumerate(vertices):
if vertex in edge:
matrix = 1
return matrix
# Példa: Incidenciamátrix 3-dimenziós hiperkockához
incidence_matrix = generate_incidence_matrix(vertices, edges)
print("Incidenciamátrix:\n", incidence_matrix)
Alkalmazások
- Adathálózatok
- A hiperkockát használják párhuzamos feldolgozó rendszerek hálózati topológiájában.
- Hibajavító kódok
- A hiperkockák szerkezetére alapozott kódolási rendszerek segítenek a hibajavításban.
- Számítástechnikai modellezés
- Nagy dimenziós térben való problémák megoldására alkalmas struktúra.
- Grafikus modellek
- Adatkapcsolatok, például szociális hálózatok reprezentációjára használható.
Összegzés
A hiperkocka egy rendkívül szimmetrikus és erőteljes geometriai és gráfstruktúra. Matematikai egyszerűsége ellenére számos alkalmazási területen bizonyul hasznosnak, például adathálózatokban, párhuzamos rendszerekben és hibajavító algoritmusokban. Pythonban a hiperkocka könnyen generálható és vizualizálható, például a `NetworkX` könyvtár segítségével.
Fordítások