Я не понимаю, почему все решения так длинны и использует несколько циклов.
function convertToRoman(num) {
var roman = {"M" :1000, "CM":900, "D":500, "CD":400, "C":100, "XC":90, "L":50, "XL":40, "X":10, "IX":9, "V":5, "IV":4, "I":1};
var str = "";
for (var i of Object.keys(roman) ) {
var q = Math.floor(num / roman[i]);
num -= q * roman[i];
str += i.repeat(q);
}
return str;
}
здесь некоторый код, написанный на python. На моей машине время работы не превышает 1 секунды:
from sklearn.neighbors import NearestNeighbors
import numpy as np
nn = NearestNeighbors(n_neighbors=5)
x = np.random.rand(100000, 3)
nn.fit(x)
test_sample = np.array([[0.5, 0.4, 0.3]])
nearest_neighbors_distances, nearest_neighbors_indices = nn.kneighbors(test_sample)