Как я получаю текущий подвижный пересмотр, не звоня hg?

Это один из самых быстрых алгоритмов, до 170! . Он терпит неудачу необъяснимым образом за пределами 170 !, и это относительно медленно для небольших факториалов, но для факториалов между 80 и 170 это невероятно быстро по сравнению со многими алгоритмами. ]

curl http://www.google.com/search?q=170!

Есть также онлайн-интерфейс, попробуйте прямо сейчас!

Дайте мне знать, если вы найдете ошибку или более быструю реализацию для больших факториалов.


РЕДАКТИРОВАТЬ:

Этот алгоритм немного медленнее, но дает результаты, превышающие 170:

curl http://www58.wolframalpha.com/input/?i=171!

Он также упрощает их в различные другие представления.

12
задан DavidM 17 November 2009 в 21:30
поделиться

3 ответа

$ hg parents --template="{node}\n"
52b8cee1e59c91b9147635b7f44a3a8896ee0b00

$ hexdump -n 20 -e '1/1 "%02x"' .hg/dirstate
52b8cee1e59c91b9147635b7f44a3a8896ee0b00

Но почему вы не можете просто позвонить hg parent --template = "{node} \ n" ?

25
ответ дан 2 December 2019 в 05:41
поделиться

Я не эксперт по ртути, но применяя подход кувалды и выполняя grep для хэша текущей ревизии в .hg, получается только один возможный вариант, а именно .hg / branchheads.cache . . 120] Я считаю, что это кэширует все заголовки репозитория, поэтому в нем может быть несколько записей. По умолчанию я думаю, что он всегда будет иметь две записи, одну для ветки по умолчанию и одну для номера ревизии наконечника.

Я думаю, что branchheads.cache перестраивается всякий раз, когда приходят новые наборы изменений, поэтому он всегда должен иметь правильную текущую ревизию в нем хеш.

0
ответ дан 2 December 2019 в 05:41
поделиться

hg id --debug -i -r .

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

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