Criptarea de pătrat magică

Acest tabel are o proprietate remarcabilă. Adăugați numerele primei coloane: 4 + 3 + 8 = 15. Același rezultat se obține prin adăugarea numărului de a doua și a treia coloană. Acesta se obține prin adăugarea de numere de la oricare dintre cele trei rânduri. Nu numai acest lucru, se obține același răspuns 15 în cazul în care numărul de pliat fiecare dintre cele două diagonale: + 5 + 4 6 = 8 + 5 + 2 = 15.

Poate că această legendă chinezii au venit cu atunci când am găsit locația numerele 1 - 9 cu o astfel de proprietate remarcabilă. Figura ei au numit „lo-shu“ și a fost văzut ca un simbol al magiei sale și vrăji pentru a utiliza la. Deci, acum fiecare masă pătrat format din numere și are proprietatea numit pătrat magie.

Cum, atunci, face patrate magice? pătrat magic „lo-shu“ poate fi găsit fără a recurge la cea de sortare prin unul toate aranjamentele de 9 cifre 9 celule (numărul de astfel de aranjamente de 362 880). Susținem. Suma tuturor numerelor la 1 la 9 este egal cu: 2 + 1 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45. Aceasta înseamnă, în fiecare rând și în fiecare coloană trebuie să fie egal cu suma numerelor: 45: 3 = 15. Dar, dacă rezuma toate numerele în al doilea rând și coloană și ambele diagonale, fiecare număr va merge în jos o singură dată, cu excepția centrului, care va include patru. Deci, dacă vom nota numărul de termeni centrale de x, noi trebuie să avem egalitate. Prin urmare, x = 5, adică în centrul mesei trebuie să fie numărul 5.

Acum, rețineți faptul că numărul 9 nu poate sta în colțul mesei, de exemplu, în partea din stânga sus. Până la urmă, în timp ce în colțul opus se afla la numărul 1, și pe primul rând și coloană ar rămâne o singură combinație - numerele 4 și 2. Acest lucru înseamnă că 9 reprezintă în mijlocul unor rânduri extreme sau coloane (aici, în mijlocul primului rând). Alte două șiruri de numere sunt 4 și 2, iar a treia coloană numărul mediu trebuie să fie 1 = 05/09/15. În aceeași linie 1 ar trebui să fie numărul 8 și 6. Astfel, pătrat magic este aproape completă și ușor de a găsi un loc pentru numerele rămase. Rezultatul este pătratul „lo-shu.“ Desigur, pentru 9 pentru a selecta alte trei locuri, iar după selectarea locațiilor pentru acel număr sunt două posibilități pentru dispunerea numerelor 4 și 2. obținute total diferite patrate magice de trei rânduri și trei coloane (sau, ca matematica, pătrate de ordinul trei). Toate aceste pătrate pot fi obținute de la „Luo Shu“, sau de cotitură în jurul centrului de pătrat, sau, sau reflectându-l.

În general, dacă ați găsit nici un pătrat magic, atunci acesta poate fi metodele descrise mai sus (rotație și oglindire) pentru a obține 7 mai multe patrate magice. Dar cum găsești un singur pătrat magie? Pentru pătrate de ordin impar au mod foarte simplu, este după cum urmează. Ia coloana din mijloc și în celula superioară numărul său de scriere 1. Același număr de scriere de mai jos mijlocul de jos a coloanei și din celulele încep să scrie numerele 2, 3, ..., și merge până la dreapta (numărul de jos 1 este dintr-un pătrat). Facem acest lucru atât timp cât vom ajunge la coloana din extrema dreaptă. Apoi, ultimul număr de înregistrare scris pe aceeași linie în stânga pătrat și du-te imediat, înregistrând numerele în ordine crescătoare. Când vom ajunge la numărul, urmat de numărul scris anterior 1, vom merge în jos la o celulă în jos, scrie-l în următorul număr de ordine și apoi scrie numerele în ordine crescătoare, în același mod ca și înainte. Acesta formează un pătrat de ordine cincea:

Dim intMagSqInNum () Ca pătrat magie Integer“în cifre

Dim strTextInMagSq () ca text String“, în piața magică

Dim strTextInArray () ca șir de „matrice unidimensională a textului cifrată

Dim intSizeOfArray Ca dimensiune Integer“a șirului

Dim i% j% „Integer (%)

strTextWBlanks Dim ca text String“fără spații

