Как я уже говорил в недавнем посте, я начинал как самоучки программист C ++.
Вчера (на самом деле сегодня на очень ранний час, как 4 AM) Я играл с моей Atom, и я сделал что-то очень простое.
В принципе, это не очень нравится Bitcoin Адрес (как они, кажется, имеют длину 34 символов), шахта генерирует случайной потенциальные адреса с 35 символами.
Проверьте экран.
Это было генерации случайных потенциальные адреса за 10 часов, как сейчас, и он замирает это сделать, я сделал это так, что он делает, как 1000000000 адреса до окончания. Я также сделал условие, что если когда-нибудь два адреса совпадают, то программа должна остановиться и он не сделал (так что каждый адрес из Уникалена до сих пор).
Я отправляю код тоже! Я хочу некоторую обратную связь, пожалуйста.
Код:
#включают
#включают <строка>
#включают <случайный>
#включают
#включают <вектор>
используя патезрас;
класс Hash
{
общественности:
Хэш ()
{
m_letters = "abcdefghijklmnopqrstvwxyzABCDEFGHIJKLMNOPQRSTVWXYZ0123456789 :;";
m_hash = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
m_same = ложь;
m_hashes = 1000000000;
}
недействительные генерации ()
{
default_random_engine двигатель (время (0));
uniform_int_distribution<ИНТ> случайное (0, 61);
для (INT I = 0; я < 35; я ++)
{
m_random = случайный (двигатель);
m_hash [I] = m_letters [m_random];
}
соиЬ << m_hash << епсИ;
}
abortThis недействительными ()
{
соиЬ << "Обнаружены два хэш при 100 \% ЖЕ ДАННЫХ" << епсИ;
в то время как (1)
{
}
}
аннулированию massGenerate ()
{
default_random_engine двигатель (время (0));
uniform_int_distribution<ИНТ> случайное (0, 61);
для (INT I = 0; я < m_hashes; я ++)
{
для (INT I = 0; я < 35; я ++)
{
m_random = случайный (двигатель);
m_hash [I] = m_letters [m_random];
}
для (авто с: m_massVerify)
{
если (== m_hash с)
abortThis ();
}
m_list.push_back (m_hash);
m_massVerify.push_back (m_hash);
соиЬ << m_hash << епсИ;
}
соиЬ << "СГЕНЕРИРОВАННЫМИ " << m_hashes << " РАЗНЫЕ хэшей. Успешно" << епсИ;
}
show_all недействительный ()
{
для (авто m_data: m_list)
соиЬ << m_data << епсИ;
}
частный:
INT m_random;
неподписанных INT m_hashes;
строка m_letters;
строка m_hash;
строка m_current;
BOOL m_same;
вектор<строка> m_massVerify;
вектор<строка> m_list;
};
Int основных ()
{
Hash тест;
test.massGenerate ();
}
Специально SEE конструктор по умолчанию класса Hash, а функция massGenerate.#включают <строка>
#включают <случайный>
#включают
#включают <вектор>
используя патезрас;
класс Hash
{
общественности:
Хэш ()
{
m_letters = "abcdefghijklmnopqrstvwxyzABCDEFGHIJKLMNOPQRSTVWXYZ0123456789 :;";
m_hash = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
m_same = ложь;
m_hashes = 1000000000;
}
недействительные генерации ()
{
default_random_engine двигатель (время (0));
uniform_int_distribution<ИНТ> случайное (0, 61);
для (INT I = 0; я < 35; я ++)
{
m_random = случайный (двигатель);
m_hash [I] = m_letters [m_random];
}
соиЬ << m_hash << епсИ;
}
abortThis недействительными ()
{
соиЬ << "Обнаружены два хэш при 100 \% ЖЕ ДАННЫХ" << епсИ;
в то время как (1)
{
}
}
аннулированию massGenerate ()
{
default_random_engine двигатель (время (0));
uniform_int_distribution<ИНТ> случайное (0, 61);
для (INT I = 0; я < m_hashes; я ++)
{
для (INT I = 0; я < 35; я ++)
{
m_random = случайный (двигатель);
m_hash [I] = m_letters [m_random];
}
для (авто с: m_massVerify)
{
если (== m_hash с)
abortThis ();
}
m_list.push_back (m_hash);
m_massVerify.push_back (m_hash);
соиЬ << m_hash << епсИ;
}
соиЬ << "СГЕНЕРИРОВАННЫМИ " << m_hashes << " РАЗНЫЕ хэшей. Успешно" << епсИ;
}
show_all недействительный ()
{
для (авто m_data: m_list)
соиЬ << m_data << епсИ;
}
частный:
INT m_random;
неподписанных INT m_hashes;
строка m_letters;
строка m_hash;
строка m_current;
BOOL m_same;
вектор<строка> m_massVerify;
вектор<строка> m_list;
};
Int основных ()
{
Hash тест;
test.massGenerate ();
}
Вы также можете найти здесь код НО НЕ компилироваться ONLINE IDE. http://cpp.sh/7g7o
ПОЖАЛУЙСТА,
Не комментарий о том, что с помощью патезраса; Я знаю, что это плохо.
Не комментируйте обо мне, используя один файл вместо .cpp & .hpp, я знаю, что это тоже плохо.
Не комментируйте об имени переменных, я знаю, что это хорошо
То, что я бы действительно ИНТЕРЕСУЕТ, это найти кусок кода, который генерирует Bitcoin АДРЕС в Bitcoin CORE!
Я ПОЛНОСТЬЮ известно, что сгенерированные адреса не начинается с 1 или 3. Это было сделано специально!