Эта задача немного сложна, но довольно проста, учитывая строку s
:
meta.codegolf.stackexchange.com
Используйте положение символа в строке в качестве x
координаты и значение ascii в качестве y
координаты. Для приведенной выше строки результирующий набор координат будет иметь вид:
0, 109
1, 101
2, 116
3, 97
4, 46
5, 99
6, 111
7, 100
8, 101
9, 103
10,111
11,108
12,102
13,46
14,115
15,116
16,97
17,99
18,107
19,101
20,120
21,99
22,104
23,97
24,110
25,103
26,101
27,46
28,99
29,111
30,109
Затем вы должны рассчитать наклон и y-пересечение набора, который вы собрали, используя линейную регрессию , вот график, приведенный выше:
В результате получается линия наилучшего соответствия (с 0 индексами):
y = 0.014516129032258x + 99.266129032258
Вот 1-индексированная линия наилучшего соответствия:
y = 0.014516129032258x + 99.251612903226
Итак, ваша программа вернется:
f("meta.codegolf.stackexchange.com") = [0.014516129032258, 99.266129032258]
Или (любой другой разумный формат):
f("meta.codegolf.stackexchange.com") = "0.014516129032258x + 99.266129032258"
Или (любой другой разумный формат):
f("meta.codegolf.stackexchange.com") = "0.014516129032258\n99.266129032258"
Или (любой другой разумный формат):
f("meta.codegolf.stackexchange.com") = "0.014516129032258 99.266129032258"
Просто объясните, почему он возвращается в таком формате, если это не очевидно.
Некоторые уточняющие правила:
- Strings are 0-indexed or 1 indexed both are acceptable.
- Output may be on new lines, as a tuple, as an array or any other format.
- Precision of the output is arbitrary but should be enough to verify validity (min 5).
Это код-гольф с наименьшим количеством байтов.
0.014516129032258x + 99.266129032258
?