{"id":482,"date":"2021-08-24T00:27:35","date_gmt":"2021-08-23T21:27:35","guid":{"rendered":"https:\/\/1.cbm.ua\/?p=482"},"modified":"2021-08-24T15:33:59","modified_gmt":"2021-08-24T12:33:59","slug":"%d0%ba%d0%be%d0%b4-%d1%85%d1%8d%d0%bc%d0%bc%d0%b8%d0%bd%d0%b3%d0%b0-%d1%81%d0%b0%d0%bc%d0%be%d0%ba%d0%be%d0%bd%d1%82%d1%80%d0%be%d0%bb%d0%b8%d1%80%d1%83%d1%8e%d1%89%d0%b8%d0%b9%d1%81","status":"publish","type":"post","link":"https:\/\/1.cbm.ua\/?p=482","title":{"rendered":"\u041a\u043e\u0434 \u0425\u044d\u0301\u043c\u043c\u0438\u043d\u0433\u0430 \u2014 \u0441\u0430\u043c\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0439\u0441\u044f \u0438 \u0441\u0430\u043c\u043e\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439\u0441\u044f \u043a\u043e\u0434."},"content":{"rendered":"\n<p>\u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0441\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 \u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0434\u0432\u043e\u0439\u043d\u0443\u044e. \u041d\u0430\u0437\u0432\u0430\u043d \u0432 \u0447\u0435\u0441\u0442\u044c \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0420\u0438\u0447\u0430\u0440\u0434\u0430 \u0425\u044d\u043c\u043c\u0438\u043d\u0433\u0430, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0432\u0448\u0435\u0433\u043e \u043a\u043e\u0434.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/storage2\/5bb\/3f1\/983\/5bb3f198377397fa041e5bb390eec466.png\" alt=\"\u041a\u043e\u0434 \u0425\u044d\u043c\u043c\u0438\u043d\u0433\u0430. \u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u044b \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \/ \u0425\u0430\u0431\u0440\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/ok-t.ru\/life-prog\/baza2\/1462508663451.files\/image010.gif\" alt=\"\u041a\u043e\u0434 \u0425\u044d\u043c\u043c\u0438\u043d\u0433\u0430\"\/><\/figure>\n\n\n\n<p>p1,2,3 &#8212; \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430<br>d1,2,3,4 &#8212; \u0434\u0430\u043d\u043d\u044b\u0435<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td><img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/b\/b0\/Hamming%287%2C4%29.svg\/160px-Hamming%287%2C4%29.svg.png\" alt=\"\u041a\u043e\u0434 \u0425\u044d\u043c\u043c\u0438\u043d\u0433\u0430 '&quot;`UNIQ--postMath-00000001-QINU`&quot;' \u0441 '&quot;`UNIQ--postMath-00000002-QINU`&quot;'\">  p1,2,3 &#8212; \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430<br>d1,2,3,4 &#8212; \u0434\u0430\u043d\u043d\u044b\u0435 <\/td><\/tr><tr><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>\u0425\u044d\u043c\u043c\u0438\u043d\u0433 \u0440\u0430\u0437\u0434\u0440\u0430\u0436\u0430\u043b\u0441\u044f, \u0438\u0437-\u0437\u0430 \u043d\u0435\u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u0435\u0440\u0444\u043e\u043a\u0430\u0440\u0442. \u041d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043b\u0435\u0442 \u043e\u043d \u0438\u0441\u043a\u0430\u043b \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a. \u0412\u00a0<a href=\"https:\/\/ru.wikipedia.org\/wiki\/1950_%D0%B3%D0%BE%D0%B4\">1950 \u0433\u043e\u0434\u0443<\/a>\u00a0 \u041e\u043d \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0441\u043f\u043e\u0441\u043e\u0431 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u043a\u0430\u043a \u043a\u043e\u0434 \u0425\u044d\u043c\u043c\u0438\u043d\u0433\u0430.<\/p>\n\n\n\n<p><a href=\"https:\/\/gist.github.com\/vilisov\/8278ad08700c89afde28\">URL \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a (\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0438\u0436\u0435) <a href=\"https:\/\/gist.github.com\/vilisov\/8278ad08700c89afde28#file-hamming_code-py\"><strong>hamming_code.py<\/strong><\/a><\/a><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#https:\/\/gist.github.com\/vilisov\/8278ad08700c89afde28#file-hamming_code-py\n#https:\/\/1.cbm.ua\/?p=482&amp;preview_id=482&amp;preview_nonce=5f0779bfc7&amp;preview=true\n\nimport random\n\n# \u0434\u043b\u0438\u043d\u0430 \u0431\u043b\u043e\u043a\u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\nCHUNK_LENGTH = 8\n\n# \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u043b\u0438\u043d\u044b \u0431\u043b\u043e\u043a\u0430\nassert not CHUNK_LENGTH % 8, '\u0414\u043b\u0438\u043d\u0430 \u0431\u043b\u043e\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043a\u0440\u0430\u0442\u043d\u0430 8'\n\n# \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0445 \u0431\u0438\u0442\nCHECK_BITS = [i for i in range(1, CHUNK_LENGTH + 1) if not i &amp; (i - 1)]\n\n\ndef chars_to_bin(chars):\n    \"\"\"\n    \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442.\n    \"\"\"\n    assert not len(chars) * 8 % CHUNK_LENGTH, '\u0414\u043b\u0438\u043d\u0430 \u043a\u043e\u0434\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043a\u0440\u0430\u0442\u043d\u0430 \u0434\u043b\u0438\u043d\u0435 \u0431\u043b\u043e\u043a\u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f'\n    return ''.join([bin(ord(c))[2:].zfill(8) for c in chars])\n\n\ndef chunk_iterator(text_bin, chunk_size=CHUNK_LENGTH):\n    \"\"\"\n    \u041f\u043e\u0431\u043b\u043e\u0447\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445\n    \"\"\"\n    for i in range(len(text_bin)):\n        if not i % chunk_size:\n            yield text_bin[i:i + chunk_size]\n\n\ndef get_check_bits_data(value_bin):\n    \"\"\"\n    \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0445 \u0431\u0438\u0442\u0430\u0445 \u0438\u0437 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445.\n    \"\"\"\n    check_bits_count_map = {k: 0 for k in CHECK_BITS}\n    for index, value in enumerate(value_bin, 1):\n        if int(value):\n            bin_char_list = list(bin(index)[2:].zfill(8))\n            bin_char_list.reverse()\n            for degree in [2 ** int(i) for i, value in enumerate(bin_char_list) if int(value)]:\n                check_bits_count_map[degree] += 1\n    check_bits_value_map = {}\n    for check_bit, count in check_bits_count_map.items():\n        check_bits_value_map[check_bit] = 0 if not count % 2 else 1\n    return check_bits_value_map\n\n\ndef set_empty_check_bits(value_bin):\n    \"\"\"\n    \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \"\u043f\u0443\u0441\u0442\u044b\u0435\" \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u0442\u044b\n    \"\"\"\n    for bit in CHECK_BITS:\n        value_bin = value_bin[:bit - 1] + '0' + value_bin[bit - 1:]\n    return value_bin\n\n\ndef set_check_bits(value_bin):\n    \"\"\"\n    \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0445 \u0431\u0438\u0442\n    \"\"\"\n    value_bin = set_empty_check_bits(value_bin)\n    check_bits_data = get_check_bits_data(value_bin)\n    for check_bit, bit_value in check_bits_data.items():\n        value_bin = '{0}{1}{2}'.format(\n            value_bin[:check_bit - 1], bit_value, value_bin[check_bit:])\n    return value_bin\n\n\ndef get_check_bits(value_bin):\n    \"\"\"\n    \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0445 \u0431\u0438\u0442\u0430\u0445 \u0438\u0437 \u0431\u043b\u043e\u043a\u0430 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445\n    \"\"\"\n    check_bits = {}\n    for index, value in enumerate(value_bin, 1):\n        if index in CHECK_BITS:\n            check_bits[index] = int(value)\n    return check_bits\n\n\ndef exclude_check_bits(value_bin):\n    \"\"\"\n    \u0418\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0445 \u0431\u0438\u0442\u0430\u0445 \u0438\u0437 \u0431\u043b\u043e\u043a\u0430 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445\n    \"\"\"\n    clean_value_bin = ''\n    for index, char_bin in enumerate(list(value_bin), 1):\n        if index not in CHECK_BITS:\n            clean_value_bin += char_bin\n\n    return clean_value_bin\n\n\ndef set_errors(encoded):\n    \"\"\"\n    \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 \u0432 \u0431\u043b\u043e\u043a\u0430\u0445 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445\n    \"\"\"\n    result = ''\n    for chunk in chunk_iterator(encoded, CHUNK_LENGTH + len(CHECK_BITS)):\n        num_bit = random.randint(1, len(chunk))\n        chunk = '{0}{1}{2}'.format(chunk[:num_bit - 1], int(chunk[num_bit - 1]) ^ 1, chunk[num_bit:])\n        result += (chunk)\n    return result\n\n\ndef check_and_fix_error(encoded_chunk):\n    \"\"\"\n    \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u0431\u043b\u043e\u043a\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445\n    \"\"\"\n    check_bits_encoded = get_check_bits(encoded_chunk)\n    check_item = exclude_check_bits(encoded_chunk)\n    check_item = set_check_bits(check_item)\n    check_bits = get_check_bits(check_item)\n    if check_bits_encoded != check_bits:\n        invalid_bits = []\n        for check_bit_encoded, value in check_bits_encoded.items():\n            if check_bits[check_bit_encoded] != value:\n                invalid_bits.append(check_bit_encoded)\n        num_bit = sum(invalid_bits)\n        encoded_chunk = '{0}{1}{2}'.format(\n            encoded_chunk[:num_bit - 1],\n            int(encoded_chunk[num_bit - 1]) ^ 1,\n            encoded_chunk[num_bit:])\n    return encoded_chunk\n\n\ndef get_diff_index_list(value_bin1, value_bin2):\n    \"\"\"\n    \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0431\u0438\u0442\u043e\u0432\n    \"\"\"\n    diff_index_list = []\n    for index, char_bin_items in enumerate(zip(list(value_bin1), list(value_bin2)), 1):\n        if char_bin_items[0] != char_bin_items[1]:\n            diff_index_list.append(index)\n    return diff_index_list\n\n\ndef encode(source):\n    \"\"\"\n    \u041a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445\n    \"\"\"\n    text_bin = chars_to_bin(source)\n    result = ''\n    for chunk_bin in chunk_iterator(text_bin):\n        chunk_bin = set_check_bits(chunk_bin)\n        result += chunk_bin\n    return result\n\n\ndef decode(encoded, fix_errors=True):\n    \"\"\"\n    \u0414\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445\n    \"\"\"\n    decoded_value = ''\n    fixed_encoded_list = []\n    for encoded_chunk in chunk_iterator(encoded, CHUNK_LENGTH + len(CHECK_BITS)):\n        if fix_errors:\n            encoded_chunk = check_and_fix_error(encoded_chunk)\n        fixed_encoded_list.append(encoded_chunk)\n\n    clean_chunk_list = []\n    for encoded_chunk in fixed_encoded_list:\n        encoded_chunk = exclude_check_bits(encoded_chunk)\n        clean_chunk_list.append(encoded_chunk)\n\n    for clean_chunk in clean_chunk_list:\n        for clean_char in [clean_chunk[i:i + 8] for i in range(len(clean_chunk)) if not i % 8]:\n            decoded_value += chr(int(clean_char, 2))\n    return decoded_value\n\n\nif __name__ == '__main__':\n    while True:\n\n\n\n        source = input('\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0442\u0435\u043a\u0441\u0442 \u0434\u043b\u044f \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\/\u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f:')\n        print ('\u0412\u044b \u0432\u0432\u0435\u043b\u0438:\\n', source, '\\n')\n        \n        if source[0:2] == '0b' and len(source) > 3:\n            print ('\u0412\u044b \u0432\u0432\u0435\u043b\u0438 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435', source[0:2], ' \u0437\u043d\u0430\u0447\u0438\u0442 \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e \u0432\u0432\u0435\u0434\u0435\u043d\u043e \u0432 \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435')\n            source = int(source, 2) #int(\u0447\u0438\u0441\u043b\u043e,2) -  \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e \u0447\u0438\u0441\u043b\u043e \u0432 2\u0445 \u0431\u0438\u0442\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432\u0432\u0435\u0434\u0435\u043d\u043e.\n            #\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u0432 \u0441\u0442\u0440\u043e\u043a\u0443.\n            print('{: >16}'.format(f'{source:b}'), \"  - \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0442\u043e \u0447\u0442\u043e \u0432\u0432\u0435\u043b\u0438 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b.\") #\n            source = '{:0>16}'.format(f'{source:b}') #\n            print(source, \"  - \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0442\u043e \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0437 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b.\\n\") #\n\n        \n        print('\u0414\u043b\u0438\u043d\u0430 \u0431\u043b\u043e\u043a\u0430 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f: {0}'.format(CHUNK_LENGTH))\n        print('\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u0442\u044b: {0}'.format(CHECK_BITS))\n        encoded = encode(source)\n        print('\u0417\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435: {0}'.format(encoded))\n        decoded = decode(encoded)\n        print('\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f: {0}'.format(decoded))\n        encoded_with_error = set_errors(encoded)\n        print('\u0414\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445: {0}'.format(encoded_with_error))\n        diff_index_list = get_diff_index_list(encoded, encoded_with_error)\n        print('\u0414\u043e\u043f\u0443\u0449\u0435\u043d\u044b \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u0431\u0438\u0442\u0430\u0445: {0}'.format(diff_index_list))\n        decoded = decode(encoded_with_error, fix_errors=False)\n        print('\\n\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0435\u0437 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a: {0}'.format(decoded))\n        decoded_r = decode(encoded_with_error)\n        print('\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0448\u0438\u0431\u043e\u043a: {0}'.format(decoded_r))\n        if source == decoded_r:\n            print ('\\nO\u043a! \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0412\u0435\u0440\u043d\u044b\u0439.')\n        else:\n            print ('\\n\u041e\u0448\u0438\u0431\u043a\u0430. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0435 \u0432\u0435\u0440\u043d\u044b\u0439.')\n        print ('\\n'*5)\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0441\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 \u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0434\u0432\u043e\u0439\u043d\u0443\u044e. \u041d\u0430\u0437\u0432\u0430\u043d \u0432 \u0447\u0435\u0441\u0442\u044c \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0420\u0438\u0447\u0430\u0440\u0434\u0430 \u0425\u044d\u043c\u043c\u0438\u043d\u0433\u0430, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0432\u0448\u0435\u0433\u043e \u043a\u043e\u0434. p1,2,3 &#8212; \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430d1,2,3,4 &#8212; \u0434\u0430\u043d\u043d\u044b\u0435 p1,2,3 &#8212; \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430d1,2,3,4 &#8212; \u0434\u0430\u043d\u043d\u044b\u0435 \u0425\u044d\u043c\u043c\u0438\u043d\u0433 \u0440\u0430\u0437\u0434\u0440\u0430\u0436\u0430\u043b\u0441\u044f, \u0438\u0437-\u0437\u0430 \u043d\u0435\u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u0435\u0440\u0444\u043e\u043a\u0430\u0440\u0442. \u041d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043b\u0435\u0442 \u043e\u043d \u0438\u0441\u043a\u0430\u043b \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a. \u0412\u00a01950 \u0433\u043e\u0434\u0443\u00a0 \u041e\u043d \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0441\u043f\u043e\u0441\u043e\u0431&hellip;&nbsp;<a href=\"https:\/\/1.cbm.ua\/?p=482\" rel=\"bookmark\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 &raquo;<span class=\"screen-reader-text\">\u041a\u043e\u0434 \u0425\u044d\u0301\u043c\u043c\u0438\u043d\u0433\u0430 \u2014 \u0441\u0430\u043c\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0439\u0441\u044f \u0438 \u0441\u0430\u043c\u043e\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439\u0441\u044f \u043a\u043e\u0434.<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[69],"tags":[25],"class_list":["post-482","post","type-post","status-publish","format-standard","hentry","category-69","tag-help"],"_links":{"self":[{"href":"https:\/\/1.cbm.ua\/index.php?rest_route=\/wp\/v2\/posts\/482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/1.cbm.ua\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/1.cbm.ua\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/1.cbm.ua\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/1.cbm.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=482"}],"version-history":[{"count":6,"href":"https:\/\/1.cbm.ua\/index.php?rest_route=\/wp\/v2\/posts\/482\/revisions"}],"predecessor-version":[{"id":493,"href":"https:\/\/1.cbm.ua\/index.php?rest_route=\/wp\/v2\/posts\/482\/revisions\/493"}],"wp:attachment":[{"href":"https:\/\/1.cbm.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/1.cbm.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/1.cbm.ua\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}