欧几里得算法及其扩展,RSA 算法
一、前言
2018年9月24日,阿蒂亚爵士完成黎曼猜想证明的演讲(黎曼猜想证明现场:3分钟核心讲解 提问陷沉默)。证明正确与否自有专业人士来解读,但其中涉及到的一些数学知识很有意思。对整数做因数分解是很困难的事情,所以人们把两个大质数相乘的乘积公开作为加密密钥,即RSA算法的原理。而RSA算法又使用到欧几里得算法的扩展,记一下。
2018年9月24日,阿蒂亚爵士完成黎曼猜想证明的演讲(黎曼猜想证明现场:3分钟核心讲解 提问陷沉默)。证明正确与否自有专业人士来解读,但其中涉及到的一些数学知识很有意思。对整数做因数分解是很困难的事情,所以人们把两个大质数相乘的乘积公开作为加密密钥,即RSA算法的原理。而RSA算法又使用到欧几里得算法的扩展,记一下。
01背包问题是在资源有限的情况下,实现收益最大化的一类问题。经典的场景是探险家偶然进入一片宝藏,每一件宝贝都是独一无二的,具有自己的价值和重量。由于背包容量有限,只能选择某几样宝贝。此类问题归属于 动态规划。
Balanced Binary Tree (判断是否为平衡二叉树)
https://leetcode.com/problems/balanced-binary-tree/
英文:Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
中文:给一个二叉树,判断是否为平衡二叉树。
Reverse String (反转字符串)
https://leetcode.com/problems/reverse-string/
英文:Write a function that takes a string as input and returns the string reversed.
Example:
Given s = “hello”, return “olleh”.
中文:反转一个字符串。例如”hello”,转化为”olleh”。
Factorial Trailing Zeroes (阶乘后缀0的数目)
https://leetcode.com/problems/factorial-trailing-zeroes/
英文:Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
中文:给一个整型数字n,返回n!后缀0的数目。需要对数级别的时间复杂度。
例如:10! = 3628800,后缀有两个0,返回2。
Merge Two Sorted Lists (合并有序链表)
https://leetcode.com/problems/merge-two-sorted-lists/
英文:Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
中文:有两个有序链表,将之合并为一个有序链表。
Add Digits (非负整数各位相加)
https://leetcode.com/problems/add-digits
英文:Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.
中文:有一个非负整数num,重复这样的操作:对该数字的各位数字求和,对这个和的各位数字再求和……直到最后得到一个仅1位的数字(即小于10的数字)。
例如:num=38,3+8=11,1+1=2。因为2小于10,因此返回2。