在做五子棋 AI 的时候,遇到一处要使用 dirichlet 分布。查阅了一下资料还挺复杂的,不过好在可以使用 gamma 分布来生成:

#include <random>void dirichlet(double* out, int k, double a) {std::gamma_distribution<double> gamma(a);std::random_device rd;double *y = alloca(sizeof(double)*k); // stack allocationdouble sum=0;for (int i=0; i<k; ++i) {y[i] = gamma(rd);sum += y[i];}for (int i=; i<k; ++i) {out[i] = y[i]/sum;}
}void dirichlet(double* out, int k, double const* a) {using Gamma = std::gamma_distribution<double>;Gamma gamma;std::random_device rd;double *y = alloca(sizeof(double)*k); // stack allocationdouble sum=0;for (int i=0; i<k; ++i) {y[i] = gamma(rd, Gamma::param_type(a[i], 1));sum += y[i];}for (int i=0; i<k; ++i) {out[i] = y[i]/sum;}
}

C++ Dirichlet 分布相关推荐

  1. 关于Beta分布、二项分布与Dirichlet分布、多项分布的关系

    from:http://blog.csdn.net/u010140338/article/details/41344853 From : http://www.cnblogs.com/wybang/p ...

  2. 机器学习知识点(二十八)Beta分布和Dirichlet分布理解

    1.二者关系: Dirichlet分布是Beta分布的多元推广.Beta分布是二项式分布的共轭分布,Dirichlet分布是多项式分布的共轭分布. 通常情况下,我们说的分布都是关于某个参数的函数,把对 ...

  3. Dirichlet分布与多项分布的共轭性

    Dirichlet分布与多项分布的共轭性 二项分布与Beta分布的共轭性 Dirichlet分布与多项分布的共轭性 关于多项分布与Dirichlet分布的基础可以参考: UA MATH564 概率论 ...

  4. UA MATH564 概率论 Dirichlet分布

    UA MATH564 概率论 Dirichlet分布 在UA MATH564 概率论IV 次序统计量中,我们介绍了均匀分布U(0,1)U(0,1)U(0,1)的多个次序统计量的联合分布就是Dirich ...

  5. 深度学习核心技术精讲100篇(二十一)-深入理解Dirichlet分布及过程

    前言 Dirichlet分布(Dirichelt Distribution)和Dirichlet过程 (Dirichlet Process)广泛应用于信息检索.自然语言处理等领域,是理解主题模型的重要 ...

  6. 机器学习的数学基础(1)--Dirichlet分布

    这一系列(机器学习的数学基础)主要包括目前学习过程中回过头复习的基础数学知识的总结. 基础知识:conjugate priors共轭先验 共轭先验是指这样一种概率密度:它使得后验概率的密度函数与先验概 ...

  7. NLP之TopicModel:朴素贝叶斯NB的先验概率之Dirichlet分布的应用

    NLP之TopicModel:朴素贝叶斯NB的先验概率之Dirichlet分布的应用 目录 1.Dirichlet骰子先验和后验分布的采样 2.稀疏Dirichlet先验的采样 1.Dirichlet ...

  8. 机器学习中的数学——常用概率分布(十一):狄利克雷分布(Dirichlet分布)

    分类目录:<机器学习中的数学>总目录 相关文章: · 常用概率分布(一):伯努利分布(Bernoulli分布) · 常用概率分布(二):范畴分布(Multinoulli分布) · 常用概率 ...

  9. NLP之TM之Dirichlet:朴素贝叶斯NB的先验概率之Dirichlet分布的应用

    NLP之TM之Dirichlet:朴素贝叶斯NB的先验概率之Dirichlet分布的应用 目录 1.Dirichlet骰子先验和后验分布的采样 2.稀疏Dirichlet先验的采样 1.Dirichl ...

最新文章

  1. 神器:REST测试工具[wiztools.org restclient]客户端Jar依赖Java安装环境
  2. (0052)iOS开发之沙盒(sandbox)机制和文件操作(二)
  3. 从软件工程的角度解读任正非的新年公开信
  4. opencv for linux mac,opencv for Java在MacOS 10.10安装
  5. 电子信息科学与技术计算机科学与技术会计学,我是本三学生 学的电子信息科学与技术专业 今年大三 从没接触过会计 想考注册会计师 可以么 ?...
  6. Dubbo Zookeeper Quick Start
  7. 软件加license的一种实现方法
  8. python 运维包_python运维常用模块
  9. (转,记录用)jQuery页面加载初始化的3种方法
  10. Golang标准库RPC实践及改进
  11. 【面经】关于Transformer,面试官们都怎么问
  12. java 计算限行尾号(北京)
  13. ug添加imachining变量_UG变量设置)
  14. 一个浏览器播放5个或者6个flv的视频就不能播放了
  15. latex 花体之英文字母
  16. 有趣的算法:捞鱼问题
  17. Java 恋爱纪念日(日期问题)
  18. 考研英语(一)——简单句
  19. SDNU_ACM_ICPC_2020_Winter_Practice_4th [Reproduced]
  20. Python小记:14.数据分析基础知识点汇总

热门文章

  1. 侯继勇先生担任BCF新闻理事
  2. 怎么移动矩形选框工具选中的东西_ps矩形选框工具怎么用,你值得一看的技巧...
  3. PS使用技巧(二) 选框工具 M
  4. vissim交通仿真实验(2)--十字信号交叉口
  5. 2.4模拟打牌游戏中的发牌过程
  6. Linux:XXX 不在 sudoers 文件中。此事将被报告。
  7. 浏览器打印不弹出预览直接打印
  8. 耐心看的人早晚会成人上人
  9. 律师行业拓客的10个经典方法
  10. Android开发之 Wifi扫描分析