随机树生成器

小 Y 有四种方法造树。

要想分辨不同的方法造出的树,自然要试着模拟然后统计四个树的特征。

以下四个标号分别代表四种方案:

由于性质比较特殊 ( 2 的范围比1更小 ) 所以我决定先讲 2。

2.对于每个点 i ,概率与 1≤j≤⌊(i−1)/2⌋   1≤j≤⌊2i−1​⌋连边。

事实上很简单。

我们强制要求所有树以 11 为根节点且强制要求这个树按值域分类要求比根节点小的在左子树,比根大的在右边,由于是全排列,不存在等于,可以安心许多。

由于每个点 i 都不可能与小于 (i-1)/2 的点连边,因此会发现所有大于 i 的点都不可能与 i 不可能连到的点连边,因此我们可以发现 2 是无法与 1 连边的。3 要在右子树只能与 1 连边,且 n 必然为它所在子树的最右节点,这样有用的性质对我们就大大增多了。因为我们可以发现每到一个 i 选点,所有上一次剩下的点被选中的概率 必然会增加,因为这次不选的话,下次选点的边界往右移了,新人笑老人哭了,(再不放纵一把 就没法保证连通了。

  1. 对于每个点 i ,概率与 1≤j≤ (i-1)/2  ≤j≤i−1连边。

相信大家都能发现 1 与 2 基本是同母异父 (悲 的亲兄弟了。经过我上面一番慷慨乱扯,可以发现 1 与 2 的性质就差在 (i-1)/2⌋∼−1⌊2i​⌋∼i−1 与 i 有无连边了,这里必然不能鸡蛋里挑骨头地去想是不是可能用 1 生成时所有点都刚好选在了 1∼⌊ (i-1)/2⌋1∼⌊2i​⌋ 里,想都不要想,这是纯属犯欠。 (放我那是要被数学老师和科学老师挑起来打的。 而我们会发现这样子选点的话,一条路走到黑,或是雨露均沾,就是链或菊花图等极端情况概率是特别特别小的,不妨遇到那种深度很大的树直接丢给 3,4 两种情况。

    评论 1
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值