tqdm 笔记本:增加条宽

tqdm notebook: increase bar width

我有一个任务要监控进度;这是 while 循环中的蛮力 np 问题 运行。

对于循环的前 x(未知数)次迭代,它发现未知的额外数量的未来组合(每个循环很多),最终它通过解决方案前进到解决难题的点(每个循环都是一个单一的解决方案)比找到新的可能的谜题更快,它最终解决了它找到的最后一个谜题(100%)。

我创建了一些假增长来提供可重复的示例:

from tqdm import tqdm_notebook as tqdm

growthFactorA = 19
growthFactorB = 2

prog = tqdm(total=50, dynamic_ncols=True)

done = []
todo = [1]
while len(todo)>0:
    current = todo.pop(0)
    if current < growthFactorA:
        todo.extend(range(current+1, growthFactorA+growthFactorB))
    done.append(current)
    prog.total = len(todo) + len(done)
    prog.update()

你会看到总数最终停止在 389814 起初它增长得更快,循环正在解决谜题,但在某一点系统停止增长。

无法计算运行算法前的迭代次数

蓝色条仅限于初始化时使用的原始总量。我的目标是实现类似于如果初始总数设置为 389814,在增长期间(试用早期)进度条似乎向后移动或随着总数增加而不动的情况。

https://github.com/tqdm/tqdm/issues/883#issuecomment-575873544 中所述,目前您可以: prog.container.children[0].max = prog.total(设置新的prog.total后)。

如果在笔记本电脑和 CLI (from tqdm.auto import tqdm) 上向 运行 编写代码,这会更加烦人,您必须先检查 hasattr(prog, 'container').