Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Is it possible to speed up loop iteration in Sage?

I have a sage code that looks like this:

    uni = {}
    end = (l[idx]^(e[idx] - 1)) * (l[idx] + 1) # where end in my case is about 2013265921 but can also be much larger
    for count in range(0, end):
        i = randint(1, 303325737249669131)  
        if i in uni:
            uni[i] += 1
        else:
            uni[i] = 1

So basically, I want to create very large number of random integers in the given range, check whether the number was already in the dictionary, if yes increment its count, if not initialize it to 1. But, this takes such a long time that it doesn't finish in a reasonable time. Is there any way to speed up this kind of loops in Sage (or Python)?

Is it possible to speed up loop iteration in Sage?

I have a sage code that looks like this:

    uni = {}
    end = (l[idx]^(e[idx] - 1)) * (l[idx] + 1) # where end in my case is about 2013265921 2013265922 but can also be much larger
    for count in range(0, end):
        i = randint(1, 303325737249669131)  
        if i in uni:
            uni[i] += 1
        else:
            uni[i] = 1

So basically, I want to create very large number of random integers in the given range, check whether the number was already in the dictionary, if yes increment its count, if not initialize it to 1. But, this takes such a long time that it doesn't finish in a reasonable time. Is there any way to speed up this kind of loops in Sage (or Python)?