![Alex Elyukov](/img/default-banner.jpg)
- 10
- 18 064
Alex Elyukov
เข้าร่วมเมื่อ 15 เม.ย. 2016
Канал создан для размещения видеозаписей по тематике блога www.alexelyukov.ru. Предполагается освещение вопросов касающихся программирования, алгоритмов и математики.
วีดีโอ
Строки и комплексные числа (4 урок)
มุมมอง 7167 ปีที่แล้ว
Представляю Вашему вниманию четвертый урок по Julia, который посвящен строкам и комплексным числам. Ссылка на блог: www.alexelyukov.ru
Операторы и простые функции в Julia (3 урок)
มุมมอง 7267 ปีที่แล้ว
Представляю Вашему вниманию третий урок по Julia, который посвящен операторам и простым функциям. Ссылка на блог: www.alexelyukov.ru
Простые типы в Julia (2 урок)
มุมมอง 1.4K7 ปีที่แล้ว
Представляю Вашему вниманию второй урок по Julia, который посвящен простым (базовым, встроенным) типам. Ссылка на блог: www.alexelyukov.ru
Введение в Julia (1 урок)
มุมมอง 3.2K7 ปีที่แล้ว
Это первый урок в курсе, посвященном математическому языку программирования Julia, в котором я приведу свои соображения на основе собственного опыта. Ссылка на блог: www.alexelyukov.ru
sam to ponial 4e naplel.
вот пацаны код на раст fn gcd(mut a: i32, mut b: i32) -> i32 { while b != 0 { let temp = b; b = a % b; a = temp; } return a; } fn gcd_extended(a: i64, b: i64) -> (i64, i64, i64) { if a == 0 { return (b, 0, 1); } let (gcd, x1, y1) = gcd_extended(b % a, a); let x = y1 - (b / a) * x1; let y = x1; (gcd, x, y) } fn encrypt(message: i64, e: i64, n: i64) -> i64 { mod_exp(message, e, n) } fn decrypt(ciphertext: i64, d: i64, n: i64) -> i64 { mod_exp(ciphertext, d, n) } fn mod_exp(mut base: i64, mut exp: i64, modulus: i64) -> i64 { let mut result = 1; base %= modulus; while exp > 0 { if exp % 2 == 1 { result = (result * base) % modulus; } exp >>= 1; base = (base * base) % modulus; } result } fn mod_inverse(e: i64, phi: i64) -> Option<i64> { let (gcd, x, _) = gcd_extended(e, phi); if gcd == 1 { // Ensure d is positive let d = (x % phi + phi) % phi; Some(d) } else { None // No modular inverse exists } } fn text_to_numbers(text: &str) -> Vec<i64> { text.chars().map(|c| c as i64).collect() } fn numbers_to_text(numbers: Vec<i64>) -> String { numbers.iter().map(|&n| n as u8 as char).collect() } fn main() { let p = 13; let q = 37; let n = p * q; let phi = (p - 1) * (q - 1); let e = 257; let d = mod_inverse(e, phi).unwrap_or_else(|| 0); println!("Public key: ({},{})", e, n); println!("Private key: ({},{})", d, n); let plaintext = "No one can understan this message hehehehehe"; println!("Original message: {}", plaintext); let plaintext_numbers = text_to_numbers(plaintext); let encrypted_numbers: Vec<i64> = plaintext_numbers.iter().map(|&x| encrypt(x, e, n)).collect(); println!("Encrypted message: {:?}", encrypted_numbers); let decrypted_numbers: Vec<i64> = encrypted_numbers.iter().map(|&x| decrypt(x, d, n)).collect(); let decrypted_message = numbers_to_text(decrypted_numbers); println!("Decrypted message: {}", decrypted_message); }
Первый шефрует, не общаясь со вторым, второй расшифровывает, не общаясь с первым... Оба они не вкурсе своих шифрований, иначе-это уже банальная передача секрета шифрования, то почему злоумышленник один не знает, как расшифровать??? Чем он отличается от того, кто расшифровывает???
Вот молодец! Я в восторге!
СУПЕР
Переворачивают ведро с водой, а дробь обращают.
Спасибо большое, все понятно 😊
Как же сложно, посмотрев это видео я понял насколько же я тупой😢
Большое тебе спасибо, добрый человек! Всё разжевал, хороший литературный язык, простой и понятный пример.
Вопрос: Есть ли такие составные числа с которыми алгоритм RSA работает корректно? Или нужны только простые? Меня не парит безопасность, в принципе можно ли зашифровать алгоритмом RSA, а затем правильно расшифровать если p и q составные или хоть одно составное? Если нет таких чисел и для корректной работы RSA нужны только простые p и q то возникает другой вопрос: А нафига тогда все эти тесты на простоту? Не проще ли взять два числа и если на них работает RSA то значит они простые? А если есть такие составные p и q на которых алгоритм работает корректно то дайте пример таких чисел :-)
Сможет расшифровать. Обычный частотный анализ. Надо кодировать еще
Расшифровать сможет, вопрос только сможет ли злоумышленник дожить до тех пор, когда сообщение будет расшифровано)
Как код работает?
Нихуя не понятно
наконец-то я понял этот алгоритм, в который не вдуплял ещё с первого курса. большое спасибо!
Хорошее разъяснение. Жаль только, что нет примера с цифрами.
Добрый день. Вы ведете частные уроки по Джулии?
Добрый день! По julia не веду, сейчас меня все больше интересуют функциональные языки и алгоритмы
@@stanislavserov8622 erlang, elixir, haskell, в основном эти
Будут ли уроки по циклам и массивам?
Боюсь уже говорить, что будет продолжение, так как времени катастрофически не хватает. Но вообще я планирую))
Сейчас я использую современный фортран, мне нравится этот язык. И мне стало интересно позаниматься с языком Julia. Я установил компилятор julia version 1.0.0, но не понимаю как скомпилировать файл, простейший hello world. Я получаю такой вывод: ~/проекты/Julia$ julia-stable hello_julia.jl ERROR: could not open file /home/usr-2/проекты/Julia/hello_julia.jl Stacktrace: [1] include at ./boot.jl:317 [inlined] [2] include_relative(::Module, ::String) at ./loading.jl:1038 [3] include(::Module, ::String) at ./sysimg.jl:29 [4] exec_options(::Base.JLOptions) at ./client.jl:229 [5] _start() at ./client.jl:421 Я установил так же среду Atom, но и в ней не могу ничего запустить. Пока Julia работает только в командной строке. Было бы интересно узнать, как осуществить компиляцию файла.
Добрый день, Вячеслав. К сожалению, мне недостаточно данных, чтобы полностью понять проблему. Можете попробовать запустить прямо в REPL посредством julia> include("/home/usr-2/проекты/Julia/hello_julia.jl"), так же можете попробовать установить более новую версию julia, я использую version 1.1.0
Добрый день! У меня есть в планах продолжить (да, спустя два года) снимать видеоуроки, так что, возможно, скоро появится продолжение.
Во хорошая идея
Сделайте продолжение, вы единственный на (RU) ютубе кто делает уроки по этому языку
Здравствуйте. Жалко, что бросили уроки делать. Начал изучать джулию так как Matlab, SciLab, Octave - не справляются с задачами атомистического моделирования, которые я решаю. Для меня джулия выход так как содержит большое количество стандартных математических функций и достаточно проста в освоении, но при этом имеет весьма низкий порог вхождения.
Темовская тема)) Автор пишы есчо, как говорят интернетах)