Показать сообщение отдельно

  #4546  
Старый 08.06.2020, 03:33
Isica
Active Member
Регистрация: 17.10.2018
Сообщений: 262
С нами: 3986966

Репутация: 1
По умолчанию

Цитата:
Сообщение от Monohrom  

Подробности?

Поскольку у меня пока нет времени для дальнейших экспериментов, выкладываю всё, что нарыл.

Итак, я реализовал многовекторный (точнее, двухвекторный) поиск пина по базе:

1) находим в базе два мака, ближайших к целевому (моя реализация ищет по одному маку сверху и снизу) и запоминаем расстояния до них (DeltaMAC_Up и DeltaMAC_Dn);

2) для каждого из них составляем базу знаний DeltaPIN=f(DeltaMAC): просматриваем все имеющиеся в базе пары с таким DeltaMAC, берём из них DeltaPIN-ы, группируем их и сортируем по убыванию "мажорности";

3) возвращаемся к нашим опорным точкам (MAC_Up и MAC_Dn) и вычисляем все возможные значения целевого пина как PinUP-DeltaPIN и PinDn+DaltaPIN, вычисленные пины сводим в одну таблицу, группируем и сортируем по убыванию перекрёсности и мажорности;

4) делаем дополнительную оптимизацию: от всех пинов берём фёст-халфы и ещё раз группируем и сортируем результат.

Конёк в том, что, при достаточном объёме базы, искомый пин с высочайшей вероятностью будет перекрёстным, что мне довелось испытать на практике:

Код:
MariaDB [Tenda]> select tenda_pin('04:95:E6:62:EA:D8');
*************************** 1. row ***************************
tenda_pin('04:95:E6:62:EA:D8'):
|------------------------------------------------------------------------|
|Ближайшие данные в базе:
|  сверху: +1376 (04:95:E6:62:F0:38)
|     296 пар, 85 уникальных дельт, 41 мажорных (вес 85%, 51% в ТОП-10);
|   снизу: -400 (04:95:E6:62:E9:48)
|     354 пар, 87 уникальных дельт, 48 мажорных (вес 89%, 49% в ТОП-10);
|После объединения осталось 130 пинов, из них 42 перекрёстных.
|Эффективность халф-оптимизации: 1.97 общая, 2.47 у перекрёстных.
|------------------------------------------------------------------------|
|ИТОГО: 66 фёст-халфов, 17 перекрёстных (вес 88.9%, 76.5% в ТОП-8).
|------------------------------------------------------------------------|
1 row in set (0.25 sec)

