问题是 我有了帕鲁配种的数据表。 但是我想找到一个关系
任意一只帕鲁 育种 到另一只帕鲁 之间的路径
这是个技术问题 如果用深度搜索或者广度搜索,计算量比较大,但是我全部算一遍,存起来就好了。
想知道有没有跟简单的方案 必须把我的小网站贴上 Palworld
![]() | 1 dapang1221 2024-01-29 11:55:59 +08:00 双向链表……? A <--> B <--> C |
![]() | 2 SuperDaFu OP 育种是单向的 比如 a+b = c. c+b = e c+f = z. 我想求 a 到 z 到路径 a+b = c. c+f = z. 就需要合成两次 |
3 test817 2024-01-29 12:36:09 +08:00 我自己的服务器更新后回档了十几二十个小时,现在放弃这个游戏了..周六整整一天培育出来的满速空涡龙没了 |
4 ohmyhaha 2024-01-29 12:49:09 +08:00 四度人脉、六度人脉 |
5 renmu 2024-01-29 12:53:06 +08:00 via Android 直接遍历查,就这么几个帕鲁 |
7 wanghn 2024-01-29 14:42:57 +08:00 图数据库? |
![]() | 8 Foralrec 2024-01-29 14:42:59 +08:00 逆向存储 z 到 c f 形式的树 而后层序遍历(结果=>配对入) + 回溯算法 退出条件是直到结果集里有用户拥有的所有宠物 剪枝条件是 层序剩余元素已经不被用户拥有 |
![]() | 9 L2J8glI4V56ooMGE 2024-01-29 15:37:40 +08:00 用图数据库,neo4j 或者 nebula ,先构建节点和关系,然后查询的时候可以指定深度 |
10 abgnwl 2024-01-29 16:03:18 +08:00 先把图构建出来,然后在图上计算? f[i][j][k] 表示 i 次,从 j 到 k 是否可行 f[i][j][k] = f[1][j][w] && f[i-1][w][k],然后记录下 w 查询时枚举 i ,当 f[i][j][k]=1 时,枚举 w ,递归 f[i-1][w][k]? |
![]() | 11 luoway 2024-01-29 16:26:32 +08:00 没玩过这游戏,但游戏设计会很复杂吗? 试试空间换时间,把所有育种路径按帕鲁存储,直接检索,行不行 |
![]() | 12 LavaC 2024-01-29 16:48:38 +08:00 想问问原始数据是哪里搞的 |
![]() | 13 lzgshsj 2024-01-29 17:04:23 +08:00 没 i18n 适配吗 |
16 ICB 2024-01-30 11:14:49 +08:00 有中文的吗?英文看着不得劲。 |
![]() | 17 noyidoit 2024-01-30 16:41:05 +08:00 你的输入只有一个起点一个终点,总共的节点也只有 111 个,感觉计算量不大 步骤: 1. 构建有向图 2. 查缓存,没有则 DFS 查路径,查完放进缓存 3. 返回所有路径 (你程序上的最短路径,对于用户不一定是最短路径) 计算已经很简单了,除非你要让用户把自己拥有的所有帕鲁都作为输入,在这个基础上去查最短路径,但我感觉没必要。先做个初版吧(让我用用) |
![]() | 18 noyidoit 2024-01-30 17:00:21 +08:00 好吧,我说的那种工具已经有人做了,而且不只一个(真是太卷了)。另外育种图的边超过 18000 条,全部展示似乎不太现实 |