• Почему цикл в цикле не работает?

    @haqz Автор вопроса
    tuwkan, спасибо, теперь работает:

    from random import randint
    
    N =    115792089237316195423570985008687907852837564279074904382605163141518161494337
    
    def inv(v): return pow(v, N-2, N)
    def divnum(a, b): return ( (a * inv(b) ) % N )
    
    i=1
    input = 0x9fd24b3abe244d6c443df56fa494dc
    
    #input =  0x5f87127# +1
    
    delta = 4#2+2#+2+2+2+2+2+2+2+2+2+2+2+2
    print(delta)
    
    gamma = 2
    z =1
    d1= 80
    
    while i <= input:
       z=1
       i = i +1
       while z <= 1000:
          
        
         d= (divnum(input-z,delta)) 
         s = divnum(i,gamma) %N
         result = divnum(d,s)
         z = z + 1  
         
         
         
        
        
         if result <=input and result >=0:
            print("result",hex(result),"i",hex(i),"input",hex(input),z)
  • Почему цикл в цикле не работает?

    @haqz Автор вопроса
    нет,z должен быть в цикле z, а принт только При условии .

    ?
  • Почему цикл в цикле не работает?

    @haqz Автор вопроса
    z не меняется, стоит на 1 и все. А он должен меняться полность проходить и потом возвращаться в цикл ,i и потом опять цикл z.

    ??
  • Как расширить вычисление до 2^120?

    @haqz Автор вопроса
    Wataru,



    Очевидно, что тут result будет 1? Потому что это divnum(x,x) - деление себя на себя.


    в мрем коде

    result = divnum(d,s)

    тут d использует input, а s не использует и 1 получается, те равенство что я в

    s = divnum(i,gamma)

    назожу с помощью i и гамма, числр равноое d, но инпут при этом не использую.

    По осталььному, сечас я иду спать, проснусь буду разбиратся в вашем месседже.

    Спасибо Вам за Ваше время.

    До связи
  • Как расширить вычисление до 2^120?

    @haqz Автор вопроса
    Wataru,

    я поместил Вашу формулу i = beta * input % N в код, result = 1 не аолучается

    ??

    from random import randint
    
    N =    115792089237316195423570985008687907852837564279074904382605163141518161494337
    
    def inv(v): return pow(v, N-2, N)
    def divnum(a, b): return ( (a * inv(b) ) % N )
    
    
    input = 0x5f87 +1
    beta = 2 #12 / 6 # это дельта / гамма
    i =0
    while i < 100:
        result = divnum(input*beta %N, i)
    
        if result >=1:print(hex(result),hex(input))
        i = i +1
  • Как расширить вычисление до 2^120?

    @haqz Автор вопроса
    0x5f87 - это input? А почему вы i на input умножаете, если формула в ответе, да и в вашем коде другая?

    вот в Вашем ответе input:

    beta = 0x42
    i = beta * input % N
    result = 1

    и результат конечно только усложняется когда input умножают на бету.
  • Как расширить вычисление до 2^120?

    @haqz Автор вопроса
    Wataru, про то что пытаются разузнать это не вам адресовалось.

    Но вы сами в своем коде input используете! Что значит, оно неизвестное, его надо найти, но result, вычисленный через него должен быть 1? А еще у вас в вопросе нигде не сказано, что вам надо i маленькое, что вы так какие-то вычисления ускоряете.

    посмотрите, вот результат работы мтего скрипта:

    result 0x0 i 0x0 input 0x5f88
    result 0xfec i 0x1 input 0x5f88
    result 0x7f6 i 0x2 input 0x5f88
    result 0x3fb i 0x4 input 0x5f88
    result 0x4 i 0x3fb input 0x5f88
    result 0x2 i 0x7f6 input 0x5f88
    result 0x1 i 0xfec input 0x5f88

    result = 1 а i меньше инпут. Поэтому я могу найти инпут за количество операций = i а не инпуту.

    Мои формулы сделаны так, что бы потом можно было инпут востановить кргда находится result = 1. С Вашими формулами все зацикливается на инпут и ничего восстановмть у меня не получается. ((((
  • Как расширить вычисление до 2^120?

    @haqz Автор вопроса
    haqz,

    Если result = 1, то получается i = input * (gamma / delta)

    input немзвестная переменная !!! Ваш ответ, сорри, но помог тоько частично и еще не выяснил я ,может ли ваш ответ помочь в моем вопросе.
  • Как расширить вычисление до 2^120?

    @haqz Автор вопроса
    Wattouch, а нафига вы тогда читаете то что я пишу. вы постоянно хотите чето рвзузнать сами , спрашивая у меня.
  • Как расширить вычисление до 2^120?

    @haqz Автор вопроса
    И полных советов и рекомендаций не получилось от Вас.

    Вот результат работы кода:

    result 0x0 i 0x0 input 0x5f88
    result 0xfec i 0x1 input 0x5f88
    result 0x7f6 i 0x2 input 0x5f88
    result 0x3fb i 0x4 input 0x5f88
    result 0x4 i 0x3fb input 0x5f88
    result 0x2 i 0x7f6 input 0x5f88
    result 0x1 i 0xfec input 0x5f88

    Видите , пройдя i от 0 до 0xfec модно найти инпут input 0x5f88 !!! Разницу в сложно залачи с мои алгоритмом и без вы видите, но уводите меня в тему - что если раздели на 100, умнож на 100 и получищь искомое ... ))
  • Как расширить вычисление до 2^120?

    @haqz Автор вопроса

    beta = 0x42
    i = beta * input % N
    result = 1


    этот код к чему ? куда его можно вставить ? я как понял это решение дает всегда i > input ?!

    input в задаче неизвестное ! А вы его используете как известную величину. Input и надо найти !!!

    ???
  • Как расширить вычисление до 2^120?

    @haqz Автор вопроса
    beta = 0x42
    i = beta * input % N
    result = 1

    z = 0x5f87 * 0x42 % N = 0x18a0ce а не 1!
  • Как расширить вычисление до 2^120?

    @haqz Автор вопроса
    Wataru, какая будет дельта что бы i стало всего 2^60 например или 2^59?
  • Как расширить вычисление до 2^120?

    @haqz Автор вопроса
    Wataru, мне и не надо i = input в итооге. мой алгоритм чтотбы i было меньше инпута. нет никакого смысла что либо решать алгооритмом который находит инпут, со скорость ничем не отличабшющей от скорости перебора i в диапазоне инпута !!!
  • Как расширить вычисление до 2^120?

    @haqz Автор вопроса
    Wataru,

    дано input = 0x9fd24b3abe244d6c443df56fa494dc

    найти delta, gamma.

    огрничения i < = 2^61

    Чтобы давало 1

    Хотябо приблизительно, какие значения будут у дельты и гаммы ?

    И деление тут это умножение делиого на модульную инверсию делителя, а не коассическое деление

    По моим прикмдкам работает дельта не больше 2^59. А гамму для нее я не нашел, гамма кратна дельте.

    ????
  • Как расширить вычисление до 2^120?

    @haqz Автор вопроса
    mayton2019, он делит число. Число инпут неизвестное(в другому алгоритме оно в другой "форме" поэтому оно неизвестно. изаестно только что оно в диапазоне от 2^119 до 2^120) и неидентифицируемое, илентифицируемое только result = 0x1(это хекс) = 1 в десятичной.

    Такие дела. четные дельта и гамма примнимы к четному инпуту, и нечетные наоборот - к нечетномв инпуту.

    Дело в том, что 2^120 очень большое число поэтому понадобилась помощь матеиатиков

    Такие дела

    ???
  • Как вычислить правильно в скрипте python?

    @haqz Автор вопроса
    Wattouch, модульные вычисления, тут дробной части нет, в классическом ее смысле. Я сам не знаю настолько что бы обьяснять. сорян
  • Как вычислить правильно в скрипте python?

    @haqz Автор вопроса
    Wataru, нужно что бы в результате было любое не больше 2^75
  • Как вычислить правильно в скрипте python?

    @haqz Автор вопроса
    В смысле - без остатка?

    Вообще сформулируйте задачу четче.

    Надо подобрать a,b,c,d так, что любое/как можно больше x= random.randint(2**119,2**120) после домножения на 1/a*b/c*d было меньше 10^70?

    Wataru, да, именно так милейший ! Как это сделать ?
  • Как вычислить правильно в скрипте python?

    @haqz Автор вопроса
    RINCODE,

    разделите 2^58 на 7 и поделите x на (int(2^58/7) * 7 число потом умеожте полученный результат на int(2^24/7,)*7 и потом поделите полученно на ,int(2^14/7). как то так