here you only need to know the range where point is and find the right sequence of powers of 2 down.
This method also computationally quite hard. for example for puzzle #120 the sequence will be around 46 values if you put lower 2^30 in bloomfilter.
Alexander, can u explain how you arrive to a sequence of 46 values of power of 2 with a bloomfilter of size 2^30 for puzzle 120?
Thanks
46 is approximately. i cannot of course know it exactly.
here is the code. you can test any secp256k1 range value.
the same will be with point operations.
p=120 # 2^120
puzzle = 1231052970201832551532555186137109517 #value to test
pows = [2**0,2**1,2**2,2**3,2**4,2**5,2**6,2**7,2**8,2**9,
2**10,2**11,2**12,2**13,2**14,2**15,2**16,2**17,2**18,2**19,
2**20,2**21,2**22,2**23,2**24,2**25,2**26,2**27,2**28,2**29,
2**30,2**31,2**32,2**33,2**34,2**35,2**36,2**37,2**38,2**39,
2**40,2**41,2**42,2**43,2**44,2**45,2**46,2**47,2**48,2**49,
2**50,2**51,2**52,2**53,2**54,2**55,2**56,2**57,2**58,2**59,
2**60,2**61,2**62,2**63,2**64,2**65,2**66,2**67,2**68,2**69,
2**70,2**71,2**72,2**73,2**74,2**75,2**76,2**77,2**78,2**79,
2**80,2**81,2**82,2**83,2**84,2**85,2**86,2**87,2**88,2**89,
2**90,2**91,2**92,2**93,2**94,2**95,2**96,2**97,2**98,2**99,
2**100,2**101,2**102,2**103,2**104,2**105,2**106,2**107,2**108,2**109,
2**110,2**111,2**112,2**113,2**114,2**115,2**116,2**117,2**118,2**119,
2**120,2**121,2**122,2**123,2**124,2**125,2**126,2**127,2**128,2**129,
2**130,2**131,2**132,2**133,2**134,2**135,2**136,2**137,2**138,2**139,
2**140,2**141,2**142,2**143,2**144,2**145,2**146,2**147,2**148,2**149,
2**150,2**151,2**152,2**153,2**154,2**155,2**156,2**157,2**158,2**159,
2**160,2**161,2**162,2**163,2**164,2**165,2**166,2**167,2**168,2**169,
2**170,2**171,2**172,2**173,2**174,2**175,2**176,2**177,2**178,2**179,
2**180,2**181,2**182,2**183,2**184,2**185,2**186,2**187,2**188,2**189,
2**190,2**191,2**192,2**193,2**194,2**195,2**196,2**197,2**198,2**199,
2**200,2**201,2**202,2**203,2**204,2**205,2**206,2**207,2**208,2**209,
2**210,2**211,2**212,2**213,2**214,2**215,2**216,2**217,2**218,2**219,
2**220,2**221,2**222,2**223,2**224,2**225,2**226,2**227,2**228,2**229,
2**230,2**231,2**232,2**233,2**234,2**235,2**236,2**237,2**238,2**239,
2**240,2**241,2**242,2**243,2**244,2**245,2**246,2**247,2**248,2**249,
2**250,2**251,2**252,2**253,2**254,2**255,2**256]
pattern = []
p = 120
puzzle = 1231052970201832551532555186137109517
print(f'Puzzle: {puzzle}')
p = p - 1
act1 = puzzle - pows[p]
print(f'{puzzle} - {pows[p]} = {act1}')
p = p - 1
counter = 0
while p > 0:
if act1 < pows[p]:
p = p - 1
continue
else:
counter += 1
save = act1
act1 -= pows[p]
print(f'{counter}: {save} - {pows[p]} = {act1} power=[{p}]')
pattern.append(p)
p = p - 1
s = ''
for p in pattern:
s += 'p' + str(p) + ','
print(s)
the actual code to achieve that i will not share. guess anyone with coding skills can do it from this explanation alone.
it will require good knowledge of combinatorics in order to try it.
Ok maybe I understand.
46 is the average length of the power of 2 sequence? that's right?
with this script you can test some small range entirely and see how it goes.