Files
thejinchao.github.io/assets/RandRound.html-DOXfikyr.js
T

22 lines
36 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{_ as n,c,a as l,b as s,d as a,o as t}from"./app-BdNP3b8G.js";const x="/images/2015/05/rnd_01.gif",e="/images/2015/05/rnd_02.gif",j="/images/2015/05/rnd_03.gif",i="/images/2015/05/rnd_04.png",o="/images/2015/05/rnd_07.png",p={};function r(u,m){return t(),c("div",null,m[0]||(m[0]=[l(`<h1 id="如何生成一个随机的圆形" tabindex="-1"><a class="header-anchor" href="#如何生成一个随机的圆形"><span>如何生成一个随机的圆形</span></a></h1><p>最近在工作中遇到这么一个问题:</p><blockquote><p>在游戏场景中有一个怪物生成点,这个生长点产生的怪物均匀分布在半径为R的圆形内,这个随机算法应该如何生成?看起来很简单,随手写了一个:</p></blockquote><div class="language-cpp" data-highlighter="prismjs" data-ext="cpp" data-title="cpp"><pre><code><span class="line"><span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">define</span> <span class="token macro-name">RAND</span> <span class="token expression"><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token keyword">float</span><span class="token punctuation">)</span><span class="token function">rand</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">/</span>RAND_MAX<span class="token punctuation">)</span></span></span></span>
<span class="line"> </span>
<span class="line"><span class="token keyword">void</span> <span class="token function">get_random_pos</span><span class="token punctuation">(</span><span class="token keyword">float</span> center_x<span class="token punctuation">,</span> <span class="token keyword">float</span> center_y<span class="token punctuation">,</span> <span class="token keyword">float</span> radius<span class="token punctuation">,</span> <span class="token keyword">float</span><span class="token operator">&amp;</span>x<span class="token punctuation">,</span> <span class="token keyword">float</span><span class="token operator">&amp;</span> y<span class="token punctuation">)</span></span>
<span class="line"><span class="token punctuation">{</span></span>
<span class="line"> <span class="token keyword">float</span> u <span class="token operator">=</span> RAND<span class="token operator">*</span>radius<span class="token punctuation">;</span></span>
<span class="line"> <span class="token keyword">float</span> v <span class="token operator">=</span> RAND<span class="token operator">*</span><span class="token number">2</span><span class="token operator">*</span>PI<span class="token punctuation">;</span></span>
<span class="line"> </span>
<span class="line"> x <span class="token operator">=</span> center_x <span class="token operator">+</span> u<span class="token operator">*</span><span class="token function">cos</span><span class="token punctuation">(</span>v<span class="token punctuation">)</span><span class="token punctuation">;</span></span>
<span class="line"> y <span class="token operator">=</span> center_y <span class="token operator">+</span> u<span class="token operator">*</span><span class="token function">sin</span><span class="token punctuation">(</span>v<span class="token punctuation">)</span><span class="token punctuation">;</span></span>
<span class="line"><span class="token punctuation">}</span></span>
<span class="line"></span></code></pre></div><p>但写的过程中,直觉告诉我,这么写肯定是有问题的,试想,如果以北京为例,如果北京的人口是均匀分布的,那么如果让所有人都报出自己家和天安门的距离,那么这些数据肯定不是均匀,因为居住在五环附近的人数肯定要大于居住在二环附近的人数,于是用Mathamatica实验一下:</p><figure><img src="`+x+'" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure><p>果然,这么写是不对的,网上查了一下,这个问题还真是有人研究过,说应该把所获得的随机数开平方一下,实验一下:</p><figure><img src="'+e+'" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure>',8),s("p",null,[a("但是,这个开平方背后的数学原理究竟是什么呢?抽空翻了下概率书,原来,其中的道理并不复杂,这里涉及到概率里的一个基本概念,累计分布函数(Cumulative distribution function),简称CFD,它的定义如下: 设有一个随机变量"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D44B TEX-I"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"X")])])]),a(",它的取值范围是从负无穷到正无穷,如果把它的值小于"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x")])])]),a("的概率表达为一个函数"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D439 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"F"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",{stretchy:"false"},")")])])]),a(",那么这个函数就称为"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D44B TEX-I"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"X")])])]),a("的累计分布函数")],-1),s("mjx-container",{class:"MathJax",jax:"CHTML",display:"true",style:{position:"relative"}},[s("mjx-math",{display:"true",style:{"margin-left":"0","margin-right":"0"},class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mstyle",null,[s("mjx-TeXAtom",{texclass:"ORD"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D439 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c3D"})]),s("mjx-mi",{class:"mjx-i",space:"4"},[s("mjx-c",{class:"mjx-c1D443 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D44B TEX-I"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c2264"})]),s("mjx-mi",{class:"mjx-i",space:"4"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})])])])]),s("mjx-assistive-mml",{unselectable:"on",display:"block"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mstyle",{displaystyle:"true",scriptlevel:"0"},[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"F"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mi",null,"P"),s("mo",{stretchy:"false"},"("),s("mi",null,"X"),s("mo",null,"≤"),s("mi",null,"x"),s("mo",{stretchy:"false"},")")])])])])],-1),s("p",null,[a("以最为常见的均匀分布概率为例,设均匀分布的随机变量"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D44B TEX-I"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"X")])])]),a("的取值范围是"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c5B"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D44E TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c2C"})]),s("mjx-mi",{class:"mjx-i",space:"2"},[s("mjx-c",{class:"mjx-c1D44F TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c5D"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"["),s("mi",null,"a"),s("mo",null,","),s("mi",null,"b"),s("mo",{stretchy:"false"},"]")])])]),a(",那么它的累计分布函数以及函数图像是")],-1),s("div",{align:"center"},[s("table",{class:"invisibletable"},[s("tbody",null,[s("tr",null,[s("td",null,[s("mjx-container",{class:"MathJax",jax:"CHTML",display:"true",style:{position:"relative"}},[s("mjx-math",{display:"true",style:{"margin-left":"0","margin-right":"0"},class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D439 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c3D"})]),s("mjx-mrow",{space:"4"},[s("mjx-mo",{class:"mjx-n"},[s("mjx-stretchy-v",{style:{height:"3.613em","vertical-align":"-1.557em"},class:"mjx-c7B"},[s("mjx-beg",null,[s("mjx-c")]),s("mjx-ext",null,[s("mjx-c")]),s("mjx-mid",null,[s("mjx-c")]),s("mjx-ext",null,[s("mjx-c")]),s("mjx-end",null,[s("mjx-c")]),s("mjx-mark")])]),s("mjx-mtable",{style:{"min-width":"6.966em"}},[s("mjx-table",null,[s("mjx-itable",null,[s("mjx-mtr",null,[s("mjx-mtd",{style:{"text-align":"left","padding-right":"0.5em","padding-bottom":"0.1em"}},[s("mjx-mn",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c30"})]),s("mjx-tstrut")]),s("mjx-mtd",{style:{"text-align":"left","padding-left":"0.5em","padding-bottom":"0.1em"}},[s("mjx-TeXAtom",{texclass:"ORD"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c3C"})]),s("mjx-mi",{class:"mjx-i",space:"4"},[s("mjx-c",{class:"mjx-c1D44E TEX-I"})])]),s("mjx-tstrut")])]),s("mjx-mtr",null,[s("mjx-mtd",{style:{"text-align":"left","padding-right":"0.5em","padding-top":"0.1em","padding-bottom":"0.1em"}},[s("mjx-mfrac",null,[s("mjx-frac",null,[s("mjx-num",null,[s("mjx-nstrut"),s("mjx-mrow",{size:"s"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c2212"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D44E TEX-I"})])])]),s("mjx-dbox",null,[s("mjx-dtable",null,[s("mjx-line"),s("mjx-row",null,[s("mjx-den",null,[s("mjx-dstrut"),s("mjx-mrow",{size:"s"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D44F TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c2212"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D44E TEX-I"})])])])])])])])]),s("mjx-tstrut")]),s("mjx-mtd",{style:{"text-align":"left","padding-left":"0.5em","padding-top":"0.1em","padding-bottom":"0.1em"}},[s("mjx-TeXAtom",{texclass:"ORD"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D44E TEX-I"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c2264"})]),s("mjx-mi",{class:"mjx-i",space:"4"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c3C"})]),s("mjx-mi",{class:"mjx-i",space:"4"},[s("mjx-c",{class:"mjx-c1D44F TEX-I"})])]),s("mjx-tstrut")])]),s("mjx-mtr",null,[s("mjx-mtd",{style:{"text-align":"left","padding-right":"0.5em","padding-top":"0.1em"}},[s("mjx-mn",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c31"})]),s("mjx-tstrut")]),s("mjx-mtd",{style:{"text-align":"left","padding-left":"0.5em","padding-top":"0.1em"}},[s("mjx-TeXAtom",{texclass:"ORD"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D44F TEX-I"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c2264"})]),s("mjx-mi",{class:"mjx-i",space:"4"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})])]),s("mjx-tstrut")])])])])]),s("mjx-mo",{class:"mjx-n",style:{"vertical-align":"0.25em"}})])]),s("mjx-assistive-mml",{unselectable:"on",display:"block"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"F"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"{"),s("mtable",{columnalign:"left left",columnspacing:"1em",rowspacing:".2em"},[s("mtr",null,[s("mtd",null,[s("mn",null,"0")]),s("mtd",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"x"),s("mo",null,"<"),s("mi",null,"a")])])]),s("mtr",null,[s("mtd",null,[s("mfrac",null,[s("mrow",null,[s("mi",null,"x"),s("mo",null,"−"),s("mi",null,"a")]),s("mrow",null,[s("mi",null,"b"),s("mo",null,"−"),s("mi",null,"a")])])]),s("mtd",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"a"),s("mo",null,"≤"),s("mi",null,"x"),s("mo",null,"<"),s("mi",null,"b")])])]),s("mtr",null,[s("mtd",null,[s("mn",null,"1")]),s("mtd",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"b"),s("mo",null,"≤"),s("mi",null,"x")])])])]),s("mo",{"data-mjx-texclass":"CLOSE",fence:"true",stretchy:"true",symmetric:"true"})])])])])]),s("td",null,[s("img",{src:j})])]),s("tr")])])],-1),s("p",null,"对于一个累计分布函数,符合以下规律",-1),s("ul",null,[s("li",null,[s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mn",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c30"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c2264"})]),s("mjx-mi",{class:"mjx-i",space:"4"},[s("mjx-c",{class:"mjx-c1D439 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c2264"})]),s("mjx-mn",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c31"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mn",null,"0"),s("mo",null,"≤"),s("mi",null,"F"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",{stretchy:"false"},")"),s("mo",null,"≤"),s("mn",null,"1")])])])]),s("li",null,[s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D439 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"F"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",{stretchy:"false"},")")])])]),a("单调递增")]),s("li",null,[s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-munder",null,[s("mjx-row",null,[s("mjx-base",{style:{"padding-left":"0.49em"}},[s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c6C"}),s("mjx-c",{class:"mjx-c69"}),s("mjx-c",{class:"mjx-c6D"})])])]),s("mjx-row",null,[s("mjx-under",{style:{"padding-top":"0.188em"}},[s("mjx-TeXAtom",{size:"s",texclass:"ORD"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c2192"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c2212"})]),s("mjx-mi",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c221E"})])])])])]),s("mjx-TeXAtom",{space:"2",texclass:"ORD"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D439 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c3D"})]),s("mjx-mn",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c30"})])]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c2C"})]),s("mjx-munder",{space:"2"},[s("mjx-row",null,[s("mjx-base",{style:{"padding-left":"0.49em"}},[s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c6C"}),s("mjx-c",{class:"mjx-c69"}),s("mjx-c",{class:"mjx-c6D"})])])]),s("mjx-row",null,[s("mjx-under",{style:{"padding-top":"0.188em"}},[s("mjx-TeXAtom",{size:"s",texclass:"ORD"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c2192"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c2B"})]),s("mjx-mi",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c221E"})])])])])]),s("mjx-TeXAtom",{space:"2",texclass:"ORD"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D439 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c3D"})]),s("mjx-mn",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c31"})])])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("munder",null,[s("mo",{"data-mjx-texclass":"OP"},"lim"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"x"),s("mo",{accent:"false",stretchy:"false"},"→"),s("mo",null,"−"),s("mi",{mathvariant:"normal"},"∞")])]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"F"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mn",null,"0")]),s("mo",null,","),s("munder",null,[s("mo",{"data-mjx-texclass":"OP"},"lim"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"x"),s("mo",{accent:"false",stretchy:"false"},"→"),s("mo",null,"+"),s("mi",{mathvariant:"normal"},"∞")])]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"F"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mn",null,"1")])])])])])],-1),s("p",null,[a("回到我们的问题中,假设怪物产生的范围的半径为"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D445 TEX-I"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"R")])])]),a(",随机产生一只怪物时,它和中心的距离是一个随机变量"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D44B TEX-I"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"X")])])]),a(",显然,对于怪物均匀分布的情况,"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D44B TEX-I"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"X")])])]),a("落在半径为"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x")])])]),a("的圆内的概率,等于半径为"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"x")])])]),a("小圆和半径为"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D44B TEX-I"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"X")])])]),a("的大圆的面积之比")],-1),s("figure",null,[s("img",{src:i,alt:"",tabindex:"0",loading:"lazy"}),s("figcaption")],-1),s("p",null,"也就是说",-1),s("mjx-container",{class:"MathJax",jax:"CHTML",display:"true",style:{position:"relative"}},[s("mjx-math",{display:"true",style:{"margin-left":"0","margin-right":"0"},class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D439 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c3D"})]),s("mjx-mi",{class:"mjx-i",space:"4"},[s("mjx-c",{class:"mjx-c1D443 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D44B TEX-I"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c2264"})]),s("mjx-mi",{class:"mjx-i",space:"4"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c3D"})]),s("mjx-msup",{space:"4"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-script",{style:{"vertical-align":"0.413em"}},[s("mjx-mn",{class:"mjx-n",size:"s"},[s("mjx-c",{class:"mjx-c32"})])])]),s("mjx-TeXAtom",{texclass:"ORD"},[s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c2F"})])]),s("mjx-msup",null,[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D445 TEX-I"})]),s("mjx-script",{style:{"vertical-align":"0.413em"}},[s("mjx-mn",{class:"mjx-n",size:"s"},[s("mjx-c",{class:"mjx-c32"})])])])]),s("mjx-assistive-mml",{unselectable:"on",display:"block"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"F"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mi",null,"P"),s("mo",{stretchy:"false"},"("),s("mi",null,"X"),s("mo",null,"≤"),s("mi",null,"x"),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("msup",null,[s("mi",null,"x"),s("mn",null,"2")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",null,"/")]),s("msup",null,[s("mi",null,"R"),s("mn",null,"2")])])])],-1),s("p",null,[a("现在我们手头上只有均匀概率的随机数产生器,要想产生这么个随机数需要用到一个很巧妙的运算,就是反函数。设随机变量"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D462 TEX-I"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"u")])])]),a("是一个均匀分布在"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c5B"})]),s("mjx-mn",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c30"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c2C"})]),s("mjx-mn",{class:"mjx-n",space:"2"},[s("mjx-c",{class:"mjx-c31"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c5D"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"["),s("mn",null,"0"),s("mo",null,","),s("mn",null,"1"),s("mo",{stretchy:"false"},"]")])])]),a("之间的随机数,另一个随机变量"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D44B TEX-I"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c3D"})]),s("mjx-mi",{class:"mjx-i",space:"4"},[s("mjx-c",{class:"mjx-c1D439 TEX-I"})]),s("mjx-mo",{class:"mjx-n",space:"3"},[s("mjx-c",{class:"mjx-c2212"})]),s("mjx-mn",{class:"mjx-n",space:"3"},[s("mjx-c",{class:"mjx-c31"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D462 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"X"),s("mo",null,"="),s("mi",null,"F"),s("mo",null,"−"),s("mn",null,"1"),s("mo",{stretchy:"false"},"("),s("mi",null,"u"),s("mo",{stretchy:"false"},")")])])]),a(",现在我们需要证明X的累计分布函数是"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D439 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"F"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",{stretchy:"false"},")")])])]),s("br"),a(" 证明如下")],-1),s("mjx-container",{class:"MathJax",jax:"CHTML",display:"true",style:{position:"relative"}},[s("mjx-math",{display:"true",style:{"margin-left":"0","margin-right":"0"},class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mtable",{style:{"min-width":"12.196em"}},[s("mjx-table",null,[s("mjx-itable",null,[s("mjx-mtr",null,[s("mjx-mtd",{style:{"text-align":"right","padding-right":"0","padding-bottom":"0.15em"}},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D443 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D44B TEX-I"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c2264"})]),s("mjx-mi",{class:"mjx-i",space:"4"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})]),s("mjx-tstrut")]),s("mjx-mtd",{style:{"text-align":"left","padding-left":"0","padding-bottom":"0.15em"}},[s("mjx-mi",{class:"mjx-n"}),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c3D"})]),s("mjx-mi",{class:"mjx-i",space:"4"},[s("mjx-c",{class:"mjx-c1D443 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-msup",null,[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D439 TEX-I"})]),s("mjx-script",{style:{"vertical-align":"0.413em","margin-left":"0.055em"}},[s("mjx-TeXAtom",{size:"s",texclass:"ORD"},[s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c2212"})]),s("mjx-mn",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c31"})])])])]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D462 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c2264"})]),s("mjx-mi",{class:"mjx-i",space:"4"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})]),s("mjx-tstrut")])]),s("mjx-mtr",null,[s("mjx-mtd",{style:{"text-align":"right","padding-right":"0","padding-top":"0.15em","padding-bottom":"0.15em"}},[s("mjx-tstrut")]),s("mjx-mtd",{style:{"text-align":"left","padding-left":"0","padding-top":"0.15em","padding-bottom":"0.15em"}},[s("mjx-mi",{class:"mjx-n"}),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c3D"})]),s("mjx-mi",{class:"mjx-i",space:"4"},[s("mjx-c",{class:"mjx-c1D443 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D462 TEX-I"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c2264"})]),s("mjx-mi",{class:"mjx-i",space:"4"},[s("mjx-c",{class:"mjx-c1D439 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})]),s("mjx-tstrut")])]),s("mjx-mtr",null,[s("mjx-mtd",{style:{"text-align":"right","padding-right":"0","padding-top":"0.15em"}},[s("mjx-tstrut")]),s("mjx-mtd",{style:{"text-align":"left","padding-left":"0","padding-top":"0.15em"}},[s("mjx-mi",{class:"mjx-n"}),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c3D"})]),s("mjx-mi",{class:"mjx-i",space:"4"},[s("mjx-c",{class:"mjx-c1D439 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})]),s("mjx-tstrut")])])])])])]),s("mjx-assistive-mml",{unselectable:"on",display:"block"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mtable",{displaystyle:"true",columnalign:"right left",columnspacing:"0em",rowspacing:"3pt"},[s("mtr",null,[s("mtd",null,[s("mi",null,"P"),s("mo",{stretchy:"false"},"("),s("mi",null,"X"),s("mo",null,"≤"),s("mi",null,"x"),s("mo",{stretchy:"false"},")")]),s("mtd",null,[s("mi"),s("mo",null,"="),s("mi",null,"P"),s("mo",{stretchy:"false"},"("),s("msup",null,[s("mi",null,"F"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},"("),s("mi",null,"u"),s("mo",{stretchy:"false"},")"),s("mo",null,"≤"),s("mi",null,"x"),s("mo",{stretchy:"false"},")")])]),s("mtr",null,[s("mtd"),s("mtd",null,[s("mi"),s("mo",null,"="),s("mi",null,"P"),s("mo",{stretchy:"false"},"("),s("mi",null,"u"),s("mo",null,"≤"),s("mi",null,"F"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",{stretchy:"false"},")"),s("mo",{stretchy:"false"},")")])]),s("mtr",null,[s("mtd"),s("mtd",null,[s("mi"),s("mo",null,"="),s("mi",null,"F"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",{stretchy:"false"},")")])])])])])],-1),s("p",null,"初看起来有点复杂,其实在下面的图上可以很直观的理解这个过程:",-1),s("figure",null,[s("img",{src:o,alt:"",tabindex:"0",loading:"lazy"}),s("figcaption")],-1),s("p",null,[a("这是利用了"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D439 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"F"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",{stretchy:"false"},")")])])]),a("是单调递增函数的特性,在我们的问题中,"),s("mjx-container",{class:"MathJax",jax:"CHTML",style:{position:"relative"}},[s("mjx-math",{class:"MJX-TEX","aria-hidden":"true"},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D439 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D465 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})])]),s("mjx-assistive-mml",{unselectable:"on",display:"inline"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"F"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",{stretchy:"false"},")")])])]),a("的反函数可以表达为")],-1),s("mjx-container",{class:"MathJax",jax:"CHTML",display:"true",style:{position:"relative"}},[s("mjx-math",{display:"true",style:{"margin-left":"0","margin-right":"0"},class:"MJX-TEX","aria-hidden":"true"},[s("mjx-msup",null,[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D439 TEX-I"})]),s("mjx-script",{style:{"vertical-align":"0.413em","margin-left":"0.055em"}},[s("mjx-TeXAtom",{size:"s",texclass:"ORD"},[s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c2212"})]),s("mjx-mn",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c31"})])])])]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c28"})]),s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D462 TEX-I"})]),s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c29"})]),s("mjx-mo",{class:"mjx-n",space:"4"},[s("mjx-c",{class:"mjx-c3D"})]),s("mjx-mi",{class:"mjx-i",space:"4"},[s("mjx-c",{class:"mjx-c1D445 TEX-I"})]),s("mjx-msqrt",null,[s("mjx-sqrt",null,[s("mjx-surd",null,[s("mjx-mo",{class:"mjx-n"},[s("mjx-c",{class:"mjx-c221A"})])]),s("mjx-box",{style:{"padding-top":"0.329em"}},[s("mjx-mi",{class:"mjx-i"},[s("mjx-c",{class:"mjx-c1D462 TEX-I"})])])])])]),s("mjx-assistive-mml",{unselectable:"on",display:"block"},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("msup",null,[s("mi",null,"F"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},"("),s("mi",null,"u"),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mi",null,"R"),s("msqrt",null,[s("mi",null,"u")])])])],-1),l(`<p>所以最终的算法可以写成</p><div class="language-cpp" data-highlighter="prismjs" data-ext="cpp" data-title="cpp"><pre><code><span class="line"><span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">define</span> <span class="token macro-name">RAND</span> <span class="token expression"><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token keyword">float</span><span class="token punctuation">)</span><span class="token function">rand</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">/</span>RAND_MAX<span class="token punctuation">)</span></span></span></span>
<span class="line"> </span>
<span class="line"><span class="token keyword">void</span> <span class="token function">get_random_pos</span><span class="token punctuation">(</span><span class="token keyword">float</span> center_x<span class="token punctuation">,</span> <span class="token keyword">float</span> center_y<span class="token punctuation">,</span> <span class="token keyword">float</span> radius<span class="token punctuation">,</span> <span class="token keyword">float</span><span class="token operator">&amp;</span>x<span class="token punctuation">,</span> <span class="token keyword">float</span><span class="token operator">&amp;</span> y<span class="token punctuation">)</span></span>
<span class="line"><span class="token punctuation">{</span></span>
<span class="line"> <span class="token keyword">float</span> u <span class="token operator">=</span> <span class="token function">sqrt</span><span class="token punctuation">(</span>RAND<span class="token punctuation">)</span><span class="token operator">*</span>radius<span class="token punctuation">;</span></span>
<span class="line"> <span class="token keyword">float</span> v <span class="token operator">=</span> RAND<span class="token operator">*</span><span class="token number">2</span><span class="token operator">*</span>PI<span class="token punctuation">;</span></span>
<span class="line"> </span>
<span class="line"> x <span class="token operator">=</span> center_x <span class="token operator">+</span> u<span class="token operator">*</span><span class="token function">cos</span><span class="token punctuation">(</span>v<span class="token punctuation">)</span><span class="token punctuation">;</span></span>
<span class="line"> y <span class="token operator">=</span> center_y <span class="token operator">+</span> u<span class="token operator">*</span><span class="token function">sin</span><span class="token punctuation">(</span>v<span class="token punctuation">)</span><span class="token punctuation">;</span></span>
<span class="line"><span class="token punctuation">}</span></span>
<span class="line"></span></code></pre></div>`,2)]))}const h=n(p,[["render",r],["__file","RandRound.html.vue"]]),y=JSON.parse('{"path":"/blog/2025/02/RandRound.html","title":"如何生成一个随机的圆形","lang":"zh-CN","frontmatter":{"title":"如何生成一个随机的圆形","tags":"数学 概率 程序 算法"},"headers":[],"git":{"updatedTime":1740310507000,"contributors":[{"name":"thejinchao","username":"thejinchao","email":"thejinchao@gmail.com","commits":2,"url":"https://github.com/thejinchao"}]},"filePathRelative":"blog/2025/02/RandRound.md"}');export{h as comp,y as data};