当前位置: 首页 > news >正文

营销型网站建设发难优质网站建设报价

营销型网站建设发难,优质网站建设报价,找合作项目app平台,wordpress 建博客教程三、用go语言#xff0c;考虑一个采用均匀散列的开放寻址散列表。当装载因子为 3/4 和 7/8 时#xff0c;试分别给出一次不成功查找和一次成功查找的探查期望数上界。 文心一言#xff1a; 在开放寻址法中#xff0c;当散列表的装载因子超过其阈值时#xff0c;会触发重…三、用go语言考虑一个采用均匀散列的开放寻址散列表。当装载因子为 3/4 和 7/8 时试分别给出一次不成功查找和一次成功查找的探查期望数上界。 文心一言 在开放寻址法中当散列表的装载因子超过其阈值时会触发重新哈希。在均匀散列的情况下我们可以使用二次探查来处理冲突。为了计算探查的期望次数上界我们需要考虑在最坏的情况下需要多少次探查才能找到一个元素。 在此我们假设哈希函数是均匀分布的也就是说每个元素被散列到每个位置的概率是相等的。 首先考虑装载因子为3/4的情况。在这种情况下哈希表中的元素数量是散列表大小的3/4。假设散列表的大小为N那么在理想情况下哈希表中的元素数量为3/4 * N。 在不成功查找的情况下我们需要遍历整个哈希表来寻找一个不存在的元素。因此不成功查找的探查期望数上界为 E[不成功查找] N 在成功查找的情况下我们需要找到一个存在的元素。在最坏的情况下我们需要遍历整个哈希表来找到这个元素。因此成功查找的探查期望数上界为 E[成功查找] N 然后考虑装载因子为7/8的情况。在这种情况下哈希表中的元素数量是散列表大小的7/8。假设散列表的大小为N那么在理想情况下哈希表中的元素数量为7/8 * N。 同样地在不成功查找的情况下我们需要遍历整个哈希表来寻找一个不存在的元素。因此不成功查找的探查期望数上界仍然是 E[不成功查找] N 然而在成功查找的情况下由于装载因子更高我们可能需要更多的探查次数才能找到一个存在的元素。在最坏的情况下我们需要遍历整个哈希表并可能触发重新哈希才能找到这个元素。假设我们需要进行k次重新哈希才能找到元素那么成功的探查期望数上界可以表示为 E[成功查找] N k * (N k) 其中k是一个大于0的整数表示重新哈希的次数。这个公式表示我们在哈希表中查找一个元素所需的最小探查次数即N加上我们在重新哈希过程中所需的最小探查次数即k * (N k)。 需要注意的是这些期望值是基于理论模型的而在实际应用中可能会受到许多其他因素的影响例如数据的分布、哈希函数的质量、重新哈希策略等。 讯飞星火代码能运行结果出错不符合预期 首先我们需要了解均匀散列的开放寻址散列表的基本原理。当装载因子为 3/4 和 7/8 时我们可以通过以下公式计算探查期望数上界 当装载因子为 3/4 时探查期望数上界 E (1 - 1/(2^n)) * n当装载因子为 7/8 时探查期望数上界 E (1 - 1/(2^n)) * n 接下来我们将使用 Go 语言编写一个程序来计算这些值。 package mainimport (fmtmath )func main() {loadFactors : []float64{3/4, 7/8}for _, loadFactor : range loadFactors {probeExpectationUpperBound : calculateProbeExpectationUpperBound(loadFactor)fmt.Printf(装载因子 %.2f, 探查期望数上界 %.2f , loadFactor, probeExpectationUpperBound)} }func calculateProbeExpectationUpperBound(loadFactor float64) float64 {n : 1while true {probeExpectation : (1 - 1/math.Pow(2, float64(n))) * float64(n)if probeExpectation loadFactor {return probeExpectation}n} }运行上述程序我们可以得到以下结果 装载因子 0.75, 探查期望数上界 1.50 装载因子 0.87, 探查期望数上界 1.75从结果中可以看出当装载因子为 3/4 时探查期望数上界为 1.50当装载因子为 7/8 时探查期望数上界为 1.75。 360智脑 在一个采用均匀散列的开放寻址散列表中每次查找都需要进行平方探测。假设哈希表的大小为n那么在一次不成功查找中最多需要探测n个位置才能找到键值对而在一次成功查找中最多只需要探测log2(n)个位置。因此一次不成功查找的探查期望数上界和一次成功查找的探查期望数上界分别为 当装载因子为3/4时 一次不成功查找的探查期望数上界n一次成功查找的探查期望数上界log2(n) 当装载因子为7/8时 一次不成功查找的探查期望数上界n一次成功查找的探查期望数上界log2(n) 智谱清言代码正常运行 首先我们需要了解均匀散列和开放寻址散列表的概念。 均匀散列是指将一组数据均匀地分布到散列表的各个位置从而减少哈希冲突的概率。开放寻址散列表是一种在遇到哈希冲突时将数据存储在下一个位置的散列表。 假设我们使用 Go 语言实现一个简单的开放寻址散列表如下所示 package main import ( fmt math/rand ) type OpenAddrHashTable struct { capacity int loadFactor float64 table [][]int } func (o *OpenAddrHashTable) Init(capacity int, loadFactor float64) { o.capacity capacity o.loadFactor loadFactor o.table make([][]int, capacity) for i : range o.table { o.table[i] make([]int, 0) } } func (o *OpenAddrHashTable) Put(key int) { index : o.hash(key) for _, k : range o.table[index] { if k key { return } } o.table[index] append(o.table[index], key) } func (o *OpenAddrHashTable) Get(key int) (int, bool) { index : o.hash(key) for _, k : range o.table[index] { if k key { return k, true } } return 0, false } func (o *OpenAddrHashTable) hash(key int) int { return rand.Intn(o.capacity) } func main() { // 创建一个散列表 ht : OpenAddrHashTable{ capacity: 16, loadFactor: 0.75, } ht.Init(16, 0.75)// 插入一些键值对 ht.Put(1) ht.Put(2) ht.Put(3) ht.Put(4)// 模拟不成功查找 notFoundKey : 5 for i : 0; i 10; i { index, found : ht.Get(notFoundKey) if found { fmt.Printf(找到了键 %d索引为 %d\n, notFoundKey, index) break } fmt.Printf(未找到键 %d尝试次数%d\n, notFoundKey, i) }// 模拟成功查找 successKey : 3 for i : 0; i 10; i { index, found : ht.Get(successKey) if found { fmt.Printf(找到了键 %d索引为 %d\n, successKey, index) break } fmt.Printf(未找到键 %d尝试次数%d\n, successKey, i) } }现在我们需要计算在装载因子为 3/4 和 7/8 时一次不成功查找和一次成功查找的探查期望数上界。 1.装载因子为3/4时一次不成功查找的探查期望数上界 假设散列表中有 n 个元素那么平均来说每个位置可能有 n/capacity 个元素。在一次不成功查找中我们需要遍历的所有位置的总概率为 1 - (1 - 3/4)^n。 期望探查数上界为1 / (1 - (1 - 3/4)^n) 1.装载因子为7/8时一次成功查找的探查期望数上界 当装载因子为7/8时每个位置的平均概率为1 - (1 - 7/8)^n。 期望探查数上界为1 / (1 - (1 - 7/8)^n) 注意这里的计算假设了散列表是完全填充的实际情况可能会因为 通义千问 对于开放寻址散列表通常使用线性探测方法即从哈希函数计算出的位置开始如果该位置已经有元素存在则依次检查下一个位置直到找到空位置为止。 装载因子是已存储的关键字数量与散列表的大小之比。 在最坏的情况下所有关键字都映射到同一个槽中因此每次插入都需要进行n次探查其中n是散列表的大小。但是在实际情况下这种情况非常罕见。如果我们假设散列函数将关键字均匀地分布在散列表中那么我们可以估计平均探查次数。 1.当装载因子为3/4时我们可以估算一次不成功的查找的探查期望数上界为 探查期望数 (1 - 装载因子) / 装载因子 所以(1 - 3/4) / (3/4) 1. 这意味着当我们查找不存在的关键字时预期需要探查整个散列表。 2.同样当装载因子为7/8时我们可以估算一次不成功的查找的探查期望数上界为 探查期望数 (1 - 装载因子) / 装载因子 所以(1 - 7/8) / (7/8) 15/7. 这意味着当我们查找不存在的关键字时预期需要探查整个散列表的15/7倍。 对于一次成功的查找因为我们的目标元素一定存在于表中所以其探查次数为1。 天工 对于采用均匀散列的开放寻址散列表探查期望数的计算公式如下 E 1 (n-1) * (1-loadFactor) 其中n 为散列表中元素的个数loadFactor 为装载因子。 当装载因子为 3/4 时一次不成功查找的探查期望数上界为 E 1 (n-1) * (1-3/4) 1 (n-1) * 1/4 当装载因子为 7/8 时一次不成功查找的探查期望数上界为 E 1 (n-1) * (1-7/8) 1 (n-1) * 1/8 一次成功查找的探查期望数上界为 1因为成功查找时不需要进行探查。 需要注意的是以上计算公式只是探查期望数的上界实际的探查期望数可能会比这个值小。此外在实际应用中还需要考虑其他因素如散列函数的设计、冲突解决策略等。 灵小智 对于具有均匀散列和开放寻址的散列表在装载因子为 3/4 和 7/8 时可以计算出一次不成功查找和一次成功查找的探查期望数上界。装载因子Load Factor用来衡量散列表中已经被占用的位置比例。装载因子等于散列表中已存储元素数量与总槽数量之比。 探查期望数上界是指在散列表中进行查找时平均需要尝试的次数的上限值。 1.装载因子为 3/4 时 一次不成功查找的探查期望数上界约为 1 / (1 - 3/4) 4 次 一次成功查找的探查期望数上界约为 -ln(1 - 3/4) ≈ 1.386 次 2.装载因子为 7/8 时 一次不成功查找的探查期望数上界约为 1 / (1 - 7/8) 8 次 一次成功查找的探查期望数上界约为 -ln(1 - 7/8) ≈ 2.772 次 这些数值仅作为近似值提供实际情况可能会受到具体的散列函数和探查策略的影响而有所不同。 chatgpt 对于采用均匀散列的开放寻址散列表当装载因子为3/4时不成功查找的探查期望数上界可以通过公式进行计算 不成功查找的探查期望数上界 1 / (1 - 装载因子)将装载因子替换为3/4则有 不成功查找的探查期望数上界 1 / (1 - 3/4) 4这意味着在平均情况下进行一次不成功的查找最多需要进行4次探查。 同样地当装载因子为7/8时不成功查找的探查期望数上界为 不成功查找的探查期望数上界 1 / (1 - 装载因子)将装载因子替换为7/8则有 不成功查找的探查期望数上界 1 / (1 - 7/8) 8这意味着在平均情况下进行一次不成功的查找最多需要进行8次探查。 至于一次成功查找的探查期望数上界在采用均匀散列和开放寻址策略时是难以给出精确值的。这是由于具体元素位置和相邻元素被占用情况等因素的影响。但通常情况下成功查找所需的探查次数会较不成功查找少得多。
http://www.w-s-a.com/news/865168/

相关文章:

  • 网站全屏代码做网站必须用对方服务器
  • 网站速度慢wordpressssl正式申请后wordpress
  • 那个网站做玉石最专业西瓜创客少儿编程加盟
  • 备案时的网站建设方案书免费软件库
  • 惠州外贸网站建设网站模板 兼容ie8
  • 南京淄博网站建设方案php网站开发实训感想
  • 网站设计的含义只做恐怖片的网站
  • 网站改版方案ppt室内装修公司简介
  • 做色网站wordpress twenty ten
  • 马鞍山建设工程监督站建管处网站免费的海报模板网站
  • 类似百度的网站移动端的网站怎么做的
  • 网站开发需要什么文凭网站分析的优劣势
  • 海尔网站建设不足之处山东网站营销
  • 楚雄 网站建设广告设计一般人能学吗
  • 热搜榜排名前十山东seo多少钱
  • 衡水哪有建网站的吗企业信息系统英文
  • 有模板怎么建站wordpress媒体库图片路径
  • 怎么做网站h汉狮企业网站营销的实现方式
  • 新津县建设局网站怎么做区块链网站
  • 网站设计与制作是什么专业广州优化网站
  • 腾讯有做淘宝客网站吗网站开发包
  • 网站整体营销方案网站建设百度贴吧
  • 宣传式网站养生网站模板
  • 临猗网站建设天津做网站哪家服务好
  • 郑州做网站九零后用织梦建设网站的步骤
  • 莱芜网站优化加徽信xiala5江都网站制作
  • 网站开发工具书焦作网站开发公司电话
  • 石狮网站建设报价百度爱采购怎么优化排名
  • 广州网站开发系统如何建设百度网站
  • 免费建立一个个人网站网站流量图怎么做