You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Hanoi H₃图顶点随机分配0至38的标号?

修改方案:为Hanoi H₃图分配随机顶点标号

要实现顶点的随机标号(0到38之间的唯一整数),你需要借助random模块生成不重复的随机数,并将其映射到图的每个顶点上。以下是修改后的完整代码:

import networkx as nx
import random  # 新增:导入随机数模块

H3 = nx.Graph()
H3.add_edges_from([(1 ,2), (2 ,3), (3 ,1), (2 ,4), (4 ,5), (5 ,6), (6 ,4),
               (6 ,8), (3 ,7), (7 ,8), (8 ,9), (9 ,7), (5 ,10), (10 ,11),
               (11 ,12), (12 ,10), (11 ,13), (13 ,14), (14 ,15), (15 ,13), (15 ,17),
               (12 ,16), (16 ,17), (17 ,18), (18 ,16), (18, 23), (9 ,19), (19 ,20),
               (20 ,21), (21 ,19), (20 ,22), (22 ,23), (23 ,24), (24 ,22), (24 ,26),
               (21 ,25), (25 ,26), (26 ,27), (27 ,25)])

# 生成0-38之间的27个唯一随机整数(H3共27个顶点)
random_unique_labels = random.sample(range(0, 39), len(H3.nodes))
# 将随机数映射到每个顶点
node_labels = {node: label for node, label in zip(H3.nodes, random_unique_labels)}
nx.set_node_attributes(H3, node_labels, 'label')

# 计算和谐边标号(逻辑不变,基于新的顶点标号)
edge_labels = {(u, v): (node_labels[u] + node_labels[v]) % (H3.number_of_edges()) for u, v in H3.edges}
nx.set_edge_attributes(H3, edge_labels, 'label')

关键说明:

  • 使用random.sample()确保生成的随机数唯一,符合和谐标号对顶点标号不重复的要求。
  • 若需要固定随机结果(方便调试),可在生成随机数前添加random.seed(xxx)(xxx为任意整数),例如:
    random.seed(42)  # 固定随机种子,每次运行得到相同的标号
    random_unique_labels = random.sample(range(0, 39), len(H3.nodes))
    

内容的提问来源于stack exchange,提问作者Gisyaa_9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 18:43:14