Написать конвертер десятичных чисел в код Грея с основанием 5

Выполнен
Заказ
4613357
Раздел
Программирование
Тип работы
Антиплагиат
Не указан
Срок сдачи
4 Мар 2022 в 19:55
Цена
600 ₽
Блокировка
5 дней
Размещен
28 Фев 2022 в 19:07
Просмотров
101
Описание работы

Требуется написать консольное приложение (Windows). Приложение преобразовывает десятичное число в рефлексный код (Код Грея) с основанием 5 и разрядностью 3.

Пример входных данных:

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16


Пример выходных данных:

000

001

002

003

004

014

013

012

011

010

020

021

022

023

024

034

033

Алгоритм гуглится по словам: non-Binary Gray code, n-ary Gray code, (n,k)-Gray code.

Я нашел реализацию на js, но выходная последовательность неправильная начиная с 6 (то есть, например, при десятичном входном значении 6 возвращается код 010, вместо ожидаемого 013)

function gray (n, k) {

   if (k === undefined) k = 2;

   if (n === 0) return [];


   var codes = [];

   var max = Math.pow(k, n);


   for (var i = 0; i < max; i++) {

       var res = [];

       var shift = 0;


       for (var j = n - 1; j >= 0; j--) {

           var x = (digit(i, k, j) + shift) % k;

           shift += k - x;

           res.push(x);

       }

       codes.push(res);

   }

   return codes;

};


function digit (n, radix, i) {

   return Math.floor(n / Math.pow(radix, i)) % radix;

}

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.96
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Время выполнения заказа:
3 дня 7 часов 21 минута
Выполнен в срок
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир