Pull to refresh

Comments 31

UFO just landed and posted this here
Помогает не путать 13 (thirteen) и 30 (thirty), чтобы вместо 1913 не оказалось 1930, например.
UFO just landed and posted this here
13 и 30 дают разные контрольные суммы, очевидно же…
UFO just landed and posted this here
Алгоритм обнаруживает однократные ошибки, а 13 и 30 — двукратная
UFO just landed and posted this here
Вы прикалываетесь? ;) Или и правда непонятно?
UFO just landed and posted this here
UFO just landed and posted this here
Этот алгоритм находит любые однократные ошибки и некоторые многократные, в том числе фонетические.
UFO just landed and posted this here
Разные алгоритмы делают это с разной степенью вероятности. Данный алгоритм с большей степенью вероятности обнаруживает многократные фонетические ошибки.
UFO just landed and posted this here
Наверное имеются в виду ошибки, которые могут возникнуть при записи номера на слух.
Алгоритм заточен на обнаружение 100% однократных ошибок и на обнаружение многократных фонетических с большей вероятностью, чем некоторые другие алгоритмы.
UFO just landed and posted this here
Любой алгоритм может найти ограниченное количество ошибок. Но можно выбрать из возможных квазигрупп такую, которая находит больше фонетических ошибок и меньше нефонетических.

Поскольку люди чаще совершают фонетические ошибки, такой алгоритм на практике будет обнаруживать больше ошибок.
Перепутаете — при проверке код не совпадет и всё
UFO just landed and posted this here
Еще бы описание что такое квазигруппа и почему именно такая, в смысле по какому принципу там цифры подобраны. А то получается: берем число, МАГИЯ, получаем циферку.
И правда. Главная фишка алгоритма это та самая табличка, как её получили и какие у нее свойства. Алгоритм то элементарный.
Очень интересно, но я ничего не понял.
На DUMP 2015 был очень доступный для понимания доклад «Свежие новости из мира слабо полностью антисимметричных квазигрупп десятого порядка». Там Алексей Кирпичников достаточно последовательно приходит к методу Дамма, по ходу рассказа объясняя и о том, что значит «квазигруппы» и «антисимметричность». Но как была получена «магическая» табличка он не объясняет.
www.youtube.com/watch?v=cwKnHHRutUs
> очень доступный для понимания
> слабо полностью антисимметричных квазигрупп десятого порядка

Challenge accepted!
Да, примерно поэтому я и решил сделать этот доклад на DUMP :)
Вот самый короткий вариант доказательства, который мне известен (6 страниц на английском языке): www.researchgate.net/publication/220186571_Totally_anti-symmetric_quasigroups_for_all_orders

В формате доклада на нематематической конференции это вряд ли хорошо зашло бы :)
конвертнул на TSQL

CREATE FUNCTION fn_dhmd( @value int )
RETURNS int
AS
BEGIN
    declare @damm table( inter tinyint not null, input tinyint not null, value tinyint not null, primary key(inter, input));
    declare @result int = 0;
    declare @txt varchar(16);
    SET @txt = CAST(@value as varchar(16));
    declare @length int = LEN(@txt), @idx int = 1;

    insert into @damm (inter, input, value) values 
    (0,0,0), (0,1,3), (0,2,1), (0,3,7), (0,4,5), (0,5,9), (0,6,8), (0,7,6), (0,8,9), (0,9,2),
    (1,0,7), (1,1,0), (1,2,9), (1,3,2), (1,4,1), (1,5,5), (1,6,4), (1,7,8), (1,8,6), (1,9,3),
    (2,0,4), (2,1,2), (2,2,0), (2,3,6), (2,4,8), (2,5,7), (2,6,1), (2,7,3), (2,8,5), (2,9,9),
    (3,0,1), (3,1,7), (3,2,5), (3,3,0), (3,4,9), (3,5,8), (3,6,3), (3,7,4), (3,8,2), (3,9,6),
    (4,0,6), (4,1,1), (4,2,2), (4,3,3), (4,4,0), (4,5,4), (4,6,5), (4,7,9), (4,8,7), (4,9,8),
    (5,0,3), (5,1,6), (5,2,7), (5,3,4), (5,4,2), (5,5,0), (5,6,9), (5,7,5), (5,8,8), (5,9,1),
    (6,0,5), (6,1,8), (6,2,6), (6,3,9), (6,4,7), (6,5,2), (6,6,0), (6,7,1), (6,8,3), (6,9,4),
    (7,0,8), (7,1,9), (7,2,4), (7,3,5), (7,4,3), (7,5,6), (7,6,2), (7,7,0), (7,8,1), (7,9,7),
    (8,0,9), (8,1,4), (8,2,3), (8,3,8), (8,4,6), (8,5,1), (8,6,7), (8,7,2), (8,8,0), (8,9,5),
    (9,0,2), (9,1,5), (9,2,8), (9,3,1), (9,4,4), (9,5,3), (9,6,6), (9,7,7), (9,8,9), (9,9,0);

    while @length > 0
    begin
        SELECT top 1 @result = value, @idx = @idx + 1, @length = @length - 1 FROM @damm WHERE inter = @result AND input = RIGHT(LEFT(@txt, @idx),1)
    end;
  RETURN 10 * @value + @result;
END
GO

declare @result int = ( SELECT dbo.fn_dhmd( 572 ) );
IF 5724 <> @result
begin
   RAISERROR ('FAILED: incorreclt calculate dhmd number: %d ', 16, -1, @result )
end

set @result = ( SELECT dbo.fn_dhmd( 5724 ) );
IF 57240 <> @result
begin
   RAISERROR ('FAILED: incorreclt calculate dhmd number: %d ', 16, -1, @result )
end


Хорошо бы написать, что означает «полностью антисимметричная квазигруппа»? Понятие «антисимметричность» обычно используется для колец.
Sign up to leave a comment.

Articles