r - 在使用 R 中的 igraph 生成 k-正则图时,每个 k-正则图是否都是唯一且非随机的?
问题描述
我想使用igraph
in生成一个 k 正则图R
。我要去的一个示例函数,它首先获取游戏,然后转换为邻接矩阵:
game <- sample_k_regular(no.of.nodes=3000, k=30)
game_adj <- as.matrix(as_adj(game))
中似乎没有随机性sample_k_regular
,因此如果我们再进行一次采样,例如:
game2 <- sample_k_regular(no.of.nodes=3000, k=30)
game2_adj <- as.matrix(as_adj(game2))
并计算出差异:
sum(game2_adj-game_adj)
我们正好得到 0。
一旦我们指定了节点数和每个节点的度数(邻居数),它会完全唯一吗?set.seed()
(意味着在函数调用之上添加没有效果?)
解决方案
确实有随机性。让我们采取一些更容易处理的事情:
game1 <- sample_k_regular(no.of.nodes = 5, k = 2)
game2 <- sample_k_regular(no.of.nodes = 5, k = 2)
game_adj1 <- as.matrix(as_adj(game1))
game_adj2 <- as.matrix(as_adj(game2))
game_adj1
# [,1] [,2] [,3] [,4] [,5]
# [1,] 0 0 0 1 1
# [2,] 0 0 1 1 0
# [3,] 0 1 0 0 1
# [4,] 1 1 0 0 0
# [5,] 1 0 1 0 0
game_adj2
# [,1] [,2] [,3] [,4] [,5]
# [1,] 0 0 1 0 1
# [2,] 0 0 1 1 0
# [3,] 1 1 0 0 0
# [4,] 0 1 0 0 1
# [5,] 1 0 0 1 0
game_adj1 - game_adj2
# [,1] [,2] [,3] [,4] [,5]
# [1,] 0 0 -1 1 0
# [2,] 0 0 0 0 0
# [3,] -1 0 0 0 1
# [4,] 1 0 0 0 -1
# [5,] 0 0 1 -1 0
但是,你是对的
sum(game_adj1 - game_adj2)
# [1] 0
但这是意料之中的,因为sum(game_adj1)
并且sum(game_adj2)
是no.of.nodes * k
通过建设。
推荐阅读
- javascript - 反应测试,userEvent 无法正常工作
- javascript - 如何在 .json 对象中设置 sysdate 变量?
- amazon-web-services - 将特定 AWS ECS 任务映射到 FARGATE 或 FARGATE_SPOT 容量提供程序
- flutter - 我如何得到飞镖方程的答案?X*A+B=0
- android - 如何启用/禁用 android 软键盘中的单个键?或启用/禁用键状态
- c++ - Eigen::Matrixbase 受保护的析构函数
- docker - 为什么我在同一个 docker 映像中看到不同的文件?
- spring - spring security不支持的配置属性hasRole(),spring升级后permitAll
- python - 如何获取 svg 路径的点
- sql - 如何计算2个及以上客户访问的房间?