Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Определить вхождение последовательностей цифр (https://javascript.ru/forum/misc/77529-opredelit-vkhozhdenie-posledovatelnostejj-cifr.html)

juniour js-scripter 16.05.2019 17:03

Определить вхождение последовательностей цифр
 
Здравствуйте. Есть задача такого плана: у меня есть 1 миллион случайных цифр в диапазоне от 0 до 1. И есть задачи:
1.Определить количество 0, определить количество 1.
2.Определить количество последовательностей из двух цифр (00, 01, 10, 11).
3.Определить количество последовательностей из трех цифр (000, 001, 010, и т.д.)

С пунктом номер 1 я справился с помощью reduce:

var arr = [Массив этих цифр через запятую].reduce(function(acc, el) {
acc[el] = (acc[el] || 0) + 1;
return acc;
}, {});

document.write('<pre>', JSON.stringify(
result, null, 2), '</pre>');
А вот уже с остальными пошли проблемы, подскажите как лучше это реализовать. Может я пошел не правильным путем в принципе. Буду рад любой помощи)

рони 16.05.2019 18:18

juniour js-scripter,
смотря как считать, можно например,
разбить массив чисел на массив строк по два/три символа и тотже метод подсчёта.

рони 16.05.2019 18:36

juniour js-scripter,
или так ...
<script>
var arr = [1,0,0,0,1,1,0,1];
var key = "" + arr[0];
var obj = arr.slice(1).reduce(function(acc, el) {
key += el;
key = key.slice(-2);
acc[key] = (acc[key] || 0) + 1;
return acc;
 }, {});
document.write(JSON.stringify(obj, "", 4))
</script>

juniour js-scripter 20.05.2019 14:16

Спасибо всем за ответы!) Задача уже решена)


Часовой пояс GMT +3, время: 16:58.