Преобразование основания системы счисления как операция с потоками

Существует новый метод, который активирован , начиная с Chrome 42 :

chrome.runtime.openOptionsPage(function callback)

Откройте параметры вашего внутреннего номера страницу, если возможно.

Точное поведение может зависеть от клавиши options_ui или options_page вашего манифеста или от того, что Chrome поддерживает в данный момент. Например, страница может быть открыта в новой вкладке, в chrome://extensions, в приложении, или она может просто сфокусироваться на открытой странице параметров. Это никогда не приведет к перезагрузке страницы вызывающего абонента.

Если ваше Внутреннее расширение не объявляет страницу параметров, или Chrome не смог создать ее по какой-либо другой причине, обратный вызов установит lastError.

8
задан BCS 30 March 2011 в 19:31
поделиться

2 ответа

Я не думаю, что это возможно в общем случае. Если m является степенью p (или наоборот), или если они обе степени общей базы, вы можете сделать это, поскольку каждая группа журнала m ( p ) тогда является независимым. Однако в общем случае предположим, что вы конвертируете число a 1 a 2 a 3 ... a ] n . Эквивалентное число в базе p составляет

сумма (a i * m i-1 для i в 1..n)

Если мы обработали первые i цифр, то у нас есть i -я частичная сумма. Чтобы вычислить частичную сумму i + 1 , нам нужно добавить a i + 1 * m i . В общем случае это число будет иметь ненулевые цифры в большинстве мест, поэтому нам нужно будет изменить все цифры, которые мы обработали до сих пор. Другими словами, нам придется обработать все входных цифр, прежде чем мы узнаем, какими будут окончательные выходные цифры.

В особом случае, когда m - это обе степени общего основания, или, что то же самое, если log m ( p ) - рациональное число, то m i будет иметь только несколько ненулевых -нулевые цифры в базе p рядом с лицевой стороной, поэтому мы можем безопасно вывести большинство цифр, которые мы вычислили до сих пор.

6
ответ дан 5 December 2019 в 20:18
поделиться

Я думаю, что есть способ выполнить преобразование системы счисления в потоке в лексикографическом порядке. Однако того, что я придумал, недостаточно для того, чтобы это сделать, и есть несколько предположений:

  1. Длина позиционных чисел уже известна.
  2. Описанные числа являются целыми числами. Я не рассматривал, что происходит с индексами maths и -ive.

У нас есть последовательность значений a длиной p , где каждое значение находится в диапазоне [0, m -1]. Нам нужна последовательность значений b длины q в диапазоне [0, n -1]. Мы можем вычислить k -ю цифру нашей выходной последовательности b из a следующим образом:

b k = пол [сумма (a i * m i для i от 0 до p-1) / n k ]] mod n

Давайте перегруппируем эту сумму на две части, разделив ее в произвольной точке z

b k = floor [(sum (a i * m i для i in z to p-1) + sum (a i * m i для i in от 0 до z-1)) / n k ] mod n

Предположим, что мы еще не знаем значения a между [0, z-1] и не можем вычислить второй член суммы. Нам остается иметь дело с диапазонами. Но это по-прежнему дает нам информацию о b k .

Минимальное значение b k может быть:

b k ]> = floor [sum (a i * m i для i от z до p-1) / n k ] mod n

и максимальное значение b k может иметь следующий вид:

b k <= floor [(sum (a i * m i ] for i in z to p-1) + m z - 1) / n k ] mod n

Мы должны быть в состоянии выполнить такой процесс:

  1. Инициализировать z как p . Мы будем вести обратный отсчет от p по мере получения каждого символа a .
  2. Инициализировать k до индекса наиболее значимого значения в b . Если мой мозг все еще работает, ceil [log n (m p )].
  3. Прочтите значение a . Уменьшите z .
  4. Вычислить минимальное и максимальное значение для b k .
  5. Если минимальное и максимальное значения совпадают, выведите b k и уменьшите k . Перейти к 4. (Возможно, у нас уже достаточно значений для нескольких последовательных значений b k )
  6. Если z ! = 0, то мы ожидаем больше значений из а . Goto 3.
  7. Надеюсь, на этом мы закончили.

Я еще не думал, как эффективно вычислять значения диапазона, но я достаточно уверен, что вычисление суммы из входящих символов a можно сделать гораздо разумнее, чем хранить все a . Однако, не делая математических расчетов, я не буду делать никаких жестких заявлений по этому поводу!

и декремент k. Перейти к 4. (Возможно, у нас уже достаточно значений для нескольких последовательных значений b k )
  • Если z ! = 0, то мы ожидаем больше значений из а . Goto 3.
  • Надеюсь, на этом мы закончили.
  • Я еще не думал, как эффективно вычислять значения диапазона, но я достаточно уверен, что вычисление суммы из входящих символов a можно сделать гораздо разумнее, чем хранить все a . Однако, не делая математических расчетов, я не буду делать никаких жестких заявлений по этому поводу!

    и декремент k. Перейти к 4. (Возможно, у нас уже достаточно значений для нескольких последовательных значений b k )
  • Если z ! = 0, то мы ожидаем больше значений из а . Goto 3.
  • Надеюсь, на этом мы закончили.
  • Я еще не думал, как эффективно вычислять значения диапазона, но я достаточно уверен, что вычисление суммы из входящих символов a можно сделать гораздо разумнее, чем хранить все a . Однако, не делая математических расчетов, я не буду делать никаких жестких заявлений по этому поводу!

    Goto 3.
  • Надеюсь, на этом мы закончили.
  • Я еще не думал, как эффективно вычислять значения диапазона, но я достаточно уверен, что вычисление суммы из входящих символов a можно сделать гораздо разумнее, чем хранить все a . Однако, не делая математических расчетов, я не буду делать никаких жестких заявлений по этому поводу!

    Goto 3.
  • Надеюсь, на этом мы закончили.
  • Я еще не думал, как эффективно вычислять значения диапазона, но я достаточно уверен, что вычисление суммы из входящих символов a можно сделать гораздо разумнее, чем хранить все a . Однако, не делая математических расчетов, я не буду делать никаких жестких заявлений по этому поводу!

    2
    ответ дан 5 December 2019 в 20:18
    поделиться
    Другие вопросы по тегам:

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