WWalshAster
Сценарии

Сценарии работы с кодом · Целочисленное преобразование Уолша–Адамара

03
Вокруг ваших задач

Конкретная отправная точка

Примените ненормированное преобразование Уолша–Адамара к непустой последовательности ограниченных целых чисел длиной в степень двойки до 256. Отклоните неверные длины и логические значения, затем проверьте, что двойное преобразование умножает исходные числа на длину.

01

Откройте контекст

Выберите папку проекта и обозначьте нужные файлы или поведение.

02

Опишите изменение

Укажите входные данные, ожидаемый результат и границы, которые нужно сохранить.

03

Изучите работу

Проверьте предлагаемые изменения и команды, прежде чем полагаться на результат.

04

Проверьте результат

Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.

Целочисленное преобразование Уолша–Адамара

Конкретная отправная точка
def walsh_transform(values):
    out = list(values)
    n = len(out)
    if not 1 <= n <= 256 or n & (n - 1):
        raise ValueError("length.power_two")
    if any(type(v) is not int or abs(v) > 1000000 for v in out):
        raise ValueError("value.range")
    step = 1
    while step < n:
        for start in range(0, n, 2 * step):
            for j in range(start, start + step):
                a, b = out[j], out[j + step]
                out[j], out[j + step] = a + b, a - b
        step *= 2
    return out

Пример — отправная точка для реального проекта, а не утверждение, что сгенерированный код уже протестирован. Адаптируйте пути, зависимости и ожидаемое поведение к своему приложению.

Рабочая среда с ИИ для кода

Здесь начинается ваше следующее изменение.

Скачать для Windows ↗