加权随机选择:替换与非替换
加权随机选择是各种应用中使用的基本技术。它涉及从给定列表中采样元素,概率分布由指定权重确定。当选择具有替换的元素时,每个项目可以被选择多次,从而导致选择具有较高权重的项目的可能性更高。相比之下,无替换选择会在选择项目后限制其选择。
寻找有效的加权随机选择算法(尤其是替换算法)可能具有挑战性。现有方法(包括修改后的储层算法)被证明不适合从小列表大小中选择显着分数。
一种有效的方法:别名方法
在此场景中表现出色的一种方法是别名方法。该技术创建一组结构化的箱,每个箱代表加权列表的一部分。通过利用位操作,可以有效地对容器进行索引,从而避免二进制搜索。每个 bin 包含原始列表中的两个元素,从而能够有效地表示分布。
例如,考虑五个等权重选择的列表:(a:1, b:1, c:1, d: 1、e:1)。别名方法创建一组八个箱,每个箱的概率质量为 0.125。
- 归一化: 调整权重以使其总和为 1.0。在这种情况下, (a:0.2 b:0.2 c:0.2 d:0.2 e:0.2).
- 分区: 分配权重低于分区概率 (0.125) 的 bin,从重量最低。这里,(p1{a|null,1.0},p2,p3,p4,p5,p6,p7,p8).
- 填充:用最高的填充分区中的剩余空间权重变量。例如,(p1{a|null,1.0},p2{a|b,0.6},p3,p4,p5,p6,p7,p8)。
运行时选择:
在运行时,我们生成一个随机数并使用位运算来有效地确定与概率分布相对应的 bin。如果 bin 被分割,我们使用随机数的小数部分在 bin 中的两个元素之间进行选择。
总之,别名方法提供了一种有效的带替换的加权随机选择技术。它利用位操作进行快速 bin 索引,并通过仔细地将权重划分为可管理的 bin 来实现准确的概率分布。
以上是在加权随机选择中何时使用替换与非替换?的详细内容。更多信息请关注PHP中文网其他相关文章!

pythonuseshybridapprace,ComminingCompilationTobyTecoDeAndInterpretation.1)codeiscompiledtoplatform-Indepententbybytecode.2)bytecodeisisterpretedbybythepbybythepythonvirtualmachine,增强效率和通用性。

theKeyDifferencesBetnewpython's“ for”和“ for”和“ loopsare:1)” for“ loopsareIdealForiteringSequenceSquencesSorkNowniterations,而2)”,而“ loopsareBetterforConterContinuingUntilacTientInditionIntionismetismetistismetistwithOutpredefinedInedIterations.un

在Python中,可以通过多种方法连接列表并管理重复元素:1)使用 运算符或extend()方法可以保留所有重复元素;2)转换为集合再转回列表可以去除所有重复元素,但会丢失原有顺序;3)使用循环或列表推导式结合集合可以去除重复元素并保持原有顺序。

fasteStmethodMethodMethodConcatenationInpythondependersonListsize:1)forsmalllists,operatorseffited.2)forlargerlists,list.extend.extend()orlistComprechensionfaster,withextendEffaster,withExtendEffers,withextend()withextend()是extextend()asmoremory-ememory-emmoremory-emmoremory-emmodifyinginglistsin-place-place-place。

toInSerteLementIntoApythonList,useAppend()toaddtotheend,insert()foreSpificPosition,andextend()formultiplelements.1)useappend()foraddingsingleitemstotheend.2)useAddingsingLeitemStotheend.2)useeapecificindex,toadapecificindex,toadaSpecificIndex,toadaSpecificIndex,blyit'ssssssslorist.3 toaddextext.3

pythonlistsareimplementedasdynamicarrays,notlinkedlists.1)他们areStoredIncoNtiguulMemoryBlocks,mayrequireRealLealLocationWhenAppendingItems,EmpactingPerformance.2)LinkesedlistSwoldOfferefeRefeRefeRefeRefficeInsertions/DeletionsButslowerIndexeDexedAccess,Lestpypytypypytypypytypy

pythonoffersFourmainMethodStoreMoveElement Fromalist:1)删除(值)emovesthefirstoccurrenceofavalue,2)pop(index)emovesanderturnsanelementataSpecifiedIndex,3)delstatementremoveselemsbybybyselementbybyindexorslicebybyindexorslice,and 4)

toresolvea“ dermissionded”错误Whenrunningascript,跟随台词:1)CheckAndAdjustTheScript'Spermissions ofchmod xmyscript.shtomakeitexecutable.2)nesureThEseRethEserethescriptistriptocriptibationalocatiforecationAdirectorywherewhereyOuhaveWritePerMissionsyOuhaveWritePermissionsyYouHaveWritePermissions,susteSyAsyOURHomeRecretectory。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

WebStorm Mac版
好用的JavaScript开发工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SublimeText3汉化版
中文版,非常好用