MariaDB [Tenda]> select * from tmp_TendaPins order by n;
+------+---------+------+------+------+------+
| n    | PIN     | mUp  | mDn  | m    | X    |
+------+---------+------+------+------+------+
|    1 | 9226150 |   24 |   25 |   49 |    1 |
|    2 | 9226151 |   17 |   31 |   48 |    1 |
|    3 | 9226407 |   20 |   12 |   32 |    1 |
|    4 | 9226406 |   19 |   12 |   31 |    1 |
|    5 | 6003367 |    3 |   26 |   29 |    1 |
|    6 | 9160614 |   14 |   11 |   25 |    1 |
|    7 | 9160615 |   11 |   13 |   24 |    1 |
|    8 | 6003623 |    6 |   16 |   22 |    1 |
|    9 | 9160870 |   14 |    5 |   19 |    1 |
|   10 | 6003366 |    2 |   16 |   18 |    1 |
|   11 | 9291687 |    7 |   11 |   18 |    1 |
|   12 | 9160871 |   11 |    6 |   17 |    1 |
|   13 | 5937831 |    4 |   12 |   16 |    1 |
|   14 | 9291942 |   12 |    3 |   15 |    1 |
|   15 | 9291943 |    8 |    6 |   14 |    1 |
|   16 |  226150 |    6 |    7 |   13 |    1 |
|   17 | 6068903 |    4 |    7 |   11 |    1 |
|   18 |  226407 |    9 |    2 |   11 |    1 |
|   19 |  226151 |    4 |    6 |   10 |    1 |
|   20 | 5938087 |    4 |    5 |    9 |    1 |
|   21 | 6003622 |    4 |    4 |    8 |    1 |
|   22 | 5937830 |    2 |    5 |    7 |    1 |
|   23 | 9291686 |    1 |    6 |    7 |    1 |
|   24 | 5003622 |    5 |    1 |    6 |    1 |
|   25 |  291687 |    2 |    4 |    6 |    1 |
|   26 |  160614 |    2 |    3 |    5 |    1 |
|   27 | 5003366 |    1 |    4 |    5 |    1 |
|   28 | 5003367 |    2 |    3 |    5 |    1 |
|   29 | 8226150 |    1 |    4 |    5 |    1 |
|   30 | 8226407 |    2 |    2 |    4 |    1 |
|   31 | 5003623 |    3 |    1 |    4 |    1 |
|   32 |  160615 |    1 |    3 |    4 |    1 |
|   33 | 8226151 |    1 |    3 |    4 |    1 |
|   34 | 6069159 |    1 |    3 |    4 |    1 |
|   35 |  291943 |    2 |    1 |    3 |    1 |
|   36 | 8226406 |    1 |    2 |    3 |    1 |
|   37 | 4937830 |    1 |    2 |    3 |    1 |
|   38 | 8160614 |    1 |    1 |    2 |    1 |
|   39 | 5069158 |    1 |    1 |    2 |    1 |
|   40 | 6069158 |    1 |    1 |    2 |    1 |
|   41 | 4938087 |    1 |    1 |    2 |    1 |
|   42 | 5069159 |    1 |    1 |    2 |    1 |
|   43 |  160870 |    4 |    0 |    4 |    0 |
|   44 | 6068902 |    0 |    4 |    4 |    0 |
|   45 | 6003111 |    0 |    4 |    4 |    0 |
|   46 |  226663 |    3 |    0 |    3 |    0 |
|   47 |  291686 |    3 |    0 |    3 |    0 |
|   48 | 9225895 |    0 |    3 |    3 |    0 |
|   49 | 8291687 |    0 |    3 |    3 |    0 |
|   50 |  226406 |    3 |    0 |    3 |    0 |
|   51 | 9225894 |    0 |    3 |    3 |    0 |
|   52 | 5068903 |    0 |    2 |    2 |    0 |
|   53 | 6068647 |    0 |    2 |    2 |    0 |
|   54 | 5938086 |    0 |    2 |    2 |    0 |
|   55 | 9226662 |    2 |    0 |    2 |    0 |
|   56 | 9292199 |    2 |    0 |    2 |    0 |
|   57 | 9226663 |    2 |    0 |    2 |    0 |
|   58 | 5003879 |    2 |    0 |    2 |    0 |
|   59 |  225895 |    0 |    2 |    2 |    0 |
|   60 |  160871 |    2 |    0 |    2 |    0 |
|   61 | 6003110 |    0 |    2 |    2 |    0 |
|   62 | 8160871 |    2 |    0 |    2 |    0 |
|   63 | 5937575 |    0 |    2 |    2 |    0 |
|   64 | 8291942 |    2 |    0 |    2 |    0 |
|   65 | 8291686 |    0 |    2 |    2 |    0 |
|   66 | 9292198 |    2 |    0 |    2 |    0 |
|   67 | 9291431 |    0 |    2 |    2 |    0 |
|   68 |  225894 |    0 |    2 |    2 |    0 |
|   69 | 8291307 |    1 |    0 |    1 |    0 |
|   70 | 2932579 |    1 |    0 |    1 |    0 |
|   71 | 9161126 |    1 |    0 |    1 |    0 |
|   72 |  291430 |    0 |    1 |    1 |    0 |
|   73 | 3875611 |    0 |    1 |    1 |    0 |
|   74 |  939942 |    1 |    0 |    1 |    0 |
|   75 | 5791621 |    1 |    0 |    1 |    0 |
|   76 | 4937831 |    1 |    0 |    1 |    0 |
|   77 | 8160615 |    0 |    1 |    1 |    0 |
|   78 | 2436013 |    0 |    1 |    1 |    0 |
|   79 | 8226663 |    1 |    0 |    1 |    0 |
|   80 | 4938086 |    1 |    0 |    1 |    0 |
|   81 | 1403802 |    0 |    1 |    1 |    0 |
|   82 | 8041355 |    1 |    0 |    1 |    0 |
|   83 |  431107 |    0 |    1 |    1 |    0 |
|   84 |    3878 |    0 |    1 |    1 |    0 |
|   85 | 5159271 |    1 |    0 |    1 |    0 |
|   86 | 7499623 |    1 |    0 |    1 |    0 |
|   87 | 2144745 |    1 |    0 |    1 |    0 |
|   88 | 9372360 |    0 |    1 |    1 |    0 |
|   89 | 9160359 |    0 |    1 |    1 |    0 |
|   90 | 8160870 |    1 |    0 |    1 |    0 |
|   91 |  508221 |    1 |    0 |    1 |    0 |
|   92 | 8204432 |    0 |    1 |    1 |    0 |
|   93 |  291431 |    0 |    1 |    1 |    0 |
|   94 | 5798410 |    1 |    0 |    1 |    0 |
|   95 | 5857156 |    1 |    0 |    1 |    0 |
|   96 | 5922436 |    0 |    1 |    1 |    0 |
|   97 | 9772077 |    0 |    1 |    1 |    0 |
|   98 | 8827290 |    1 |    0 |    1 |    0 |
|   99 | 8269968 |    0 |    1 |    1 |    0 |
|  100 | 4691906 |    0 |    1 |    1 |    0 |
|  101 | 8659397 |    1 |    0 |    1 |    0 |
|  102 | 3922479 |    1 |    0 |    1 |    0 |
|  103 | 9080690 |    0 |    1 |    1 |    0 |
|  104 | 8175226 |    0 |    1 |    1 |    0 |
|  105 | 9403284 |    1 |    0 |    1 |    0 |
|  106 | 8724677 |    0 |    1 |    1 |    0 |
|  107 | 5392161 |    0 |    1 |    1 |    0 |
|  108 | 6003879 |    1 |    0 |    1 |    0 |
|  109 | 5791365 |    0 |    1 |    1 |    0 |
|  110 | 8160359 |    0 |    1 |    1 |    0 |
|  111 | 8291562 |    1 |    0 |    1 |    0 |
|  112 | 3308193 |    1 |    0 |    1 |    0 |
|  113 | 9560243 |    1 |    0 |    1 |    0 |
|  114 | 6068646 |    0 |    1 |    1 |    0 |
|  115 |  277075 |    0 |    1 |    1 |    0 |
|  116 | 9262896 |    1 |    0 |    1 |    0 |
|  117 | 5937574 |    0 |    1 |    1 |    0 |
|  118 | 4794286 |    0 |    1 |    1 |    0 |
|  119 | 7567051 |    1 |    0 |    1 |    0 |
|  120 |  226662 |    1 |    0 |    1 |    0 |
|  121 |   14882 |    1 |    0 |    1 |    0 |
|  122 | 9015138 |    0 |    1 |    1 |    0 |
|  123 |  592183 |    0 |    1 |    1 |    0 |
|  124 | 5068902 |    1 |    0 |    1 |    0 |
|  125 | 8612407 |    1 |    0 |    1 |    0 |
|  126 | 9709283 |    0 |    1 |    1 |    0 |
|  127 | 8109690 |    0 |    1 |    1 |    0 |
|  128 | 2731788 |    1 |    0 |    1 |    0 |
|  129 | 5791620 |    0 |    1 |    1 |    0 |
|  130 | 6552254 |    0 |    1 |    1 |    0 |
+------+---------+------+------+------+------+
130 rows in set (0.00 sec)

