все перестановки двоичной последовательности длиной x бит

Вы на самом деле не знаете, действительно ли Ваш правильно написанный код C быстр, если Вы не посмотрели на дизассемблирование того, что производит компилятор. Много раз Вы смотрите на него и видите, что "правильно написанный" было субъективно.

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

25
задан ComputationalSocialScience 8 February 2011 в 00:33
поделиться

2 ответа

Нет необходимости быть слишком умным для чего-то такого простого:

def perms(n):
    if not n:
        return

    for i in xrange(2**n):
        s = bin(i)[2:]
        s = "0" * (n-len(s)) + s
        yield s

print list(perms(5))
6
ответ дан 28 November 2019 в 17:57
поделиться

Python 2.6 +:

['{0:0{width}b}'.format(v, width=x) for v in xrange(2**x)]
5
ответ дан 28 November 2019 в 17:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: