2022-01-20 19:30:18 +00:00
|
|
|
---
|
|
|
|
id: 5900f5461000cf542c510058
|
2022-01-22 15:08:20 +00:00
|
|
|
title: '問題 473: フィジタル進数'
|
2022-01-20 19:30:18 +00:00
|
|
|
challengeType: 5
|
|
|
|
forumTopicId: 302150
|
|
|
|
dashedName: problem-473-phigital-number-base
|
|
|
|
---
|
|
|
|
|
|
|
|
# --description--
|
|
|
|
|
2022-01-22 15:08:20 +00:00
|
|
|
黄金比 $\varphi = \frac{1+\sqrt{5}}{2}$ を $\varphi$ とします。
|
2022-01-20 19:30:18 +00:00
|
|
|
|
2022-01-22 15:08:20 +00:00
|
|
|
驚くべきことに、すべての正の整数は $\varphi$ の累乗の和として表すことができます。たとえこの和の中で $\varphi$ のすべての累乗をたかだか 1 度しか使えないとしても、それが可能なのです。
|
2022-01-20 19:30:18 +00:00
|
|
|
|
2022-01-22 15:08:20 +00:00
|
|
|
しかも、この表し方は唯一のものではありません。
|
2022-01-20 19:30:18 +00:00
|
|
|
|
2022-01-22 15:08:20 +00:00
|
|
|
指数が連続するような累乗を使わないこと、および、その表し方が有限であることを条件にすれば、表し方を一意にできます。
|
2022-01-20 19:30:18 +00:00
|
|
|
|
2022-01-22 15:08:20 +00:00
|
|
|
例:
|
2022-01-20 19:30:18 +00:00
|
|
|
|
2022-01-22 15:08:20 +00:00
|
|
|
$2 = \varphi + \varphi^{-2}$, $3 = \varphi^{2} + \varphi^{-2}$
|
2022-01-20 19:30:18 +00:00
|
|
|
|
2022-01-22 15:08:20 +00:00
|
|
|
$\varphi$ の累乗の和を表すために、0 と 1 からなり、負の指数の開始点が小数点で示されている文字列を使用します。 この表記法を「フィジタル進数」と呼ぶことにします。
|
2022-01-20 19:30:18 +00:00
|
|
|
|
2022-01-22 15:08:20 +00:00
|
|
|
したがって、$1 = 1_{\varphi}$, $2 = 10.01_{\varphi}$, $3 = 100.01_{\varphi}$, $14 = 100100.001001_{\varphi}$ となります。 フィジタル進数の 1, 2, 14 を表す文字列は回文数で、3 を表す文字列は回文数ではありません (フィジタル進数の小数点が中央の文字ではありません)。
|
2022-01-20 19:30:18 +00:00
|
|
|
|
2022-01-22 15:08:20 +00:00
|
|
|
フィジタル進数で表すと回文数になる 1000 以下の正の整数の和は 4345 です。
|
2022-01-20 19:30:18 +00:00
|
|
|
|
2022-01-22 15:08:20 +00:00
|
|
|
フィジタル進数で表すと回文数になる $10^{10}$ 以下の正の整数の和を求めなさい。
|
2022-01-20 19:30:18 +00:00
|
|
|
|
|
|
|
# --hints--
|
|
|
|
|
2022-01-22 15:08:20 +00:00
|
|
|
`phigitalNumberBase()` は `35856681704365` を返す必要があります。
|
2022-01-20 19:30:18 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.strictEqual(phigitalNumberBase(), 35856681704365);
|
|
|
|
```
|
|
|
|
|
|
|
|
# --seed--
|
|
|
|
|
|
|
|
## --seed-contents--
|
|
|
|
|
|
|
|
```js
|
|
|
|
function phigitalNumberBase() {
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
phigitalNumberBase();
|
|
|
|
```
|
|
|
|
|
|
|
|
# --solutions--
|
|
|
|
|
|
|
|
```js
|
|
|
|
// solution required
|
|
|
|
```
|