Показать сообщение отдельно
  #9 (permalink)  
Старый 16.06.2022, 17:16
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Методом проб, ошибок и тыка
(но никак не научных размышлений)
Составил такой алгоритм, который очень быстро получает это число
let res = [0,0,0,0,0,0,0,0,0,0];
const count = (dig) => res.filter(v => v === dig).length;

const test = () => {
	for (let i = 0; i<10; i++) {
		const dig = i < 9? i+1 : 0;
		if (count (dig) != res[i]) return false;
	}
	return true;
}

const change = () => {
	const newa = [];
	for (let i = 0; i<10; i++) {
		const dig = i < 9? i+1 : 0;
		const nd = count (dig)
		if (nd != res[i]) {
			res[i] = nd;
		}
	}
}

let n = 0; 
while (!test()) {
	change ();
	n++;
	console.log(n, [...res]);
}

console.log ('FINISH : ', n, res)


Ничуть не претендую на красоту алгоритма и кода
Но находит результат с любого начального значения (res)

Последний раз редактировалось voraa, 17.06.2022 в 10:59.
Ответить с цитированием