首页 > 其他分享 >随机生成一棵高 log n 的树

随机生成一棵高 log n 的树

时间:2024-09-13 09:37:10浏览次数:9  
标签:log dfrac 生成 随机 一棵 Theta 节点

最广为人知的生成随机树的算法是对于每个节点随机选择其父亲。

形式地说:

  • 一个点的随机树只有一个形态;
  • 生成 \(n+1\) 个点的随机树时,先照此办法生成一个 \(n\) 个节点的随机树,然后从 \(n\) 个节点中均匀随机地选择一个节点作为第 \(n+1\) 个节点的父亲。

我们证明,这样生成的树的期望高度是 \(\Theta(\log n)\) 的。

设 \(f_i\) 表示第 \(i\) 个点的期望高度,显然有递推:

  • \(f_1=0\);
  • \(f_{n+1}=\dfrac{\sum_{i=1}^nf_i}{n}+1\)

记 \(S_n=\sum_{i=1}^nf_i\),考虑 \(S_n\) 的增长速度,显然有

\[S_{n+1}-S_n=\dfrac{S_n}{n}+1 \]

\[S_{n+1}=\dfrac{n+1}{n}S_n+1 \]

注意到

\[S_n=n\left(\sum_{i=2}^n\dfrac{1}{i}\right) \]

归纳易证。

显然 \(S_n=\Theta(n\log n)\),那么 \(f_n=\Theta(\log n)\)。

标签:log,dfrac,生成,随机,一棵,Theta,节点
From: https://www.cnblogs.com/weily09/p/18411615

相关文章

  • 备份MySQL binlog
    以前备份binlog时,都是先在本地进行备份压缩,然后发送到远程服务器中。但是这其中还是有一定风险的,因为日志的备份都是周期性的,如果在某个周期中,服务器宕机了,硬盘损坏了,就可能导致这段时间的binlog就丢失了。而且,以前用脚本对远程服务器进行备份的方式,有个缺点:无法对MySQL服务器当......
  • 如何在删除ibdata1和ib_logfile的情况下恢复MySQL数据库
    昨天,有个朋友对公司内部使用的一个MySQL实例开启binlog,但是在启动的过程中失败了(他也没提,为何会失败),在启动失败后,他删除了ibdata1和ib_logfile,后来,能正常启动了,但所有的表通过showtables能看到,但是select的过程中却报“Tabledoesn'texist”。于是,建议他试试可传输表空间。同......
  • Github_以太网开源项目verilog-ethernet代码阅读与移植(二)
    实验背景在《Github_以太网开源项目verilog-ethernet代码阅读与移植(一)》中简要介绍了verilog-ethernet开源项目的目录构造等基本信息,下面介绍如何使用与移植步骤。实验内容verilog-ethernet项目的使用与移植准备工作实验步骤打开项目的中README.md文件内容如下:信......
  • mysql 使用binlog还原数据
    MySQL的二进制日志(BinaryLog,简称binlog)是MySQL数据库的一个重要功能,它记录了所有的修改数据库内容的操作(如INSERT、UPDATE、DELETE等),但不包括SELECT和SHOW这类操作。这些日志对于数据恢复、复制和数据审计等场景非常有用。1.确认binlog是否开启登录MySQL后,可以通过SH......
  • Oracle数据库中的归档日志(Archive Log)详解与应用
    在Oracle数据库中,归档日志(ArchiveLog)是数据库恢复和备份策略中的一个重要组成部分。归档日志是已填充的重做日志文件组的副本,它们在数据库运行在ARCHIVELOG模式下时被保存到一个或多个脱机目标。本文将详细介绍归档日志的概念、配置、管理以及在数据库恢复中的应用。1.......
  • 使用Graylog分布式日志收集
    Graylog是一个开源的日志管理和分析平台,允许你集中收集、存储和分析日志数据。为了实现分布式日志收集,你需要将Graylog部署在多个节点上,并设置适当的配置以处理来自不同来源的日志数据。下面是如何实现Graylog的分布式日志收集的步骤:1.环境准备必备软件Graylog:日志管理和分析......
  • mysql 5.7 删除ibdata1 、ib_logfile 文件的数据恢复
    简介:本文记录删除ibdata1、ib_logfile文件被意外删除且无法还原或损坏的解决方案,当删除后没有重启mysql可以查询进程号,找到删除的文件可以还原回来。参考其他文章。本文介绍ibdata1、ib_logfile文件无法找到或异常没有备份的情况处理。 新安装一台mysql用作从库......
  • Why system logging "kernel: tcp_parse_options: Illegal window scaling value 15 >
    环境Linux问题在var/log/messages文件中发现以下日志。Oct621:01:05mplttaxsx101kernel:tcp_parse_options:Illegalwindowscalingvalue15>14received.Oct621:01:05mplttaxsx101kernel:tcp_parse_options:Illegalwindowscalingvalue15>14......
  • van-checkbox + dialog
    <van-dialogv-model="showParkingLot"title="选择"show-cancel-buttoncancelButtonText="取消"confirmButtonColor="#2e7cf9"@confirm="confirm"><divclass=......
  • verilog vscode 与AI 插件
    Verilog轻量化开发环境背景笔者常用的开发环境VIAVDO,体积巨大,自带编辑器除了linting能用,编辑器几乎不能用,仿真界面很友好,但是速度比较慢。SublimeText,非常好用的编辑器,各种插件使用verilog非常方便,可以自动补全、生成调用、linting等;VSCODE,SublimeText有的插件,VSC......