V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
SuperDaFu
V2EX  ›  分享创造

花了点时间搞了个帕鲁的网站,但是问题来了

  •  
  •   SuperDaFu · 318 天前 · 2935 次点击
    这是一个创建于 318 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题是 我有了帕鲁配种的数据表。 但是我想找到一个关系

    任意一只帕鲁 育种 到另一只帕鲁 之间的路径

    这是个技术问题 如果用深度搜索或者广度搜索,计算量比较大,但是我全部算一遍,存起来就好了。

    想知道有没有跟简单的方案 必须把我的小网站贴上 Palworld

    20 条回复    2024-01-31 23:07:26 +08:00
    dapang1221
        1
    dapang1221  
       318 天前
    双向链表……? A <--> B <--> C
    SuperDaFu
        2
    SuperDaFu  
    OP
       318 天前
    育种是单向的
    比如
    a+b = c. c+b = e c+f = z.

    我想求 a 到 z 到路径
    a+b = c. c+f = z. 就需要合成两次
    test817
        3
    test817  
       317 天前
    我自己的服务器更新后回档了十几二十个小时,现在放弃这个游戏了..周六整整一天培育出来的满速空涡龙没了😭
    ohmyhaha
        4
    ohmyhaha  
       317 天前
    四度人脉、六度人脉
    renmu
        5
    renmu  
       317 天前 via Android
    直接遍历查,就这么几个帕鲁
    SuperDaFu
        6
    SuperDaFu  
    OP
       317 天前
    @renmu 一级级下去 100 倍的增长吧。。不是搞不出来,想看看有没有高效的算法
    wanghn
        7
    wanghn  
       317 天前
    图数据库?
    Foralrec
        8
    Foralrec  
       317 天前
    逆向存储 z 到 c f 形式的树
    而后层序遍历(结果=>配对入) + 回溯算法

    退出条件是直到结果集里有用户拥有的所有宠物
    剪枝条件是 层序剩余元素已经不被用户拥有
    ztxin
        9
    ztxin  
       317 天前
    用图数据库,neo4j 或者 nebula ,先构建节点和关系,然后查询的时候可以指定深度
    abgnwl
        10
    abgnwl  
       317 天前
    先把图构建出来,然后在图上计算?

    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]?
    luoway
        11
    luoway  
       317 天前
    没玩过这游戏,但游戏设计会很复杂吗?
    试试空间换时间,把所有育种路径按帕鲁存储,直接检索,行不行
    LavaC
        12
    LavaC  
       317 天前
    想问问原始数据是哪里搞的
    lzgshsj
        13
    lzgshsj  
       317 天前
    没 i18n 适配吗
    SuperDaFu
        14
    SuperDaFu  
    OP
       317 天前
    @LavaC 悄悄的,别的网站捞的
    SuperDaFu
        15
    SuperDaFu  
    OP
       317 天前
    @lzgshsj 木有。有空我加一下。
    ICB
        16
    ICB  
       317 天前
    有中文的吗?英文看着不得劲。
    noyidoit
        17
    noyidoit  
       316 天前
    你的输入只有一个起点一个终点,总共的节点也只有 111 个,感觉计算量不大
    步骤:
    1. 构建有向图
    2. 查缓存,没有则 DFS 查路径,查完放进缓存
    3. 返回所有路径 (你程序上的最短路径,对于用户不一定是最短路径)

    计算已经很简单了,除非你要让用户把自己拥有的所有帕鲁都作为输入,在这个基础上去查最短路径,但我感觉没必要。先做个初版吧(让我用用)
    noyidoit
        18
    noyidoit  
       316 天前
    好吧,我说的那种工具已经有人做了,而且不只一个(真是太卷了)。另外育种图的边超过 18000 条,全部展示似乎不太现实
    SuperDaFu
        19
    SuperDaFu  
    OP
       315 天前
    @noyidoit 主要是你比如你输入的 Lamball 但是你想输出 Jetragon 。 中间可能要育种很多次,
    noyidoit
        20
    noyidoit  
       315 天前
    @SuperDaFu 虽然但是,Jetragon 的唯一育种来源就是 Jetragon + Jetragon 吧...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4099 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 04:03 · PVG 12:03 · LAX 20:03 · JFK 23:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.