MariaDB [Tenda]> select * from tmp_TendaHalfs;
+------+------+------+------+------+------+
| n    | Half | mUp  | mDn  | m    | X    |
+------+------+------+------+------+------+
|    1 | 9226 |   84 |   80 |  164 |    1 |
|    2 | 9160 |   50 |   36 |   86 |    1 |
|    3 | 6003 |   16 |   68 |   84 |    1 |
|    4 | 9291 |   28 |   28 |   56 |    1 |
|    5 |  226 |   26 |   15 |   41 |    1 |
|    6 | 5937 |    6 |   20 |   26 |    1 |
|    7 | 5003 |   13 |    9 |   22 |    1 |
|    8 | 6068 |    4 |   14 |   18 |    1 |
|    9 | 8226 |    6 |   11 |   17 |    1 |
|   10 |  160 |    9 |    6 |   15 |    1 |
|   11 |  291 |    7 |    7 |   14 |    1 |
|   12 | 5938 |    4 |    7 |   11 |    1 |
|   13 | 8160 |    4 |    3 |    7 |    1 |
|   14 | 6069 |    2 |    4 |    6 |    1 |
|   15 | 5069 |    2 |    2 |    4 |    1 |
|   16 | 4937 |    2 |    2 |    4 |    1 |
|   17 | 4938 |    2 |    1 |    3 |    1 |
|   18 | 8291 |    4 |    5 |    9 |    0 |
|   19 | 9225 |    0 |    6 |    6 |    0 |
|   20 | 9292 |    4 |    0 |    4 |    0 |
|   21 |  225 |    0 |    4 |    4 |    0 |
|   22 | 5791 |    1 |    2 |    3 |    0 |
|   23 | 5068 |    1 |    2 |    3 |    0 |
|   24 |    3 |    0 |    1 |    1 |    0 |
|   25 | 9709 |    0 |    1 |    1 |    0 |
|   26 | 9161 |    1 |    0 |    1 |    0 |
|   27 | 2731 |    1 |    0 |    1 |    0 |
|   28 | 8269 |    0 |    1 |    1 |    0 |
|   29 |  277 |    0 |    1 |    1 |    0 |
|   30 | 6552 |    0 |    1 |    1 |    0 |
|   31 | 4691 |    0 |    1 |    1 |    0 |
|   32 | 8827 |    1 |    0 |    1 |    0 |
|   33 |  939 |    1 |    0 |    1 |    0 |
|   34 |   14 |    1 |    0 |    1 |    0 |
|   35 | 9772 |    0 |    1 |    1 |    0 |
|   36 | 2932 |    1 |    0 |    1 |    0 |
|   37 | 7499 |    1 |    0 |    1 |    0 |
|   38 | 5798 |    1 |    0 |    1 |    0 |
|   39 | 9372 |    0 |    1 |    1 |    0 |
|   40 | 4794 |    0 |    1 |    1 |    0 |
|   41 | 9015 |    0 |    1 |    1 |    0 |
|   42 | 1403 |    0 |    1 |    1 |    0 |
|   43 | 8175 |    0 |    1 |    1 |    0 |
|   44 | 3308 |    1 |    0 |    1 |    0 |
|   45 | 8612 |    1 |    0 |    1 |    0 |
|   46 |  431 |    0 |    1 |    1 |    0 |
|   47 | 7567 |    1 |    0 |    1 |    0 |
|   48 | 5857 |    1 |    0 |    1 |    0 |
|   49 | 9403 |    1 |    0 |    1 |    0 |
|   50 | 9080 |    0 |    1 |    1 |    0 |
|   51 | 2144 |    1 |    0 |    1 |    0 |
|   52 | 8204 |    0 |    1 |    1 |    0 |
|   53 | 5159 |    1 |    0 |    1 |    0 |
|   54 | 9262 |    1 |    0 |    1 |    0 |
|   55 | 3875 |    0 |    1 |    1 |    0 |
|   56 | 8659 |    1 |    0 |    1 |    0 |
|   57 |  508 |    1 |    0 |    1 |    0 |
|   58 | 8041 |    1 |    0 |    1 |    0 |
|   59 | 5922 |    0 |    1 |    1 |    0 |
|   60 | 9560 |    1 |    0 |    1 |    0 |
|   61 | 2436 |    0 |    1 |    1 |    0 |
|   62 | 5392 |    0 |    1 |    1 |    0 |
|   63 | 3922 |    1 |    0 |    1 |    0 |
|   64 | 8724 |    0 |    1 |    1 |    0 |
|   65 |  592 |    0 |    1 |    1 |    0 |
|   66 | 8109 |    0 |    1 |    1 |    0 |
+------+------+------+------+------+------+
66 rows in set (0.00 sec)

MariaDB [Tenda]>
Ну, а дальше--дело техники:

Код:
9226 150 -
9160 614 -
6003 623 -
9291 + 687 -
9291942 -
9291943 +
 
Ответить с цитированием