Skip to content

Instantly share code, notes, and snippets.

@recuraki
Created February 21, 2021 04:36
Show Gist options
  • Save recuraki/ac52b6bf72bdc23475de5e33a18457d5 to your computer and use it in GitHub Desktop.
Save recuraki/ac52b6bf72bdc23475de5e33a18457d5 to your computer and use it in GitHub Desktop.
dictの衝突
"""
2^60-1 elapsed_time:0.01798701286315918[sec]
2^61-1 elapsed_time:3.9636919498443604[sec]
2^62-1 elapsed_time:0.010206460952758789[sec]
"""
import queue
import heapq
import time
import random
from typing import List
from sys import getsizeof
maxind = None
maxval = 0
p = 0
d = dict()
"""
for k in range(1, 1000):
for i in range(k):
d.add(str(i) * 100)
if getsizeof(d) != p or True:
print(k, getsizeof(d))
p = getsizeof(d)
k = (2** 61 - 1)
for k in range(-5, 5):
for kk in range(-100, 100):
start = time.time()
d = dict()
for i in range(20000):
d[(10923 +kk )] = True
if (time.time() - start) > maxval:
maxval = time.time() - start
maxind = k
elapsed_time = time.time() - start
if elapsed_time > 0 or True:
print("elapsed_time:{0}".format(elapsed_time) + "[sec]")
print(maxval, maxind)
sys.exit(1)
"""
"""
for kk in range(0, 128):
for kkk in range(-2, 3):
k = (2 ** kk) + kkk
# k = (2 ** 61) -1
#k >>= 5
#k *= 5
start = time.time()
d = dict()
for i in range(20000):
d[k * i] = True
if (time.time() - start) > maxval:
maxval = time.time() - start
maxind = k
elapsed_time = time.time() - start
if elapsed_time > 0.6:
print(k, kk, kkk)
print("elapsed_time:{0}".format(elapsed_time) + "[sec]")
"""
k = (2 ** (60*1)) -1
start = time.time()
d = dict()
for i in range(20000):
d[k * i] = True
print("2^60-1 elapsed_time:{0}".format(time.time() - start) + "[sec]")
k = (2 ** (61*1)) -1
start = time.time()
d = dict()
for i in range(20000):
d[k * i] = True
print("2^61-1 elapsed_time:{0}".format(time.time() - start) + "[sec]")
k = (2 ** (62*1)) -1
start = time.time()
d = dict()
for i in range(20000):
d[k * i] = True
print("2^62-1 elapsed_time:{0}".format(time.time() - start) + "[sec]")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment