• Регистрация
Василийпервый
Василийпервый 0.00
н/д

Пакет Mathematica

01.02.2022

Есть произвольная битовая строка с единицами и нулями (первый бит справа всегда единица).

Требуется определить номер n-ого бита (минимально - это номер второго единичного бита) со значением единицы справа налево в этой битовой строке оптимально быстрым программным кодом в Mathematica.

Есть быстрый способ кроме перебора каждого бита на соответствие единице значения выбранного бита?

Т.е. интересует программный трюк.

Теги

      01.02.2022

      Ответы

      • aBoomest
        aBoomest+942.89
        2.02.2022 07:30

        Способ: assembler.

        • Василийпервый
          Василийпервый0.00
          2.02.2022 09:18

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

          • aBoomest
            aBoomest+942.89
            2.02.2022 10:46

            В асм можно как-то попытаться использовать построение и возможности МК. 1-е, что приходит на ум - конвейер. Но без перебора необойтьись наверно. В "Математика" вы будете выделять бит, потом сравнивать, это даже сложно представить сколько это операций. А в Асм бит сравнили, сдвинули, сравнили, сдвинули ... - две операции в цикле.

            PS: Хотя конечно может гении информатики меня поправят (читать как разнесут в пух и прах)

            • aBoomest
              aBoomest+942.89
              2.02.2022 10:54

              А на железке это дешифратором наверно можно сделать.