Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2015, 21:33   #1
юлия117
 
Регистрация: 12.04.2012
Сообщений: 7
По умолчанию гаммирование (нужно разобрать код)

Код:
public class GPSCH
    {
        const int lfsrLength = 7;
        const int m = 65536;
        const int a = 65535;
        const int b = 107;

        int _seed = 0;
        string _feedback;
        RichTextBox richTextBox;
        public GPSCH(string Bits, string FeedBack, RichTextBox RichTextBox)
        {
            for (int i = 0; i < lfsrLength; i++)
            {
                if (Bits[i] == '1')
                    _seed |= 1 << (lfsrLength-1 - i);
            }
            _feedback = FeedBack;
            richTextBox = RichTextBox;
        }

        private bool lfsrGetBit()
        {
            _seed >>= 1;
            richTextBox.Text += "ГПСЧ: линейный сдвиговый регистр" + "\n";
            richTextBox.Text += Convert.ToString(_seed, 2).PadLeft(7, '0') + "\n";
            bool rFirst = Convert.ToBoolean(_seed % 2);
            bool rLast = rFirst ^ Convert.ToBoolean((_seed << lfsrLength - Int32.Parse(_feedback.Substring(_feedback.Length-1, 1)))
                                                    >> lfsrLength - 1);
            for(int i = 0; i < _feedback.Length - 1;  i++)
            {
                rLast ^= Convert.ToBoolean((_seed << lfsrLength - Int32.Parse(_feedback.Substring(i, 1))) >> lfsrLength-1);
            }
            if (rLast)
                _seed |= (1 << lfsrLength - 1);

            richTextBox.Text += "7й бит: " + Convert.ToInt32(rLast).ToString() + "\n";
            richTextBox.Text += "Выход:  " + Convert.ToInt32(rFirst).ToString() + "\n\n";
            return rFirst;
        }

        private UInt16 lkgGetInt16()
        {
            UInt16 seed2 = 0;
            for (int i = 0; i < 16; i++)
            {
                if (lfsrGetBit())
                {
                    seed2 |= Convert.ToUInt16(1 << (15 - i));
                }
            }
            richTextBox.Text += "ГПСЧ: конгруэнтный генератор a: " + a + " b: " + b + "\n";
            richTextBox.Text += "Yi-1:" + seed2 + ": " + Convert.ToString(seed2, 2).PadLeft(16, '0') + "\n";
            seed2 = Convert.ToUInt16(((UInt64)(a * seed2 + b)) % m);
            richTextBox.Text += "Yi:  " + seed2 + ": " + Convert.ToString(seed2, 2).PadLeft(16, '0') + "\n\n";
            return seed2;
        }

        public UInt64 GetNext()
        {
            UInt64 r = 0;
            for (int i = 0; i < 4; i++)
            {
                UInt64 ui = 0;
                ui |= lkgGetInt16();
                r |= ui << 16*i;
            }
            return r;
        }
    }

Последний раз редактировалось Stilet; 05.02.2015 в 08:06.
юлия117 вне форума Ответить с цитированием
Старый 04.02.2015, 22:47   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

ну класс ниче такой ... че дальше то?
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 04.02.2015, 22:58   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Да не, фигня класс, выводит прям в текстбокс (еще и рич зачем-то), хотя задача его видимо совсем не в этом.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу разобрать код Gumi Общие вопросы по Java, Java SE, Kotlin 4 24.09.2014 11:22
Не могу разобрать код Gumi JavaScript, Ajax 3 23.09.2014 16:44
Разобрать код С++ Al-chan Помощь студентам 6 24.02.2013 21:15
Нужно разобрать код на php htior PHP 5 08.12.2012 17:06