Dim lngMarksInText Ca caractere „Chilo din text

„Eliminați spațiile din text

„Și converti litere mici în litere mari

strTextWBlanks = StrConv (Înlocuiți (txtEntrance.Text, "", ""), vbUpperCase)

„Compute Numărul de caractere din textul

„Se calculează dimensiunea pătrat magic (matrice)

Dacă intSizeOfArray Mod 2 = 0 Apoi intSizeOfArray = intSizeOfArray + 1

Dacă intSizeOfArray ^ 2 CINT (lngMarksInText) Atunci

strTextInArray (i) = Mid (strTextWBlanks, i, 1)

„Creați un pătrat magie folosind funcția MagSqInNum

„Afișează pătrat magică

Pentru i = 1 Pentru intSizeOfArray

Pentru j = 1 Pentru intSizeOfArray

txtMagSqInNum.Text = txtMagSqInNum.Text intMagSqInNum (i, j) „“

txtMagSqInNum.Text = txtMagSqInNum.Text vbCrLf

„Distribuim textul din pătrat magică

„Iar textul concluziilor într-o matrice

ReDim strTextInMagSq (intSizeOfArray, intSizeOfArray)

Pentru i = 1 Pentru intSizeOfArray

Pentru j = 1 Pentru intSizeOfArray

strTextInMagSq (i, j) = strTextInArray (intMagSqInNum (i, j))

txtTextInMagSq.Text = txtTextInMagSq.Text strTextInMagSq (i, j) „“

txtTextInMagSq.Text = txtTextInMagSq.Text vbCrLf

„Ieșire textul cifrat

Pentru i = 1 Pentru intSizeOfArray

Pentru j = 1 Pentru intSizeOfArray

strTextInMagSq (i, j) = strTextInArray (intMagSqInNum (i, j))

txtCodeMagSq.Text = txtCodeMagSq.Text strTextInMagSq (i, j)

„Ieșire dimensiunea butonului pătrat

cmdCodeMagSq.Caption = "Magic Quadrant (" intSizeOfArray "X" intSizeOfArray ")"

Funcția MagSqInNum (intSizeOfArray Ca Integer) Ca Integer ()

„Funcția pentru a crea pătrat magică

„Pentru Odd NxN

Dim intMagSqInNum () Ca pătrat magie Integer“în cifre

Dim intAverArray Ca matrice valoare medie Integer“

Dim i%, j%, k% „Integer (%)

Dim intVariantSq Ca variantă pătrat magică Integer“

„Determinată de valoarea medie a șirului

intAverArray = Int (intSizeOfArray / 2) + 1

„Override dimensiune array (pătrat)

ReDim intMagSqInNum (intSizeOfArray, intSizeOfArray)

„Selectați un exemplu de realizare, folosind generator de numere aleatorii

intVariantSq = Int ((la 8 - 1 + 1) * Rnd + 1)

„Crearea de magie exemplu de realizare pătrat, respectiv,

Selectați Case intVariantSq

i = 1: j = intAverArray

Pentru k = 1 Pentru intSizeOfArray ^ 2

Dacă i intSizeOfArray Apoi

i = i + 2: j = j - 1

Elseif i intSizeOfArray Apoi

Elseif intMagSqInNum (i, j)> 0 Apoi

i = i + 2: j = j - 1

intMagSqInNum (i, j) = k

interacționând cu mijloace certificate kriptograficheskoyzaschityinformatsii. 13. Software-ul. interacționând cu mijloace certificate kriptograficheskoyzaschityinformatsii. 2. Software-ul este conceput.

cracare. Zaschitainformatsii și secrete de stat (kriptograficheskoyzaschityinformatsii autentificare) de protecție antivirus Zaschitainformatsii sau informații economice este obligatorie.

Autentificare și criptare certificat pentru kriptograficheskoyzaschityinformatsii înseamnă „Continent-AP“. [Pentru gestionarea clienților. Autentificare și criptare certificat înseamnă kriptograficheskoyzaschityinformatsii (în continuare - CPS) "Continent-AP".

fragmente VV TERMENI DE UTILIZARE A FONDURILOR KRIPTOGRAFICHESKOYZASCHITYINFORMATSII și semnătura digitală în sistem. COMUNICAȚII 1. Fondurile generale kriptograficheskoyzaschityinformatsii (CIPF) și semnătura digitală.