SHARE
TWEET

Untitled

a guest Jan 14th, 2020 55 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11.  
  12. namespace LFSR
  13. {
  14.     public partial class LFSR : Form
  15.     {
  16.         public LFSR()
  17.         {
  18.             InitializeComponent();
  19.         }
  20.         int k1, k2, k3; // lista przy lfsr - dlugosc
  21.         int KK, K1, K2, K3; //   watki wielkosc
  22.         int xor1, xor2, xor3;
  23.         int[] j1, j2, j3; // tab do losowych
  24.         int[] h1, h2, h3;
  25.         int ww1, ww2, ww3; // lista dla f(x) wyrazy wolne
  26.         int liczba = 20000;
  27.         int[] test;
  28.         int[] tabw1, tabw2, tabw3; //tablice do trzymania wartosci wynikowych
  29.         private void label7_Click(object sender, EventArgs e)
  30.         {
  31.  
  32.         }
  33.         private void label6_Click(object sender, EventArgs e)
  34.         {
  35.  
  36.         }
  37.         private void label8_Click(object sender, EventArgs e)
  38.         {
  39.  
  40.         }
  41.         private void label10_Click(object sender, EventArgs e)
  42.         {
  43.  
  44.         }
  45.         private void Form1_Load(object sender, EventArgs e)
  46.         {
  47.  
  48.         }
  49.         void lista()
  50.         {
  51.             k1 = (int)numericUpDown1.Value;
  52.             k2 = (int)numericUpDown2.Value;
  53.             k3 = (int)numericUpDown3.Value;
  54.             ww1 = (int)numericUpDown4.Value;
  55.             ww2 = (int)numericUpDown5.Value;
  56.             ww3 = (int)numericUpDown6.Value;
  57.         }
  58.        void losowe(int numer, string nazwa)
  59.         {
  60.             if (numer > 0)
  61.             {
  62.                 if (numer == k1 && numer > 0 && nazwa == "k1")
  63.                 {
  64.                     K1 = (2 * numer) - 1;
  65.                     textBox1.Clear();
  66.                     var rand = new Random();
  67.                     j1 = new int[k1];
  68.                     int p0 = 0;
  69.                     for (int x = 0; x < k1; x++)
  70.                     {
  71.                         int b;
  72.                         b = rand.Next(0, 2);
  73.                         if (b == 1) p0++;
  74.                         j1[x] = b;
  75.                     }
  76.                     h1 = new int[p0];
  77.                     for (int i = 0; i < j1.Length; i++)
  78.                     {
  79.                         textBox1.Text = textBox1.Text + j1[i];
  80.                     }
  81.                     int poz = 0;
  82.                     for (int z = 0; z < j1.Length; z++)
  83.                     {
  84.                         if (j1[z] == 1)
  85.                         {
  86.                             h1[poz] = z;
  87.                             poz++;
  88.                         }
  89.                     }
  90.                     int zmshift = 0;
  91.  
  92.                     tabw1 = new int[K1];
  93.                     for (int p = 0; p < K1; p++)
  94.                     {
  95.                      
  96.                         przesun();
  97.                         pokaz();
  98.                         xor();
  99.                     }
  100.                     void pokaz()
  101.                     {
  102.                         textBox4.Clear();
  103.                         for (int d = 0; d < tabw1.Length; d++)
  104.                         {
  105.                             textBox4.Text = textBox4.Text + tabw1[d].ToString();
  106.                         }
  107.                     }
  108.                     void przesun()
  109.                     {
  110.                         int[] d0 = new int[j1.Length];
  111.                         d0[0] = xor1;
  112.                         for (int c = 0; c < j1.Length; c++)
  113.                         {
  114.                             d0[(c + 1) % d0.Length] = j1[c];
  115.                         }
  116.                         tabw1[zmshift] = j1[j1.Length - 1];
  117.                         zmshift++;
  118.                         j1 = d0;
  119.                     }
  120.                     void xor()
  121.                     {
  122.                         xor1 = 0;
  123.                         int[] temp = new int[poz];
  124.                         for (int a = 0; a < poz; a++)
  125.                         {
  126.                             temp[a] = j1[h1[a]];
  127.                         }
  128.                         xor1 = ww1 ^ temp[0];
  129.                         for (int a = 1; a < (temp.Length); a++)
  130.                         {
  131.                             xor1 = xor1 ^ temp[a];
  132.                         }
  133.                     }
  134.                 }
  135.                 else if (numer == k2 && numer > 0 && nazwa == "k2")
  136.                 {
  137.                     K2 = (2 * numer) - 1;
  138.                     var rand = new Random();
  139.                     j2 = new int[k2];
  140.                     textBox2.Clear();
  141.                     int pp2 = 0;
  142.                     for (int x = 0; x < k2; x++)
  143.                     {
  144.                         int b;
  145.                         b = rand.Next(0, 2);
  146.                         j2[x] = b;
  147.                         if (b == 1) pp2++;
  148.                     }
  149.                     h2 = new int[pp2];
  150.                     for (int i = 0; i < j2.Length; i++)
  151.                     {
  152.                         textBox2.Text = textBox2.Text + j2[i];
  153.                     }
  154.                     int pos2 = 0;
  155.                     for (int z = 0; z < j2.Length; z++)
  156.                     {
  157.                         if (j2[z] == 1)
  158.                         {
  159.                             h2[pos2] = z;
  160.                             pos2++;
  161.                         }
  162.                     }
  163.                     int s2 = 0;
  164.                     int liczba0 = 0;
  165.  
  166.                     tabw2 = new int[K2];
  167.                     for (int p = 0; p < K2; p++)
  168.                     {
  169.                        
  170.                         przesun();
  171.                         pokaz();
  172.                         xor();
  173.                     }
  174.                     void pokaz()
  175.                     {
  176.                         textBox5.Clear();
  177.                         for (int d = 0; d < tabw2.Length; d++)
  178.                         {
  179.                             textBox5.Text = textBox5.Text + tabw2[d].ToString();
  180.                         }
  181.                     }
  182.                     void przesun()
  183.                     {
  184.                         int[] demo2 = new int[j2.Length];
  185.                         demo2[0] = xor2;
  186.                         for (int c = 0; c < j2.Length; c++)
  187.                         {
  188.                             demo2[(c + 1) % demo2.Length] = j2[c];
  189.                         }
  190.                         tabw2[s2] = j2[j2.Length - 1];
  191.                         s2++;
  192.                         j2 = demo2;
  193.                     }
  194.                     void xor()
  195.                     {
  196.                         xor2 = 0;
  197.                         int[] temp2 = new int[pos2];
  198.                         for (int a = 0; a < pos2; a++)
  199.                         {
  200.                             temp2[a] = j2[h2[a]];
  201.                         }
  202.                         xor2 = ww2 ^ temp2[0];
  203.                         for (int a = 1; a < (temp2.Length); a++)
  204.                         {
  205.                             xor2 = xor2 ^ temp2[a];
  206.                         }
  207.                     }
  208.                 }
  209.                 else if (numer == k3 && numer > 0 && nazwa == "k3")
  210.                 {
  211.                     K3 = (2 * numer) - 1;
  212.                     var rand = new Random();
  213.                     j3 = new int[k3];
  214.                     textBox3.Clear();
  215.                     int pp3 = 0;
  216.                     for (int x = 0; x < k3; x++)
  217.                     {
  218.                         int b;
  219.                         b = rand.Next(0, 2);
  220.                         j3[x] = b;
  221.                         if (b == 1) pp3++;
  222.                     }
  223.                     h3 = new int[pp3];
  224.                     for (int i = 0; i < j3.Length; i++)
  225.                     {
  226.                         textBox3.Text = textBox3.Text + j3[i];
  227.                     }
  228.                     int pos3 = 0;
  229.                     for (int z = 0; z < j3.Length; z++)
  230.                     {
  231.                         if (j3[z] == 1)
  232.                         {
  233.                             h3[pos3] = z;
  234.                             pos3++;
  235.                         }
  236.                     }
  237.                     int s3 = 0;
  238.                     int liczba0 = 0;
  239.                     tabw3 = new int[K3];
  240.                     for (int p = 0; p < K3; p++)
  241.                     {
  242.                        
  243.                         przesun();
  244.                         pokaz();
  245.                         xor();
  246.                     }
  247.                     void pokaz()
  248.                     {
  249.                         textBox6.Clear();
  250.                         for (int d = 0; d < tabw3.Length; d++)
  251.                         {
  252.                             textBox6.Text = textBox6.Text + tabw3[d].ToString();
  253.                         }
  254.                     }
  255.                     void przesun()
  256.                     {
  257.                         int[] demo3 = new int[j3.Length];
  258.                         demo3[0] = xor3;
  259.                         for (int c = 0; c < j3.Length; c++)
  260.                         {
  261.                             demo3[(c + 1) % demo3.Length] = j3[c];
  262.                         }
  263.                         tabw3[s3] = j3[j3.Length - 1];
  264.                         s3++;
  265.                         j3 = demo3;
  266.                     }
  267.                     void xor()
  268.                     {
  269.                         xor1 = 0;
  270.                         int[] temp3 = new int[pos3];
  271.                         for (int a = 0; a < pos3; a++)
  272.                         {
  273.                             temp3[a] = j3[h3[a]];
  274.                         }
  275.                         xor3 = ww3 ^ temp3[0];
  276.                         for (int a = 1; a < (temp3.Length); a++)
  277.                         {
  278.                             xor3 = xor3 ^ temp3[a];
  279.                         }
  280.                     }
  281.                 }
  282.             }
  283.         }
  284.         void generowanie()
  285.         {
  286.             richTextBox1.Clear();
  287.             test = new int[liczba];
  288.             textBox1.Clear();
  289.             var rand1 = new Random();
  290.             int t1 = 0;
  291.             int bit1 = 0;
  292.             for (int x = 0; x < liczba; x++)
  293.             {
  294.                 bit1 = rand1.Next(0, 2);
  295.                 if (bit1 == 1) t1++;
  296.                 test[x] = bit1;
  297.             }
  298.             foreach (var it in test)
  299.             {
  300.                 richTextBox1.Text = richTextBox1.Text + it.ToString();
  301.             }
  302.             monobit0();
  303.             podciagi1();
  304.         }
  305.         void geffegene() // GENERATOR GEFFE
  306.         {
  307.             richTextBox2.Clear();
  308.             if (tabw1.Length > 0 && tabw2.Length > 0 && tabw3.Length > 0)
  309.             {
  310.                 int x = tabw1.Length; int y = tabw2.Length; int z = tabw3.Length;
  311.                 int[] l1 = tabw1;
  312.                 int[] l2 = tabw2;
  313.                 int[] l3 = tabw3;
  314.                 int max = Math.Max(x, Math.Max(y, z));
  315.                 int[] geff = new int[max];
  316.                 int x1, x2, x3, xr; x1 = x2 = x3 = xr = 0;
  317.                 int p11, p12, p13; p11 = p12 = p13 = 0;
  318.                 int n1(int i1)
  319.                 {
  320.                     int n11 = i1;
  321.                     if (n11 == 0)
  322.                     {
  323.                         n11 = 1;
  324.                     }
  325.                     else if (n11 == 1)
  326.                     {
  327.                         n11 = 0;
  328.                     }
  329.                     return n11;
  330.                 }
  331.                 for (int t = 0; t < max; t++)
  332.                 {
  333.                     int t1 = 0;
  334.                     if (p11 < tabw1.Length)
  335.                     {
  336.                         x1 = tabw1[p11];
  337.                         p11++;
  338.                     }
  339.                     else
  340.                     {
  341.                         x1 = tabw1[0];
  342.                         p11 = 0;
  343.                     }
  344.                     if (p12 < tabw2.Length)
  345.                     {
  346.                         x2 = tabw2[p12];
  347.                         p12++;
  348.                     }
  349.                     else
  350.                     {
  351.                         x2 = tabw2[0];
  352.                         p12 = 0;
  353.                     }
  354.                     if (p13 < tabw3.Length)
  355.                     {
  356.                         x3 = tabw3[p13];
  357.                         p13++;
  358.                     }
  359.                     else
  360.                     {
  361.                         x3 = tabw3[0];
  362.                         p13 = 0;
  363.                     }
  364.                     t1 = n1(x2);
  365.                     xr = ((x1 | x2) ^ (t1 | x3));
  366.                     geff[t] = xr;
  367.                 }
  368.                 foreach (var inti in geff)
  369.                 {
  370.                     richTextBox2.Text = richTextBox2.Text + inti.ToString();
  371.                 }
  372.             }
  373.         }
  374.        void startandgo()
  375.         {
  376.             richTextBox3.Clear();
  377.             int[] stopG = new int[tabw1.Length];
  378.             int l2 = 0; int l3 = 0; int xp = 0; int xr = 0; int wt1 = 0; int wt2 = 0;
  379.             for (int u = 0; u < tabw1.Length; u++)
  380.             {
  381.                 xp = tabw1[u];
  382.                 if (xp == 1)
  383.                 {
  384.                     l2++;
  385.                     if (l2 < tabw2.Length)
  386.                     {
  387.                         wt1 = tabw2[l2];
  388.                     }
  389.                     else
  390.                     {
  391.                         l2 = 0;
  392.                         wt1 = tabw2[0];
  393.                     }
  394.                     if (l3 < tabw3.Length)
  395.                     {
  396.                         wt2 = tabw3[l3];
  397.                     }
  398.                     else
  399.                     {
  400.                         l3 = 0;
  401.                         wt2 = tabw3[l3];
  402.                     }
  403.                     xr = wt1 ^ wt2;
  404.                     stopG[u] = xr;
  405.                 }
  406.                 else if (xp == 0)
  407.                 {
  408.                     l3++;
  409.                     if (l2 < tabw2.Length)
  410.                     {
  411.                         wt1 = tabw2[l2];
  412.                     }
  413.                     else
  414.                     {
  415.                         l2 = 0;
  416.                         wt1 = tabw2[0];
  417.                     }
  418.                     if (l3 < tabw3.Length)
  419.                     {
  420.                         wt2 = tabw3[l3];
  421.                     }
  422.                     else
  423.                     {
  424.                         l3 = 0;
  425.                         wt2 = tabw3[l3];
  426.                     }
  427.                     xr = wt1 ^ wt2;
  428.                     stopG[u] = xr;
  429.                 }
  430.             }
  431.             foreach (var item in stopG)
  432.             {
  433.                 richTextBox3.Text = richTextBox3.Text + item.ToString();
  434.             }
  435.         }
  436.         void shrinkinggene() // SHRINKING
  437.         {
  438.             richTextBox4.Clear();
  439.             if (tabw1.Length > 0 && tabw2.Length > 0)
  440.             {
  441.                 int x = tabw1.Length; int y = tabw2.Length;
  442.                 int[] l1 = tabw1;
  443.                 int[] l2 = tabw2;
  444.                 int[] shrink = new int[tabw1.Length];
  445.                 string shriS = "";
  446.                 int p11, p12; p11 = p12 = 0;
  447.                 int x1, x2, xr; x1 = x2 = xr = 0;
  448.                 for (int s = 0; s < x; s++)
  449.                 {
  450.                     x1 = tabw1[s];
  451.                     if (p11 < tabw2.Length)
  452.                     {
  453.                         x2 = tabw2[p11];
  454.                         p11++;
  455.                     }
  456.                     else
  457.                     {
  458.                         x2 = tabw2[0];
  459.                         p11 = 0;
  460.                     }
  461.                     if (x1 == 1)
  462.                     {
  463.                         shriS = shriS + x2.ToString();
  464.                     }
  465.                 }
  466.                 richTextBox4.Text = shriS;
  467.             }
  468.         }
  469.         void monobit0()
  470.         {
  471.             int licznik = 0;
  472.             foreach (var items in test)
  473.             {
  474.                 if (items == 1)
  475.                 {
  476.                     licznik++;
  477.                 }
  478.             }
  479.             if ((licznik > 9725) && (licznik < 10275))
  480.             {
  481.                 monobit.Text = "TEST ZALICZONY <-monobit->";
  482.                 monobit.BackColor = Color.Green;
  483.             }
  484.             else
  485.             {
  486.                 monobit.Text = "TEST NIEZALICZONY <-monobit->";
  487.                 monobit.BackColor = Color.Red;
  488.             }
  489.         }
  490.         void podciagi1()
  491.         {
  492.             int[] podc = new int[769]; int podc1 = 0;
  493.             int liczzera = 0; int liczjedynki = 0;
  494.             int tymcz = 0;
  495.             int[] tymcz0 = new int[26];int[] last = new int[6];
  496.             for(int e=1;e<test.Length+1;e++)
  497.             {
  498.                 if(test.Length-e>27)
  499.                 {
  500.                     if (!(e % 26 == 0))
  501.                     {
  502.                         tymcz0[tymcz] = test[e - 1];
  503.                         tymcz++;
  504.                     }
  505.                     else if (e % 26 == 0 && e != 0)
  506.                     {
  507.                         for (int g = 0; g < 26; g++)
  508.                         {
  509.                             if (tymcz0[g] == 1) liczjedynki++;
  510.                             else liczzera++;
  511.                             tymcz = 0;
  512.                         }
  513.                         if (liczzera == 26 || liczjedynki == 26)
  514.                         {
  515.                             if(podc1!=769)
  516.                             {
  517.                                 podc[podc1] = 1; podc1++;
  518.                             }
  519.                         }
  520.                         else
  521.                         {
  522.                             if(podc1!=769)
  523.                             {
  524.                                 podc[podc1] = 0; podc1++;
  525.                             }
  526.                         }
  527.                     }
  528.                 }  
  529.             }
  530.             if(podc.Contains(1))
  531.             {
  532.                 podciagi.Text = "TEST NIE ZALICZONY <-podciagi->";
  533.                 podciagi.BackColor = Color.Red;
  534.             }
  535.             else
  536.             {
  537.                 podciagi.Text = "TEST ZALICZONY <-podciagi->";
  538.                 podciagi.BackColor = Color.Green;
  539.             }
  540.         }
  541.         private void button7_Click(object sender, EventArgs e)
  542.         {
  543.             generowanie();
  544.         }
  545.         private void stopandgo_Click(object sender, EventArgs e)
  546.         {
  547.             startandgo();
  548.         }
  549.         private void shrinking_Click(object sender, EventArgs e)
  550.         {
  551.             shrinkinggene();
  552.         }
  553.         private void geffe_Click(object sender, EventArgs e)
  554.         {
  555.             geffegene();
  556.         }
  557.         private void button1_Click(object sender, EventArgs e)
  558.         {
  559.             lista();
  560.             losowe(k1,"k1");
  561.         }
  562.         private void button4_Click(object sender, EventArgs e)
  563.         {
  564.             lista();
  565.             losowe(k2,"k2");
  566.         }
  567.         private void button6_Click(object sender, EventArgs e)
  568.         {
  569.             lista();
  570.             losowe(k3,"k3");
  571.         }
  572.     }
  573. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top