56 lines
1.8 KiB
Markdown
56 lines
1.8 KiB
Markdown
|
---
|
|||
|
id: 5900f3fc1000cf542c50ff0f
|
|||
|
challengeType: 5
|
|||
|
title: 'Problem 144: Investigating multiple reflections of a laser beam'
|
|||
|
videoUrl: ''
|
|||
|
localeTitle: 问题144:研究激光束的多次反射
|
|||
|
---
|
|||
|
|
|||
|
## Description
|
|||
|
<section id="description">在激光物理学中,“白色单元”是镜像系统,其充当激光束的延迟线。光束进入细胞,在镜子上反弹,最终恢复原状。我们将考虑的特定白色单元是椭圆形,其等式为4x2 + y2 = 100。顶部对应于-0.01≤x≤+ 0.01的部分缺失,允许光线通过孔进入和退出。 <p>此问题中的光束从白色单元外部的点(0.0,10.1)开始,光束首先在(1.4,-9.6)处撞击镜子。每次激光束撞击椭圆的表面时,它遵循通常的反射定律“入射角等于反射角”。也就是说,入射光束和反射光束都与入射点处的法线形成相同的角度。在左图中,红线表示激光束与白色单元壁之间的前两个接触点;蓝线表示在第一次反弹入射点处与椭圆相切的直线。给定椭圆的任意点(x,y)处的切线的斜率m为:m = -4x / y法线为垂直于入射点处的该切线。右侧的动画显示了光束的前10个反射。 </p><p>在离开之前,光束到达白细胞内表面的次数是多少? </p></section>
|
|||
|
|
|||
|
## Instructions
|
|||
|
<section id="instructions">
|
|||
|
</section>
|
|||
|
|
|||
|
## Tests
|
|||
|
<section id='tests'>
|
|||
|
|
|||
|
```yml
|
|||
|
tests:
|
|||
|
- text: <code>euler144()</code>应返回354。
|
|||
|
testString: 'assert.strictEqual(euler144(), 354, "<code>euler144()</code> should return 354.");'
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
</section>
|
|||
|
|
|||
|
## Challenge Seed
|
|||
|
<section id='challengeSeed'>
|
|||
|
|
|||
|
<div id='js-seed'>
|
|||
|
|
|||
|
```js
|
|||
|
function euler144() {
|
|||
|
// Good luck!
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
euler144();
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
</div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</section>
|
|||
|
|
|||
|
## Solution
|
|||
|
<section id='solution'>
|
|||
|
|
|||
|
```js
|
|||
|
// solution required
|
|||
|
```
|
|||
|
</section>
|