Отказ от отговорност: Продуктите и услугите, посочени тук, може да не са налични във вашия регион.
1. Как да определите печелившата поредица?
Binance ще избере конкретна дата по време на събитието и ще използва последните 9 цифри на последния блок хеш на TON Blockchain в 23:59 (UTC) на тази дата като печеливша поредица.
Например:
Ако последният хеш на блока на TON Blockchain в деня за изчисляване на наградата е: 0hVwGb09xU6rhZhs9JMHU29KuqYATsVwd+96R8X6wF4=
- Binance ще премахне азбуките, за да получите: 009692996864
- След това ще вземем последните 9 цифри като печеливша поредица: 692996864
2. Как да приложите мултипликативно хеширане към адрес на потребител?
Binance ще използва мултипликативна хеш формула (подобна на `hashCode()` на Java) "h = 31 * h + value[i]", за да определи адреса на портфейла на печелившия(те) потребител(и).
Изчисление:
1. Конвертирайте низа „0x22eEC85ba6a5cD97eAd4728eA1c69e1D9c6fa778“ в малка буква, за да получите „0x22eec85ba6a5cd97ead4728ea1c69e1d9c6fa778“, след това изчислете хеш кода.
2. Стойността на всеки знак се определя от неговия ASCII код:
- „0“ има стойност 48;
- „x“ има стойност 120;
- „2“ има стойност 50;
- „е“ има стойност 101;
- „c“ има стойност 99;
- „8“ има стойност 56;
- „5“ има стойност 53;
- „b“ има стойност 98;
- „а“ има стойност 97;
- „6“ има стойност 54;
- „d“ има стойност 100;
- „9“ има стойност 57;
- „7“ има стойност 55.
3. Инициализирайте хеш стойността: h = 0
4. Обработете първия знак „0“:
- h = 31 * h + 48
- h = 31 * 0 + 48
- h = 48
5. Обработете втория знак „x“:
- h = 31 * h + 120
- h = 31 * 48 + 120
- h = 1608
6. Обработете третия знак „2“:
- h = 31 * h + 50
- h = 31 * 1608 + 50
- h = 49898
7. Обработете четвъртия знак „2“:
- h = 31 * h + 50
- h = 31 * 49898 + 50
- h = 1546888
8. Обработете петия знак „е“:
- h = 31 * h + 101
- h = 31 * 1546888 + 101
- h = 47953629
9. Обработете шестия знак „е“:
- h = 31 * h + 101
- h = 31 * 47953629 + 101
- h = 1486562610
10. Обработете седмия знак „c“:
- h = 31 * h + 99
- h = 31 * 1486562610 + 99
- h = 46083441008
11. Опростена обработка на останалите знаци
Продължете да обработвате останалите знаци, следвайки стъпките, описани по-горе, докато всички знаци бъдат обработени. Крайната хеш стойност, h, ще бъде цяло число.
12. За да гарантираме, че хеш стойността е неотрицателна, прилагаме побитово и с „0x7ffffffff“: „h & 0x7fffffff”.
13. Използвайки този алгоритъм, хеш стойността на TON адреса ще бъде число между 0 и 2147483647.
3. Как да генерирате лотарийна поредица на потребител?
Адресът на портфейла на всеки потребител се преобразува в хеш стойност, за да се изчисли неговата лотарийна поредица:
[Печеливша поредица - хеш на адрес] = Лотарийна поредица на потребителя
4. Как да определим победителите?
Binance ще сортира лотарийната поредица на всеки потребител във възходящ ред и ще избере определен брой поредици като победители в зависимост от правилата на кампанията.
В случай на равен резултат (напр. двама или повече потребители имат една и съща лотарийна поредица), Binance ще използва времето за изпълнение на задачата, за да определи класирането на потребителите. Колкото по-рано даден потребител изпълни задачата, толкова по-високо е класирането му.
- За адреси с хеш, равни на или по-дълги от 10 цифри, 10-ата цифра се премахва.
- Ако хешът е под 10 цифри, не се правят промени.
След това се изчислява абсолютната разлика между хеша на адреса на потребителите и печелившата поредица. Binance ще сортира лотарийната поредица на всеки потребител във възходящ ред, а по-малката(ите) лотарийна(и) поредица(и) ще спечели.
Например:
- Хешът на адреса на потребител А има 10 цифри (1023456780). След премахване на 10-ата цифра неговата лотарийна поредица е 102345678.
- Хешът на адреса на потребител B има 9 цифри (201154321). Не са необходими промени, за да се коригира лотарийната поредица.
Как да определите победителя:
- Печеливша поредица = 692996864
- Резултат от лотарията на потребител А = |692996864 - 102345678| = 590651186
- Резултат от лотарията на потребител B = |692996864 − 201154321| = 491842543
Тъй като 491842543 е по-малко, потребител B печели.