-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
11 lines (11 loc) · 58.4 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
<!doctypehtml><html lang=zh-CN><meta charset=UTF-8><meta content=width=device-width name=viewport><meta content=#222 name=theme-color><meta content="Hexo 7.1.1" name=generator><link href=https://fonts.googleapis.com rel=preconnect><link href=https://cdnjs.cloudflare.com rel=preconnect><link href=https://www.longluo.me/assets/logo/apple-touch-icon.png rel=apple-touch-icon sizes=180x180><link href=https://www.longluo.me/assets/logo/favicon-32x32.png rel=icon sizes=32x32 type=image/png><link href=https://www.longluo.me/assets/logo/favicon-16x16.png rel=icon sizes=16x16 type=image/png><link color=#222 href=/images/logo.svg rel=mask-icon><meta content=n6mekvZa-QaR3EnDD-CzJymq7mGubpU7rvoGpKROHLE name=google-site-verification><meta content=6BFBD4DDDB3B6F4FDD26CF82BADDB931 name=msvalidate.01><meta content=a2ab49d952ea45f5 name=yandex-verification><meta content=www.longluo.me name=baidu-site-verification><link href=/css/main.css rel=stylesheet><link as=style href=https://fonts.googleapis.com/css?family=Noto+Serif+SC:300,300italic,400,400italic,700,700italic%7CRoboto+Mono:300,300italic,400,400italic,700,700italic&display=swap&subset=latin,latin-ext onload=this.rel='stylesheet' rel=preload><link crossorigin=anonymous href=https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css integrity=sha256-XOqroi11tY4EFQMR9ZYwZWKj5ZXiftSx36RRuC3anlA= rel=stylesheet><link crossorigin=anonymous href=https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.1.1/animate.min.css integrity=sha256-PR7ttpcvz8qrF57fur/yAx1qXMFJeJFiA6pSzWi0OIE= rel=stylesheet><script class=next-config data-name=main type=application/json>{"hostname":"www.longluo.me","root":"/","images":"/images","scheme":"Pisces","darkmode":false,"version":"8.20.0","exturl":false,"sidebar":{"position":"left","width_expanded":320,"width_dual_column":240,"display":"post","padding":18,"offset":12},"hljswrap":true,"copycode":{"enable":true,"style":"default"},"fold":{"enable":false,"height":500},"bookmark":{"enable":true,"color":"#222","save":"auto"},"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"stickytabs":false,"motion":{"enable":true,"async":false,"transition":{"menu_item":"fadeInDown","post_block":"fadeIn","post_header":"fadeInDown","post_body":"fadeInDown","coll_header":"fadeInLeft","sidebar":"fadeInUp"}},"i18n":{"placeholder":"搜索...","empty":"没有找到任何搜索结果:${query}","hits_time":"找到 ${hits} 个搜索结果(用时 ${time} 毫秒)","hits":"找到 ${hits} 个搜索结果"},"path":"/search.xml","localsearch":{"enable":true,"top_n_per_article":5,"unescape":false,"preload":false,"trigger":"auto"}}</script><script src=https://cdnjs.cloudflare.com/ajax/libs/hexo-theme-next/8.20.0/config.min.js></script><meta content="A Curious Engineer" name=description><meta content=website property=og:type><meta content="Long Luo's Life Notes" property=og:title><meta content=https://www.longluo.me/index.html property=og:url><meta content="Long Luo's Life Notes" property=og:site_name><meta content="A Curious Engineer" property=og:description><meta content=zh_CN property=og:locale><meta content="Long Luo" property=article:author><meta content="longluo, Tech, Tech Blog, 技术博客, Personal Blog, 个人博客, Android, 安卓博客, 原创博客, Software Engineer, 软件工程师, Program, 编程, 程序员, 码农, Java, C, C++, Data Structures, 数据结构, Algorithm, 算法, Life" property=article:tag><meta content=summary name=twitter:card><link href=https://www.longluo.me/ rel=canonical><script class=next-config data-name=page type=application/json>{"sidebar":"","isHome":true,"isPost":false,"lang":"zh-CN","comments":"","permalink":"","path":"index.html","title":""}</script><script class=next-config data-name=calendar type=application/json>""</script><title>Long Luo's Life Notes</title><script async src=https://www.googletagmanager.com/gtag/js?id=UA-46213499-2></script><script class=next-config data-name=google_analytics type=application/json>{"tracking_id":"UA-46213499-2","only_pageview":false,"measure_protocol_api_secret":null}</script><script src=https://cdnjs.cloudflare.com/ajax/libs/hexo-theme-next/8.20.0/third-party/analytics/google-analytics.min.js></script><script src=https://cdnjs.cloudflare.com/ajax/libs/hexo-theme-next/8.20.0/third-party/analytics/baidu-analytics.min.js></script><script async src=https://hm.baidu.com/hm.js?a75fb5d0c0ef1e36c34b7f52bb7c48be></script><script async src=https://assets.growingio.com/2.1/gio.js></script><script class=next-config data-name=growingio_analytics type=application/json>"bc65befc551b6d70"</script><script src=https://cdnjs.cloudflare.com/ajax/libs/hexo-theme-next/8.20.0/third-party/analytics/growingio.min.js></script><script>(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "gz2vdkhgvh");</script><script class=next-config data-name=matomo type=application/json>{"enable":true,"server_url":"https://longluo.matomo.cloud/","site_id":1}</script><script src=https://cdnjs.cloudflare.com/ajax/libs/hexo-theme-next/8.20.0/third-party/analytics/matomo.min.js></script><script async data-host-url=longluo.me data-website-id=2a6d2bf9-2adf-474b-a292-84ca30206507 defer src=https://analytics.us.umami.is/script.js></script><script data-domain=longluo.me defer src=https://plausible.io/js/script.js></script><link href=https://waline.longluo.me/ rel=dns-prefetch><noscript><link href=/css/noscript.css rel=stylesheet></noscript><style>.github-emoji { position: relative; display: inline-block; width: 1.2em; min-height: 1.2em; overflow: hidden; vertical-align: top; color: transparent; } .github-emoji > span { position: relative; z-index: 10; } .github-emoji img, .github-emoji .fancybox { margin: 0 !important; padding: 0 !important; border: none !important; outline: none !important; text-decoration: none !important; user-select: none !important; cursor: auto !important; } .github-emoji img { height: 1.2em !important; width: 1.2em !important; position: absolute !important; left: 50% !important; top: 50% !important; transform: translate(-50%, -50%) !important; user-select: none !important; cursor: auto !important; } .github-emoji-fallback { color: inherit; } .github-emoji-fallback img { opacity: 0 !important; }</style><link title="Long Luo's Life Notes" href=/atom.xml rel=alternate type=application/atom+xml><body class=use-motion itemscope itemtype=http://schema.org/WebPage><div class=headband></div><main class=main><div class=column><header class=header itemscope itemtype=http://schema.org/WPHeader><div class=site-brand-container><div class=site-nav-toggle><div aria-label=切换导航栏 class=toggle role=button><span class=toggle-line></span><span class=toggle-line></span><span class=toggle-line></span></div></div><div class=site-meta><a class=brand href=/ rel=start> <i class=logo-line></i> <h1 class=site-title>Long Luo's Life Notes</h1> <i class=logo-line></i> </a><p class=site-subtitle itemprop=description>每一天都是奇迹</div><div class=site-nav-right><div class="toggle popup-trigger" aria-label=搜索 role=button><i class="fa fa-search fa-fw fa-lg"></i></div></div></div><nav class=site-nav><ul class="main-menu menu"><li class="menu-item menu-item-home"><a href=/ rel=section><i class="fa fa-home fa-fw"></i>首页</a><li class="menu-item menu-item-works"><a href=/works rel=section><i class="fa fa-code fa-fw"></i>works</a><li class="menu-item menu-item-about"><a href=/about/ rel=section><i class="fa fa-user fa-fw"></i>关于</a><li class="menu-item menu-item-tags"><a href=/tags/ rel=section><i class="fa fa-tags fa-fw"></i>标签</a><li class="menu-item menu-item-categories"><a href=/categories/ rel=section><i class="fa fa-th fa-fw"></i>分类</a><li class="menu-item menu-item-archives"><a href=/archives/ rel=section><i class="fa fa-archive fa-fw"></i>归档</a><li class="menu-item menu-item-search"><a class=popup-trigger role=button><i class="fa fa-search fa-fw"></i>搜索 </a></ul></nav><div class=search-pop-overlay><div class="popup search-popup"><div class=search-header><span class=search-icon> <i class="fa fa-search"></i> </span><div class=search-input-container><input autocapitalize=off autocomplete=off class=search-input maxlength=80 placeholder=搜索... spellcheck=false type=search></div><span class=popup-btn-close role=button> <i class="fa fa-times-circle"></i> </span></div><div class=search-result-container><div class=search-result-icon><i class="fa fa-spinner fa-pulse fa-5x"></i></div></div></div></div></header><aside class=sidebar><div class="sidebar-inner sidebar-overview-active"><ul class=sidebar-nav><li class=sidebar-nav-toc>文章目录<li class=sidebar-nav-overview>站点概览</ul><div class=sidebar-panel-container><!--noindex--><div class="post-toc-wrap sidebar-panel"></div><!--/noindex--><div class="site-overview-wrap sidebar-panel"><div class="site-author animated" itemprop=author itemscope itemtype=http://schema.org/Person><img alt="Long Luo" class=site-author-image itemprop=image src=https://www.longluo.me/assets/avatar/sinc_3d_python.png><p class=site-author-name itemprop=name>Long Luo<div class=site-description itemprop=description>A Curious Engineer</div></div><div class="site-state-wrap animated"><nav class=site-state><div class="site-state-item site-state-posts"><a href=/archives/> <span class=site-state-item-count>344</span> <span class=site-state-item-name>日志</span> </a></div><div class="site-state-item site-state-categories"><a href=/categories/> <span class=site-state-item-count>24</span> <span class=site-state-item-name>分类</span></a></div><div class="site-state-item site-state-tags"><a href=/tags/> <span class=site-state-item-count>323</span> <span class=site-state-item-name>标签</span></a></div></nav></div><div class="links-of-author animated"><span class=links-of-author-item> <a rel="noopener me" title="GitHub → https://github.com/longluo" href=https://github.com/longluo target=_blank><i class="fab fa-github fa-fw"></i>GitHub</a> </span><span class=links-of-author-item> <a rel="noopener me" title="ZhiHu → http://www.zhihu.com/people/longluo" href=http://www.zhihu.com/people/longluo target=_blank><i class="fab fa-quora fa-fw"></i>ZhiHu</a> </span><span class=links-of-author-item> <a rel="noopener me" title="LinkedIn → https://www.linkedin.com/in/longluo/" href=https://www.linkedin.com/in/longluo/ target=_blank><i class="fa fa-linkedin fa-fw"></i>LinkedIn</a> </span><span class=links-of-author-item> <a rel="noopener me" title="E-Mail → mailto:luolong0226@163.com" href=mailto:luolong0226@163.com target=_blank><i class="fa fa-envelope fa-fw"></i>E-Mail</a> </span></div><div class="cc-license animated" itemprop=license><a class=cc-opacity href=https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh rel=noopener target=_blank><img alt="Creative Commons" src=https://cdnjs.cloudflare.com/ajax/libs/creativecommons-vocabulary/2020.11.3/assets/license_badges/small/by_nc_sa.svg></a></div></div></div></div><div class="sidebar-inner sidebar-blogroll"><div class="links-of-blogroll animated"><div class=links-of-blogroll-title><i class="fa fa-globe fa-fw"></i> 链接</div><ul class=links-of-blogroll-list><li class=links-of-blogroll-item><a href=http://blog.csdn.net/tcpipstack rel=noopener target=_blank title=http://blog.csdn.net/tcpipstack>CSDN</a></ul></div></div></aside></div><div class="main-inner index posts-expand"><div class=post-block><article class=post-content itemscope itemtype=http://schema.org/Article><link href=https://www.longluo.me/blog/2024/04/27/normal-distribution/ itemprop=mainEntityOfPage><span hidden itemprop=author itemscope itemtype=http://schema.org/Person> <meta content=https://www.longluo.me/assets/avatar/sinc_3d_python.png itemprop=image> <meta content="Long Luo" itemprop=name> </span><span hidden itemprop=publisher itemscope itemtype=http://schema.org/Organization> <meta content="Long Luo's Life Notes" itemprop=name> <meta content="A Curious Engineer" itemprop=description> </span><span hidden itemprop=post itemscope itemtype=http://schema.org/CreativeWork> <meta content="undefined | Long Luo's Life Notes" itemprop=name> <meta itemprop=description> </span><header class=post-header><h2 itemprop="name headline" class=post-title><a class=post-title-link href=/blog/2024/04/27/normal-distribution/ itemprop=url>正态分布(Normal Distribution)公式为什么长这样?</a></h2><div class=post-meta-container><div class=post-meta><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-calendar"></i> </span> <span class=post-meta-item-text>发表于</span> <time itemprop="dateCreated datePublished" title="创建时间:2024-04-27 13:16:57" datetime=2024-04-27T13:16:57+08:00>2024-04-27</time> </span><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-calendar-check"></i> </span> <span class=post-meta-item-text>更新于</span> <time title="修改时间:2024-06-23 09:17:25" datetime=2024-06-23T09:17:25+08:00 itemprop=dateModified>2024-06-23</time> </span><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-folder"></i> </span> <span class=post-meta-item-text>分类于</span> <span itemprop=about itemscope itemtype=http://schema.org/Thing> <a href=/categories/Math/ itemprop=url rel=index><span itemprop=name>Math</span></a> </span> </span><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-comment"></i> </span> <span class=post-meta-item-text>Waline:</span> <a href=/blog/2024/04/27/normal-distribution/#waline itemprop=discussionUrl title=waline> <span class="post-comments-count waline-comment-count" data-path=/blog/2024/04/27/normal-distribution/ itemprop=commentCount></span> </a> </span><span class=post-meta-item title=阅读次数> <span class=post-meta-item-icon> <i class="far fa-eye"></i> </span> <span class=post-meta-item-text>阅读次数:</span> <span class=waline-pageview-count data-path=/blog/2024/04/27/normal-distribution/></span> </span><span class=post-meta-break></span><span class=post-meta-item title=本文字数> <span class=post-meta-item-icon> <i class="far fa-file-word"></i> </span> <span class=post-meta-item-text>本文字数:</span> <span>7.5k</span> </span><span class=post-meta-item title=阅读时长> <span class=post-meta-item-icon> <i class="far fa-clock"></i> </span> <span class=post-meta-item-text>阅读时长 ≈</span> <span>7 分钟</span> </span></div></div></header><div class=post-body itemprop=articleBody><p><strong><em>By Long Luo</em></strong><p>相信大家或多或少都听过六西格玛( <span class="math inline">\(\text{6 Sigma}\)</span> ) <a class=footnote-ref href=#fn1 id=fnref1 role=doc-noteref><sup>1</sup></a> 这个词,六西格玛是指生产的产品中, <span class="math inline">\(99.99966\%\)</span> 的产品是没有质量问题的,即只有 <span class="math inline">\(3.4ppm\)</span> 的不良率。<p>假如一家工厂生产某型号零件,零件的长度要求是 <span class="math inline">\(100mm\)</span> ,允许的标准差是 <span class="math inline">\(0.1mm\)</span> 。根据 <span class="math inline">\(6 \sigma\)</span> 原则,零件规格允许的偏差范围是: <span class="math inline">\(100 \pm 6 \times 0.1 = 100 \pm 0.6\)</span> 。<p>这意味着,零件长度超过 <span class="math inline">\(100.6mm\)</span> 或低于 <span class="math inline">\(99.4mm\)</span> 的概率是非常低的,约为 <span class="math inline">\(0.00034\%\)</span> 。如果工厂每天生产 100 万个零件,只允许有 <span class="math inline">\(3.4\)</span> 个零件会超出 <span class="math inline">\(6 \sigma\)</span> 的范围,几乎可以忽略不计。因此,生产过程是极其稳定和可靠的,达到了六西格玛水平。<p>那么 <span class="math inline">\(6 \sigma\)</span> 中 <span class="math inline">\(3.4ppm\)</span> 的不良率来自哪里呢?<p>学过中学数学都知道,在<strong>正态分布</strong>( <span class="math inline">\(\text{Normal Distribution}\)</span> ) <a class=footnote-ref href=#fn2 id=fnref2 role=doc-noteref><sup>2</sup></a> 中, <span class="math inline">\(68.27\%\)</span> 的数据位于平均值的一个标准差内, <span class="math inline">\(95.45\%\)</span> 位于两个标准差内, <span class="math inline">\(99.73\%\)</span> 位于三个标准差内,这也是著名的 68-95-99.7 Rule <a class=footnote-ref href=#fn3 id=fnref3 role=doc-noteref><sup>3</sup></a> ,如下图 1 所示:<figure><img alt="图1. 68-95-99.7 Rule" src=https://www.longluo.me/assets/blog/images/probability/standard_deviation_diagram_micro.svg><figcaption aria-hidden=true>图1. 68-95-99.7 Rule</figcaption></figure><h1 id=什么是正态分布>什么是正态分布?</h1><p>数据可以用不同的方式“分布”,比如数据可以向左散布的多一些,也可以向右散布的多一些,或者分布的乱七八糟,如下图 2 - 4 所示,<figure><img alt="图2. 数据偏向左散布" src=https://www.longluo.me/assets/blog/images/probability/normal_distribution_skew_left.gif><figcaption aria-hidden=true>图2. 数据偏向左散布</figcaption></figure><figure><img alt="图3. 数据偏向右散布" src=https://www.longluo.me/assets/blog/images/probability/normal_distribution_skew_right.gif><figcaption aria-hidden=true>图3. 数据偏向右散布</figcaption></figure><figure><img alt="图4. 数据随机分布" src=https://www.longluo.me/assets/blog/images/probability/normal_distribution_random.gif><figcaption aria-hidden=true>图4. 数据随机分布</figcaption></figure><p>但数据经常会集中在一个中心值的附近,而不向左或右偏斜,像一个<strong>钟形</strong>,如下图 5 所示。<figure><img alt="图5. 数据正态分布" src=https://www.longluo.me/assets/blog/images/probability/empirical_rule_histogram.svg><figcaption aria-hidden=true>图5. 数据正态分布</figcaption></figure><p>正态分布,又称高斯分布( <span class="math inline">\(\text{Gaussian Distribution}\)</span> ),是一种重要的概率分布,是由数学王子高斯 <a class=footnote-ref href=#fn4 id=fnref4 role=doc-noteref><sup>4</sup></a> 在 19 世纪初提出的。有很多日常现象都符合这种分布,如人的身高、考试成绩等。正因为它几乎无处不在,所以叫 Normal Distribution 。德国曾经发行的一款 10 马克的纸币上就印着高斯和正态分布曲线,如下图 6 所示。<figure><img alt="图6. 高斯和正态分布曲线" src=https://www.longluo.me/assets/blog/images/probability/gauss_10_mark.jpg><figcaption aria-hidden=true>图6. 高斯和正态分布曲线</figcaption></figure><!--noindex--><div class=post-button><a class=btn href=/blog/2024/04/27/normal-distribution/#more rel=contents> 阅读全文 » </a></div><!--/noindex--></div><footer class=post-footer><div class=post-eof></div></footer></article></div><div class=post-block><article class=post-content itemscope itemtype=http://schema.org/Article><link href=https://www.longluo.me/blog/2024/04/21/decode-the-highway-system-numbers/ itemprop=mainEntityOfPage><span hidden itemprop=author itemscope itemtype=http://schema.org/Person> <meta content=https://www.longluo.me/assets/avatar/sinc_3d_python.png itemprop=image> <meta content="Long Luo" itemprop=name> </span><span hidden itemprop=publisher itemscope itemtype=http://schema.org/Organization> <meta content="Long Luo's Life Notes" itemprop=name> <meta content="A Curious Engineer" itemprop=description> </span><span hidden itemprop=post itemscope itemtype=http://schema.org/CreativeWork> <meta content="undefined | Long Luo's Life Notes" itemprop=name> <meta itemprop=description> </span><header class=post-header><h2 itemprop="name headline" class=post-title><a class=post-title-link href=/blog/2024/04/21/decode-the-highway-system-numbers/ itemprop=url>高速公路编号背后的数学密码</a></h2><div class=post-meta-container><div class=post-meta><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-calendar"></i> </span> <span class=post-meta-item-text>发表于</span> <time itemprop="dateCreated datePublished" title="创建时间:2024-04-21 08:08:32" datetime=2024-04-21T08:08:32+08:00>2024-04-21</time> </span><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-calendar-check"></i> </span> <span class=post-meta-item-text>更新于</span> <time title="修改时间:2024-06-05 19:42:12" datetime=2024-06-05T19:42:12+08:00 itemprop=dateModified>2024-06-05</time> </span><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-folder"></i> </span> <span class=post-meta-item-text>分类于</span> <span itemprop=about itemscope itemtype=http://schema.org/Thing> <a href=/categories/Math/ itemprop=url rel=index><span itemprop=name>Math</span></a> </span> </span><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-comment"></i> </span> <span class=post-meta-item-text>Waline:</span> <a href=/blog/2024/04/21/decode-the-highway-system-numbers/#waline itemprop=discussionUrl title=waline> <span class="post-comments-count waline-comment-count" data-path=/blog/2024/04/21/decode-the-highway-system-numbers/ itemprop=commentCount></span> </a> </span><span class=post-meta-item title=阅读次数> <span class=post-meta-item-icon> <i class="far fa-eye"></i> </span> <span class=post-meta-item-text>阅读次数:</span> <span class=waline-pageview-count data-path=/blog/2024/04/21/decode-the-highway-system-numbers/></span> </span><span class=post-meta-break></span><span class=post-meta-item title=本文字数> <span class=post-meta-item-icon> <i class="far fa-file-word"></i> </span> <span class=post-meta-item-text>本文字数:</span> <span>5.3k</span> </span><span class=post-meta-item title=阅读时长> <span class=post-meta-item-icon> <i class="far fa-clock"></i> </span> <span class=post-meta-item-text>阅读时长 ≈</span> <span>5 分钟</span> </span></div></div></header><div class=post-body itemprop=articleBody><p><strong><em>By Long Luo</em></strong><p>世界那么大,我想去看看!随着科技的发展,我们早已做到无需离开家就能领略世界各地的风景和文化。通过高清视频、高清直播、社交媒体、 VR 技术、各种图片或者视频分享平台,我们不仅可以体验世界名胜古迹、自然美景和各地的风土人情,还能与当地居民互动,了解他们的日常生活和传统文化。互联网丰富了人们的生活,缩小了地域的界限,真正实现了让世界触手可及,足不出户便可周游世界的梦想。但正所谓“百闻不如一见”,“读万卷书,不如行万里路!”,尽管互联网让我们可以虚拟游览世界,但亲自出行的体验无可替代。自由行不仅提供了前所未有的自由和灵活性,还能让我们亲身感受到大自然的美妙、城市的活力。这种身临其境的体验,远非屏幕前的感受可比。<p>当你打开地图软件时,你会看到如图 1 所示的道路标志,<figure><img alt="图1. 道路编号" src=https://www.longluo.me/assets/blog/images/road/highway_mark.png><figcaption aria-hidden=true>图1. 道路编号</figcaption></figure><p>当你在道路出行时,你也会看到看到如下图 2 所示的路牌,但你可能并未真正留意过这些标志。因为现在我们只需要有一部联网的智能手机,在地图类软件里,设定出发地和目的地,自然有导航会指引我们到达目的地。<figure><img alt="图2. G35 高速萝岗路段" src=https://www.longluo.me/assets/blog/images/road/china_expwy_g35_sign_with_name_in_luogang_tollgate.jpg><figcaption aria-hidden=true>图2. G35 高速萝岗路段</figcaption></figure><p>这些编号肯定不是随机的,那么这些道路编号到底有什么用呢?出于好奇心你可能会去寻找答案,你很容易轻松找到 中国国家高速的编号密码 <a class=footnote-ref href=#fn1 id=fnref1 role=doc-noteref><sup>1</sup></a> 和 高速公路是怎样命名和编号 <a class=footnote-ref href=#fn2 id=fnref2 role=doc-noteref><sup>2</sup></a> 这样的文章。但这些文章只是告诉我们是什么,并没有告诉我们为什么。<p>国内现行的高速公路命名是由交通部从 2005 年启动的 <a class=footnote-ref href=#fn3 id=fnref3 role=doc-noteref><sup>3</sup></a> ,之前道路都以起始地和终点地命名。你可能会想,之前那种命名方式不是更合理吗?用了数字不是更加不清晰易懂吗?如果图 1 不是路牌上写了济广高速,谁知道 G35 <a class=footnote-ref href=#fn4 id=fnref4 role=doc-noteref><sup>4</sup></a> 是哪里到哪里呢?<p>如果你更进一步的话,如果你去了解世界其他国家的高速公路命名的话,你会惊讶的地发现为什么居然全世界各主要大国都选择了类似的编号系统,这背后的原因是什么呢?<p>要回答这个问题,我们需要把时钟拨回几十年前,回到高速公路诞生的时期,那个没有 GPS ,没有手机,只有纸质地图的时代,我们才能知道这种编号系统的<strong>重要意义</strong>和<strong>实用性</strong>,以及背后的<strong>数学密码</strong>。<h1 id=世界各国如何对高速公路进行编号>世界各国如何对高速公路进行编号?</h1><p>我们已经了解了国内高速公路编号 <a class=footnote-ref href=#fn5 id=fnref5 role=doc-noteref><sup>5</sup></a> ,让我们看看其他国家的高速公路系统编号是什么样的。这些国家需要国土面积足够大,高速公路系统足够发达,国土疆域长宽比例没有太夸张,人口分布比较均匀。<!--noindex--><div class=post-button><a class=btn href=/blog/2024/04/21/decode-the-highway-system-numbers/#more rel=contents> 阅读全文 » </a></div><!--/noindex--></div><footer class=post-footer><div class=post-eof></div></footer></article></div><div class=post-block><article class=post-content itemscope itemtype=http://schema.org/Article><link href=https://www.longluo.me/blog/2024/04/16/2024-alibaba-global-mathematics-competition-qualifying-round/ itemprop=mainEntityOfPage><span hidden itemprop=author itemscope itemtype=http://schema.org/Person> <meta content=https://www.longluo.me/assets/avatar/sinc_3d_python.png itemprop=image> <meta content="Long Luo" itemprop=name> </span><span hidden itemprop=publisher itemscope itemtype=http://schema.org/Organization> <meta content="Long Luo's Life Notes" itemprop=name> <meta content="A Curious Engineer" itemprop=description> </span><span hidden itemprop=post itemscope itemtype=http://schema.org/CreativeWork> <meta content="undefined | Long Luo's Life Notes" itemprop=name> <meta itemprop=description> </span><header class=post-header><h2 itemprop="name headline" class=post-title><a class=post-title-link href=/blog/2024/04/16/2024-alibaba-global-mathematics-competition-qualifying-round/ itemprop=url>2024 阿里巴巴全球数学竞赛预选赛 试题解答</a></h2><div class=post-meta-container><div class=post-meta><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-calendar"></i> </span> <span class=post-meta-item-text>发表于</span> <time itemprop="dateCreated datePublished" title="创建时间:2024-04-16 11:13:48" datetime=2024-04-16T11:13:48+08:00>2024-04-16</time> </span><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-calendar-check"></i> </span> <span class=post-meta-item-text>更新于</span> <time title="修改时间:2024-06-16 18:40:11" datetime=2024-06-16T18:40:11+08:00 itemprop=dateModified>2024-06-16</time> </span><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-folder"></i> </span> <span class=post-meta-item-text>分类于</span> <span itemprop=about itemscope itemtype=http://schema.org/Thing> <a href=/categories/Math/ itemprop=url rel=index><span itemprop=name>Math</span></a> </span> </span><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-comment"></i> </span> <span class=post-meta-item-text>Waline:</span> <a href=/blog/2024/04/16/2024-alibaba-global-mathematics-competition-qualifying-round/#waline itemprop=discussionUrl title=waline> <span class="post-comments-count waline-comment-count" data-path=/blog/2024/04/16/2024-alibaba-global-mathematics-competition-qualifying-round/ itemprop=commentCount></span> </a> </span><span class=post-meta-item title=阅读次数> <span class=post-meta-item-icon> <i class="far fa-eye"></i> </span> <span class=post-meta-item-text>阅读次数:</span> <span class=waline-pageview-count data-path=/blog/2024/04/16/2024-alibaba-global-mathematics-competition-qualifying-round/></span> </span><span class=post-meta-break></span><span class=post-meta-item title=本文字数> <span class=post-meta-item-icon> <i class="far fa-file-word"></i> </span> <span class=post-meta-item-text>本文字数:</span> <span>16k</span> </span><span class=post-meta-item title=阅读时长> <span class=post-meta-item-icon> <i class="far fa-clock"></i> </span> <span class=post-meta-item-text>阅读时长 ≈</span> <span>15 分钟</span> </span></div></div></header><div class=post-body itemprop=articleBody><p><strong><em>By Long Luo</em></strong><p><a href=https://damo.alibaba.com/?language=zh rel=noopener target=_blank>阿里巴巴达摩院</a> 从 2018 年开始每年都会举办一届全球数学竞赛,之前一方面自己数学水平比较弱,另外一方面也没有报名,但一直很仰慕那些数学大神的风采。今年是第一次报名参加 <a href=https://damo.alibaba.com/alibaba-global-mathematics-competition?language=zh rel=noopener target=_blank>2024阿里巴巴全球数学竞赛</a> ,上周末参加了预选赛,但遗憾的是,全部 <span class="math inline">\(7\)</span> 道题中只有第 <span class="math inline">\(1, 2, 6\)</span> 题会做,这里分享下我的解答:<h1 id=problem-1>Problem 1</h1><p>几位同学假期组成一个小组去某市旅游. 该市有 <span class="math inline">\(6\)</span> 座塔,它们的位置分别为 <span class="math inline">\(A, B, C, D, E, F\)</span> 。同学们自由行动一段时间后,每位同学都发现,自己在所在的位置只能看到位于 <span class="math inline">\(A, B, C, D\)</span> 处的四座塔,而看不到位于 <span class="math inline">\(E\)</span> 和 <span class="math inline">\(F\)</span> 的塔。已知:<ol type=1><li>同学们的位置和塔的位置均视为同一平面上的点,且这些点彼此不重合;<li>塔中任意 <span class="math inline">\(3\)</span> 点不共线;<li>看不到塔的唯一可能就是视线被其它的塔所阻挡,例如,如果某位同学所在的位置 <span class="math inline">\(P\)</span> 和 <span class="math inline">\(A , B\)</span> 共线,且 <span class="math inline">\(A\)</span> 在线段 <span class="math inline">\(PB\)</span> 上,那么该同学就看不到位于 <span class="math inline">\(B\)</span> 处的塔。</ol><p><strong>(5 分)</strong> 请问 这个旅游小组最多可能有多少名同学?<p><span class="math inline">\(A. 3\)</span><br> <span class="math inline">\(B. 4\)</span> <span class="math inline">\(C. 6\)</span> <span class="math inline">\(D. 12\)</span><h2 id=solution>Solution</h2><p>这道题选 <span class="math inline">\(C\)</span> ,最多只能有 <span class="math inline">\(6\)</span> 名同学。<blockquote><p>[!TIP] 这道题的解题思路是,从假设只有 <span class="math inline">\(1\)</span> 座塔开始,一直到 <span class="math inline">\(6\)</span> 座塔,找到思路。</blockquote><ol type=1><li><p>假设有 <span class="math inline">\(1\)</span> 座塔 <span class="math inline">\(A\)</span> ,那么很显然有无数多同学可以看到塔 <span class="math inline">\(A\)</span> ,也可以有无数多同学看不到塔 <span class="math inline">\(A\)</span> ;<li><p>假设有 <span class="math inline">\(2\)</span> 座塔 <span class="math inline">\(A, B\)</span> ,那么只有以 <span class="math inline">\(A\)</span> 为起点的射线 <span class="math inline">\(AB\)</span> 且位于 <span class="math inline">\(B\)</span> 之后的同学无法看到塔 <span class="math inline">\(A\)</span> ;<li><p>假设有 <span class="math inline">\(3\)</span> 座塔 <span class="math inline">\(A, B, C\)</span> ,同理可知存在无数位同学至少可以看见 <span class="math inline">\(2\)</span> 座塔;<li><p>假设有 <span class="math inline">\(4\)</span> 座塔 <span class="math inline">\(A, B, C, D\)</span> ,同理可知存在无数位同学至少可以看见 <span class="math inline">\(2\)</span> 座塔;<li><p>假设有 <span class="math inline">\(6\)</span> 座塔 <span class="math inline">\(A, B, C, D, E, F\)</span> ,如果每位同学都无法看见 <span class="math inline">\(E, F\)</span> 塔,如下图1 所示:</ol><figure><img alt="图1. Solution of Problem 1" src=https://www.longluo.me/assets/blog/images/math/2024-alibaba-math-contest-problem1-solution.png><figcaption aria-hidden=true>图1. Solution of Problem 1</figcaption></figure><p>所以至多有 <span class="math inline">\(6\)</span> 位同学位于 <span class="math inline">\(M, N, O, P, R, Q\)</span> 处,无法看到塔 <span class="math inline">\(E, F\)</span> 。<!--noindex--><div class=post-button><a class=btn href=/blog/2024/04/16/2024-alibaba-global-mathematics-competition-qualifying-round/#more rel=contents> 阅读全文 » </a></div><!--/noindex--></div><footer class=post-footer><div class=post-eof></div></footer></article></div><div class=post-block><article class=post-content itemscope itemtype=http://schema.org/Article><link href=https://www.longluo.me/blog/2024/02/24/taylor/ itemprop=mainEntityOfPage><span hidden itemprop=author itemscope itemtype=http://schema.org/Person> <meta content=https://www.longluo.me/assets/avatar/sinc_3d_python.png itemprop=image> <meta content="Long Luo" itemprop=name> </span><span hidden itemprop=publisher itemscope itemtype=http://schema.org/Organization> <meta content="Long Luo's Life Notes" itemprop=name> <meta content="A Curious Engineer" itemprop=description> </span><span hidden itemprop=post itemscope itemtype=http://schema.org/CreativeWork> <meta content="undefined | Long Luo's Life Notes" itemprop=name> <meta itemprop=description> </span><header class=post-header><h2 itemprop="name headline" class=post-title><a class=post-title-link href=/blog/2024/02/24/taylor/ itemprop=url>如何证明泰勒公式?</a></h2><div class=post-meta-container><div class=post-meta><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-calendar"></i> </span> <span class=post-meta-item-text>发表于</span> <time itemprop="dateCreated datePublished" title="创建时间:2024-02-24 19:52:19" datetime=2024-02-24T19:52:19+08:00>2024-02-24</time> </span><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-calendar-check"></i> </span> <span class=post-meta-item-text>更新于</span> <time title="修改时间:2024-02-25 21:02:43" datetime=2024-02-25T21:02:43+08:00 itemprop=dateModified>2024-02-25</time> </span><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-folder"></i> </span> <span class=post-meta-item-text>分类于</span> <span itemprop=about itemscope itemtype=http://schema.org/Thing> <a href=/categories/Math/ itemprop=url rel=index><span itemprop=name>Math</span></a> </span> </span><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-comment"></i> </span> <span class=post-meta-item-text>Waline:</span> <a href=/blog/2024/02/24/taylor/#waline itemprop=discussionUrl title=waline> <span class="post-comments-count waline-comment-count" data-path=/blog/2024/02/24/taylor/ itemprop=commentCount></span> </a> </span><span class=post-meta-item title=阅读次数> <span class=post-meta-item-icon> <i class="far fa-eye"></i> </span> <span class=post-meta-item-text>阅读次数:</span> <span class=waline-pageview-count data-path=/blog/2024/02/24/taylor/></span> </span><span class=post-meta-break></span><span class=post-meta-item title=本文字数> <span class=post-meta-item-icon> <i class="far fa-file-word"></i> </span> <span class=post-meta-item-text>本文字数:</span> <span>550</span> </span><span class=post-meta-item title=阅读时长> <span class=post-meta-item-icon> <i class="far fa-clock"></i> </span> <span class=post-meta-item-text>阅读时长 ≈</span> <span>1 分钟</span> </span></div></div></header><div class=post-body itemprop=articleBody><p><strong><em>By Long Luo</em></strong><h1 id=挖坑>挖坑</h1><p><span class="math display">\[ \begin{aligned} f(x) & = f(a) + f(x) - f(a) \\ & = f(a) + \int_a^x f'(t) \mathrm{d}t \\ & = f(a) - \int_a^x f'(t) \mathrm{d}(x-t) \\ & = f(a) - f'(t)(x - t)|_a^x - \frac12 \int_a^x f''(t) \mathrm{d}[(x-t)^2] \\ & = f(a) + f'(a)(x - a) + {f''(a) \over 2}(x - a)^2 - {1 \over 3!} \int_a^x f'''(t) \mathrm{d}[(x-t)]^3 \end{aligned} \]</span><p>不断重复这一过程,可知当 f 的 n+1 阶导数连续时,有:<p><span class="math display">\[ f(x) = \sum_{k=0}^n {f^{(k)}(a) \over k!}(x-a)^k + R_n(x) \]</span><p>其中积分余项 为:<p><span class="math display">\[ R_n(x) = {1 \over n!} \int_a^x f^{(n + 1)}(t)(x - t)^n \mathrm{d}t \]</span><h1 id=参考文献>参考文献</h1><ol type=1><li><a href=https://en.wikipedia.org/wiki/Taylor%27s_theorem rel=noopener target=_blank>Taylor’s theorem</a><li><a href=https://en.wikipedia.org/wiki/Taylor_series rel=noopener target=_blank>Taylor Series</a><li><a href=https://betterexplained.com/articles/taylor-series/ rel=noopener target=_blank>Intuition for Taylor Series</a></ol></div><footer class=post-footer><div class=post-eof></div></footer></article></div><div class=post-block><article class=post-content itemscope itemtype=http://schema.org/Article><link href=https://www.longluo.me/blog/2024/02/16/sine/ itemprop=mainEntityOfPage><span hidden itemprop=author itemscope itemtype=http://schema.org/Person> <meta content=https://www.longluo.me/assets/avatar/sinc_3d_python.png itemprop=image> <meta content="Long Luo" itemprop=name> </span><span hidden itemprop=publisher itemscope itemtype=http://schema.org/Organization> <meta content="Long Luo's Life Notes" itemprop=name> <meta content="A Curious Engineer" itemprop=description> </span><span hidden itemprop=post itemscope itemtype=http://schema.org/CreativeWork> <meta content="undefined | Long Luo's Life Notes" itemprop=name> <meta itemprop=description> </span><header class=post-header><h2 itemprop="name headline" class=post-title><a class=post-title-link href=/blog/2024/02/16/sine/ itemprop=url>库函数 (libm) 是如何计算三角函数值的?</a></h2><div class=post-meta-container><div class=post-meta><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-calendar"></i> </span> <span class=post-meta-item-text>发表于</span> <time itemprop="dateCreated datePublished" title="创建时间:2024-02-16 20:32:58" datetime=2024-02-16T20:32:58+08:00>2024-02-16</time> </span><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-calendar-check"></i> </span> <span class=post-meta-item-text>更新于</span> <time title="修改时间:2024-03-04 21:16:46" datetime=2024-03-04T21:16:46+08:00 itemprop=dateModified>2024-03-04</time> </span><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-folder"></i> </span> <span class=post-meta-item-text>分类于</span> <span itemprop=about itemscope itemtype=http://schema.org/Thing> <a href=/categories/Math/ itemprop=url rel=index><span itemprop=name>Math</span></a> </span> </span><span class=post-meta-item> <span class=post-meta-item-icon> <i class="far fa-comment"></i> </span> <span class=post-meta-item-text>Waline:</span> <a href=/blog/2024/02/16/sine/#waline itemprop=discussionUrl title=waline> <span class="post-comments-count waline-comment-count" data-path=/blog/2024/02/16/sine/ itemprop=commentCount></span> </a> </span><span class=post-meta-item title=阅读次数> <span class=post-meta-item-icon> <i class="far fa-eye"></i> </span> <span class=post-meta-item-text>阅读次数:</span> <span class=waline-pageview-count data-path=/blog/2024/02/16/sine/></span> </span><span class=post-meta-break></span><span class=post-meta-item title=本文字数> <span class=post-meta-item-icon> <i class="far fa-file-word"></i> </span> <span class=post-meta-item-text>本文字数:</span> <span>3.1k</span> </span><span class=post-meta-item title=阅读时长> <span class=post-meta-item-icon> <i class="far fa-clock"></i> </span> <span class=post-meta-item-text>阅读时长 ≈</span> <span>3 分钟</span> </span></div></div></header><div class=post-body itemprop=articleBody><p><strong><em>By Long Luo</em></strong><h1 id=挖坑>挖坑!</h1><figure class="highlight java"><table><tbody><tr><td class=gutter><pre><span class=line>1</span><br><span class=line>2</span><br><span class=line>3</span><br><span class=line>4</span><br><span class=line>5</span><br><span class=line>6</span><br><span class=line>7</span><br><span class=line>8</span><br><span class=line>9</span><br><span class=line>10</span><br><span class=line>11</span><br><span class=line>12</span><br><span class=line>13</span><br><span class=line>14</span><br><span class=line>15</span><br><span class=line>16</span><br><span class=line>17</span><br></pre><td class=code><pre><span class=line><span class=comment>/**</span></span><br><span class=line><span class=comment> * Returns the trigonometric sine of an angle. Special cases:</span></span><br><span class=line><span class=comment> * <ul><li>If the argument is NaN or an infinity, then the</span></span><br><span class=line><span class=comment> * result is NaN.</span></span><br><span class=line><span class=comment> * <li>If the argument is zero, then the result is a zero with the</span></span><br><span class=line><span class=comment> * same sign as the argument.</ul></span></span><br><span class=line><span class=comment> *</span></span><br><span class=line><span class=comment> * <p>The computed result must be within 1 ulp of the exact result.</span></span><br><span class=line><span class=comment> * Results must be semi-monotonic.</span></span><br><span class=line><span class=comment> *</span></span><br><span class=line><span class=comment> * <span class=doctag>@param</span> a an angle, in radians.</span></span><br><span class=line><span class=comment> * <span class=doctag>@return</span> the sine of the argument.</span></span><br><span class=line><span class=comment> */</span></span><br><span class=line><span class=meta>@HotSpotIntrinsicCandidate</span></span><br><span class=line><span class=keyword>public</span> <span class=keyword>static</span> <span class=type>double</span> <span class="title function_">sin</span><span class=params>(<span class=type>double</span> a)</span> {</span><br><span class=line> <span class=keyword>return</span> StrictMath.sin(a); <span class=comment>// default impl. delegates to StrictMath</span></span><br><span class=line>}</span><br></pre></table></figure><figure class="highlight java"><table><tbody><tr><td class=gutter><pre><span class=line>1</span><br><span class=line>2</span><br><span class=line>3</span><br><span class=line>4</span><br><span class=line>5</span><br><span class=line>6</span><br><span class=line>7</span><br><span class=line>8</span><br><span class=line>9</span><br><span class=line>10</span><br><span class=line>11</span><br></pre><td class=code><pre><span class=line><span class=comment>/**</span></span><br><span class=line><span class=comment> * Returns the trigonometric sine of an angle. Special cases:</span></span><br><span class=line><span class=comment> * <ul><li>If the argument is NaN or an infinity, then the</span></span><br><span class=line><span class=comment> * result is NaN.</span></span><br><span class=line><span class=comment> * <li>If the argument is zero, then the result is a zero with the</span></span><br><span class=line><span class=comment> * same sign as the argument.</ul></span></span><br><span class=line><span class=comment> *</span></span><br><span class=line><span class=comment> * <span class=doctag>@param</span> a an angle, in radians.</span></span><br><span class=line><span class=comment> * <span class=doctag>@return</span> the sine of the argument.</span></span><br><span class=line><span class=comment> */</span></span><br><span class=line><span class=keyword>public</span> <span class=keyword>static</span> <span class=keyword>native</span> <span class=type>double</span> <span class="title function_">sin</span><span class=params>(<span class=type>double</span> a)</span>;</span><br></pre></table></figure><figure class="highlight c"><table><tbody><tr><td class=gutter><pre><span class=line>1</span><br><span class=line>2</span><br><span class=line>3</span><br><span class=line>4</span><br><span class=line>5</span><br><span class=line>6</span><br><span class=line>7</span><br><span class=line>8</span><br><span class=line>9</span><br><span class=line>10</span><br><span class=line>11</span><br><span class=line>12</span><br><span class=line>13</span><br><span class=line>14</span><br><span class=line>15</span><br><span class=line>16</span><br><span class=line>17</span><br><span class=line>18</span><br><span class=line>19</span><br><span class=line>20</span><br><span class=line>21</span><br><span class=line>22</span><br><span class=line>23</span><br><span class=line>24</span><br><span class=line>25</span><br><span class=line>26</span><br><span class=line>27</span><br><span class=line>28</span><br><span class=line>29</span><br><span class=line>30</span><br><span class=line>31</span><br><span class=line>32</span><br><span class=line>33</span><br><span class=line>34</span><br><span class=line>35</span><br><span class=line>36</span><br><span class=line>37</span><br><span class=line>38</span><br><span class=line>39</span><br><span class=line>40</span><br><span class=line>41</span><br><span class=line>42</span><br><span class=line>43</span><br><span class=line>44</span><br><span class=line>45</span><br><span class=line>46</span><br><span class=line>47</span><br><span class=line>48</span><br><span class=line>49</span><br><span class=line>50</span><br><span class=line>51</span><br><span class=line>52</span><br><span class=line>53</span><br><span class=line>54</span><br><span class=line>55</span><br><span class=line>56</span><br><span class=line>57</span><br><span class=line>58</span><br><span class=line>59</span><br><span class=line>60</span><br><span class=line>61</span><br><span class=line>62</span><br><span class=line>63</span><br><span class=line>64</span><br><span class=line>65</span><br><span class=line>66</span><br><span class=line>67</span><br><span class=line>68</span><br><span class=line>69</span><br><span class=line>70</span><br><span class=line>71</span><br><span class=line>72</span><br></pre><td class=code><pre><span class=line><span class=comment>/* @(#)k_sin.c 1.3 95/01/18 */</span></span><br><span class=line><span class=comment>/*</span></span><br><span class=line><span class=comment> * ====================================================</span></span><br><span class=line><span class=comment> * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.</span></span><br><span class=line><span class=comment> *</span></span><br><span class=line><span class=comment> * Developed at SunSoft, a Sun Microsystems, Inc. business.</span></span><br><span class=line><span class=comment> * Permission to use, copy, modify, and distribute this</span></span><br><span class=line><span class=comment> * software is freely granted, provided that this notice</span></span><br><span class=line><span class=comment> * is preserved.</span></span><br><span class=line><span class=comment> * ====================================================</span></span><br><span class=line><span class=comment> */</span></span><br><span class=line></span><br><span class=line><span class=comment>/* __kernel_sin( x, y, iy)</span></span><br><span class=line><span class=comment> * kernel sin function on [-pi/4, pi/4], pi/4 ~ 0.7854</span></span><br><span class=line><span class=comment> * Input x is assumed to be bounded by ~pi/4 in magnitude.</span></span><br><span class=line><span class=comment> * Input y is the tail of x.</span></span><br><span class=line><span class=comment> * Input iy indicates whether y is 0. (if iy=0, y assume to be 0). </span></span><br><span class=line><span class=comment> *</span></span><br><span class=line><span class=comment> * Algorithm</span></span><br><span class=line><span class=comment> * 1. Since sin(-x) = -sin(x), we need only to consider positive x. </span></span><br><span class=line><span class=comment> * 2. if x < 2^-27 (hx<0x3e400000 0), return x with inexact if x!=0.</span></span><br><span class=line><span class=comment> * 3. sin(x) is approximated by a polynomial of degree 13 on</span></span><br><span class=line><span class=comment> * [0,pi/4]</span></span><br><span class=line><span class=comment> * 3 13</span></span><br><span class=line><span class=comment> * sin(x) ~ x + S1*x + ... + S6*x</span></span><br><span class=line><span class=comment> * where</span></span><br><span class=line><span class=comment> * </span></span><br><span class=line><span class=comment> * |sin(x) 2 4 6 8 10 12 | -58</span></span><br><span class=line><span class=comment> * |----- - (1+S1*x +S2*x +S3*x +S4*x +S5*x +S6*x )| <= 2</span></span><br><span class=line><span class=comment> * | x | </span></span><br><span class=line><span class=comment> * </span></span><br><span class=line><span class=comment> * 4. sin(x+y) = sin(x) + sin'(x')*y</span></span><br><span class=line><span class=comment> * ~ sin(x) + (1-x*x/2)*y</span></span><br><span class=line><span class=comment> * For better accuracy, let </span></span><br><span class=line><span class=comment> * 3 2 2 2 2</span></span><br><span class=line><span class=comment> * r = x *(S2+x *(S3+x *(S4+x *(S5+x *S6))))</span></span><br><span class=line><span class=comment> * then 3 2</span></span><br><span class=line><span class=comment> * sin(x) = x + (S1*x + (x *(r-y/2)+y))</span></span><br><span class=line><span class=comment> */</span></span><br><span class=line></span><br><span class=line><span class=meta>#<span class=keyword>ifndef</span> __FDLIBM_H__</span></span><br><span class=line><span class=meta>#<span class=keyword>include</span> <span class=string>"fdlibm.h"</span></span></span><br><span class=line><span class=meta>#<span class=keyword>endif</span></span></span><br><span class=line></span><br><span class=line><span class=type>double</span> __kernel_sin(<span class=type>double</span> x, <span class=type>double</span> y, <span class=type>int</span> iy)</span><br><span class=line>{</span><br><span class=line> <span class=type>double</span> z, r, v;</span><br><span class=line> <span class=type>int32_t</span> ix;</span><br><span class=line></span><br><span class=line> <span class=type>static</span> <span class=type>const</span> <span class=type>double</span> half = <span class=number>5.00000000000000000000e-01</span>; <span class=comment>/* 0x3FE00000, 0x00000000 */</span></span><br><span class=line> <span class=type>static</span> <span class=type>const</span> <span class=type>double</span> S1 = <span class=number>-1.66666666666666324348e-01</span>; <span class=comment>/* 0xBFC55555, 0x55555549 */</span></span><br><span class=line> <span class=type>static</span> <span class=type>const</span> <span class=type>double</span> S2 = <span class=number>8.33333333332248946124e-03</span>; <span class=comment>/* 0x3F811111, 0x1110F8A6 */</span></span><br><span class=line> <span class=type>static</span> <span class=type>const</span> <span class=type>double</span> S3 = <span class=number>-1.98412698298579493134e-04</span>; <span class=comment>/* 0xBF2A01A0, 0x19C161D5 */</span></span><br><span class=line> <span class=type>static</span> <span class=type>const</span> <span class=type>double</span> S4 = <span class=number>2.75573137070700676789e-06</span>; <span class=comment>/* 0x3EC71DE3, 0x57B1FE7D */</span></span><br><span class=line> <span class=type>static</span> <span class=type>const</span> <span class=type>double</span> S5 = <span class=number>-2.50507602534068634195e-08</span>; <span class=comment>/* 0xBE5AE5E6, 0x8A2B9CEB */</span></span><br><span class=line> <span class=type>static</span> <span class=type>const</span> <span class=type>double</span> S6 = <span class=number>1.58969099521155010221e-10</span>; <span class=comment>/* 0x3DE5D93A, 0x5ACFD57C */</span></span><br><span class=line></span><br><span class=line> GET_HIGH_WORD(ix, x);</span><br><span class=line> ix &= IC(<span class=number>0x7fffffff</span>); <span class=comment>/* high word of x */</span></span><br><span class=line> <span class=keyword>if</span> (ix < IC(<span class=number>0x3e400000</span>)) <span class=comment>/* |x| < 2**-27 */</span></span><br><span class=line> {</span><br><span class=line> <span class=keyword>if</span> ((<span class=type>int32_t</span>) x == <span class=number>0</span>)</span><br><span class=line> <span class=keyword>return</span> x; <span class=comment>/* generate inexact */</span></span><br><span class=line> }</span><br><span class=line> z = x * x;</span><br><span class=line> v = z * x;</span><br><span class=line> r = S2 + z * (S3 + z * (S4 + z * (S5 + z * S6)));</span><br><span class=line> <span class=keyword>if</span> (iy == <span class=number>0</span>)</span><br><span class=line> <span class=keyword>return</span> x + v * (S1 + z * r);</span><br><span class=line> <span class=keyword>else</span></span><br><span class=line> <span class=keyword>return</span> x - ((z * (half * y - v * r) - y) - v * S1);</span><br><span class=line>}</span><br></pre></table></figure><p><span class="math display">\[ \sin (x_0 + \Delta x) \approx \sin (x_0) + \sin'(x_0) \frac {\Delta x}{1!} + \sin''(x_0) \frac { \Delta x^2}{2!} + \sin'''(x_0) \frac {\Delta x^3}{3!} + \cdots \]</span><h1 id=参考文献>参考文献</h1><ol type=1><li><a href=https://en.wikipedia.org/wiki/C_mathematical_functions rel=noopener target=_blank>C mathematical functions</a><li><a href=https://en.wikipedia.org/wiki/Sine_and_cosine rel=noopener target=_blank>Sine and cosine</a><li></ol></div><footer class=post-footer><div class=post-eof></div></footer></article></div><nav class=pagination><span class="page-number current">1</span><a class=page-number href=/page/2/>2</a><span class=space>…</span><a class=page-number href=/page/69/>69</a><a class="extend next" aria-label=下一页 href=/page/2/ rel=next title=下一页><i class="fa fa-angle-right"></i></a></nav></div></main><footer class=footer><div class=footer-inner><div class=copyright>© 2013 – <span itemprop=copyrightYear>2024</span><span class=with-love> <i class="fa fa-heart"></i> </span><span class=author itemprop=copyrightHolder>Long Luo</span></div><div class=wordcount><span class=post-meta-item> <span class=post-meta-item-icon> <i class="fa fa-chart-line"></i> </span> <span title=站点总字数>1.5m</span> </span><span class=post-meta-item> <span class=post-meta-item-icon> <i class="fa fa-coffee"></i> </span> <span title=站点阅读时长>22:36</span> </span></div><div class=busuanzi-count><span class=post-meta-item id=busuanzi_container_site_uv> <span class=post-meta-item-icon> <i class="fa fa-user"></i> </span> <span class=site-uv title=总访客量> <span id=busuanzi_value_site_uv></span> </span> </span><span class=post-meta-item id=busuanzi_container_site_pv> <span class=post-meta-item-icon> <i class="fa fa-eye"></i> </span> <span class=site-pv title=总访问量> <span id=busuanzi_value_site_pv></span> </span> </span></div><div class=powered-by>由 <a href=https://hexo.io/ rel=noopener target=_blank>Hexo</a> & <a href=https://theme-next.js.org/pisces/ rel=noopener target=_blank>NexT.Pisces</a> 强力驱动</div></div></footer><div class="toggle sidebar-toggle" role=button><span class=toggle-line></span><span class=toggle-line></span><span class=toggle-line></span></div><div class=sidebar-dimmer></div><div aria-label=返回顶部 class=back-to-top role=button><i class="fa fa-arrow-up fa-lg"></i><span>0%</span></div><div class=reading-progress-bar></div><a class="book-mark-link book-mark-link-fixed" role=button></a><noscript><div class=noscript-warning>Theme NexT works best with JavaScript enabled</div></noscript><script crossorigin=anonymous integrity=sha256-XL2inqUJaslATFnHdJOi9GfQ60on8Wx1C2H8DYiN1xY= src=https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js></script><script src=https://cdnjs.cloudflare.com/ajax/libs/hexo-theme-next/8.20.0/comments.min.js></script><script src=https://cdnjs.cloudflare.com/ajax/libs/hexo-theme-next/8.20.0/utils.min.js></script><script src=https://cdnjs.cloudflare.com/ajax/libs/hexo-theme-next/8.20.0/motion.min.js></script><script src=https://cdnjs.cloudflare.com/ajax/libs/hexo-theme-next/8.20.0/sidebar.min.js></script><script src=https://cdnjs.cloudflare.com/ajax/libs/hexo-theme-next/8.20.0/next-boot.min.js></script><script src=https://cdnjs.cloudflare.com/ajax/libs/hexo-theme-next/8.20.0/bookmark.min.js></script><script crossorigin=anonymous integrity=sha256-1kfA5uHPf65M5cphT2dvymhkuyHPQp5A53EGZOnOLmc= src=https://cdnjs.cloudflare.com/ajax/libs/hexo-generator-searchdb/1.4.1/search.js></script><script src=https://cdnjs.cloudflare.com/ajax/libs/hexo-theme-next/8.20.0/third-party/search/local-search.min.js></script><script async src=https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js></script><script class=next-config data-name=enableMath type=application/json>true</script><script class=next-config data-name=mathjax type=application/json>{"enable":true,"tags":"ams","js":{"url":"https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.2/es5/tex-mml-chtml.js","integrity":"sha256-MASABpB4tYktI2Oitl4t+78w/lyA+D7b/s9GEP0JOGI="}}</script><script src=https://cdnjs.cloudflare.com/ajax/libs/hexo-theme-next/8.20.0/third-party/math/mathjax.min.js></script><script class=next-config data-name=waline type=application/json>{"lang":"zh-CN","enable":true,"serverURL":"https://waline.longluo.me/","cssUrl":"https://unpkg.com/@waline/client@2.15.8/dist/waline.css","commentCount":true,"pageview":true,"libUrl":"https://unpkg.com/@waline/client@2.15.8/dist/waline.js","locale":{"placeholder":"欢迎大家的留言和评论!(评论只需要填昵称即可。) Welcome to comment"},"emoji":["https://unpkg.com/@waline/emojis@1.0.1/qq"],"meta":["nick","mail","link"],"requiredMeta":[["nick"]],"wordLimit":0,"pageSize":10,"el":"#waline","comment":true,"path":"/"}</script><link href=https://unpkg.com/@waline/client@2.15.8/dist/waline.css rel=stylesheet><script>document.addEventListener('page:loaded', () => {
NexT.utils.loadComments(CONFIG.waline.el).then(() =>
NexT.utils.getScript(CONFIG.waline.libUrl, { condition: window.Waline })
).then(() =>
Waline.init(Object.assign({}, CONFIG.waline,{ el: document.querySelector(CONFIG.waline.el) }))
);
});</script>