RainSun 时光日记 
  • 主页
  • 归档
  • 分类
  • 标签
  • 关于
  •     
循环赛日程安排

循环赛日程安排

循环赛日程安排 – 170521328 赵英博问题背景(自定)设有n=2^k个选手要进行循环赛,设计一个满足以下要求的比赛日程表: 每个选手必须与其他n-1个选手各比赛一次 每个选手一天只能比赛一次 问题分析每个选手必须与其他选手比赛一次,那么就设计一个n×(n-1)的二维表,其中,(i, j)表示和第i个选手在第j天比赛的选手。 我们可以对这个二维表进行分割,分割成两个部分,譬如n=2^k个选手的日程表就可以分成两个n/2=2^(k-1)的日程表 在进行递归分割 分割直到只剩下两个选手 比赛日程表在这个时候就很简单了,让这两个人直接进行比赛就好了 假设有八个人比赛 整个求解过程是自底向上的迭代过程,其中表格c左上角和左下角分别为选手1到选手8前三天的比赛日程 将左上角复制到右下角,将左下角复制到右上角,就安排了选手1到选手8后四天的比赛日程 表格a 1 2 2 1 表格b 1 2 3 4 2 1 4 3 3 4 1 2 4 3 2 1 表格c 1 2 3 4 5 6 7 8 2 1 4 3 6 5 8 7 3
 2020-06-30   算法  循环赛    算法 
JS基础类型API整理--Array

JS基础类型API整理--Array

JavaScriptArrayarray.at方法接收一个整数值并返回该索引的项目,允许正数和负数。负整数从数组中的最后一个项目开始倒数。 const array1 = [5, 12, 8, 130, 44]; let index = 2; console.log(`Using an index of ${index} the item returned is ${array1.at(index)}`); // expected output: "Using an index of 2 the item returned is 8" index = -2; console.log(`Using an index of ${index} item returned is ${array1.at(index)}`); // expected output: "Using an index of -2 item returned is 130" array.concat用于合并两个或更多个数组,此方法不改变现有的数组,而是返回一个新的数组。
 2020-06-29   语言  js    js  基础 
你不知道的JavaScript(下)学习笔记

你不知道的JavaScript(下)学习笔记

JavaScript基础prompt用法var input = prompt(text,defaultText) text 可选。要在对话框中显示的纯文本(而不是 HTML 格式的文本)。defaultText 可选。默认的输入文本。 比较如果两边任意一边出现 true 或者 false 使用 === 如果两边任意一边可能是特定值0,"", [] 使用 === 剩下的所有情况,使用 == 对于引用类型来说,比较仅仅是比较其引用是否是同一个,另外在和字符串比较时,数组会自动转成字符串 var a = [1,2,3] var b = [1,2,3] var c = "1,2,3" console.log(a == b) // false console.log(a == c) // true console.log(b == c) // true switch语句switch(a) { case 2: case 10: // 2 或者 10 执行 break; default: // 条件都不满
 2020-06-27   语言  js    js  基础 
你不知道的JavaScript(上)学习笔记

你不知道的JavaScript(上)学习笔记

JavaScript作用域和闭包LHS 和 RHSL 和 R 代表左右 LHS 赋值操作的目标是谁RHS 谁是赋值操作的源头 变量出现在赋值操作的左边对其进行LHS查询,即试图找到该容器并可对其进行赋值操作,与其原先是否有内容无关 变量出现在赋值操作的右边对其进行RHS查询,即试图找到该容器中的内容 ReferenceError同作用域判别失败有关严格模式下进行LHS查询失败就会出现,非严格模式下会自动创建一个变量 RHS查询失败一定会报这个错误 TypeError代表作用域判别成功了但是对结果的操作是非法的或者不合理的 LHS查询是从底层一层一层向上找的,所以下一级的变量会对上级的变量形成“遮蔽”现象 eval(<str>)中间的str可以当成一开始就写在那个位置的代码使用,可以对上一级的变量进行“遮蔽” with(obj){ a = 1 } => obj.a = 1 with会创建一个作用域,并把obj的所有属性和方法放进去,进行的是正常的LHS查询,但是这就导致了当obj中没有被赋值的属性的时候就会在全局作用域中创建一个变量导致变量泄露到全局作用域即obj.
 2020-04-06   语言  js    js  基础 
TypeScript学习笔记(高级篇

TypeScript学习笔记(高级篇

TypeScript高级TypeScript入门教程 写在前边这只是一个笔记,并不是教程,阮一峰大佬写的教程链接在上边 类型别名类型别名用来给一个类型起个新名字。 type Name = string; type NameResolver = () => string; type NameOrResolver = Name | NameResolver; function getName(n: NameOrResolver): Name { if (typeof n === 'string') { return n; } else { return n(); } } 上例中,我们使用 type 创建类型别名。 类型别名常用于联合类型。 字符串字面量类型字符串字面量类型用来约束取值只能是某几个字符串中的一个。 type EventNames = 'click' | 'scroll' | 'mousemove'; function handleEvent(ele
 2020-04-06   语言  ts    高级  ts 
TypeScript学习笔记(基础篇2

TypeScript学习笔记(基础篇2

TypeScript基础TypeScript入门教程 写在前边这只是一个笔记,并不是教程,阮一峰大佬写的教程链接在上边 函数 函数声明定义 function sum(x: number, y: number): number { return x + y; } 输入多余的(或者少于要求的)参数,是不被允许的 函数表达式定义 let mySum: (x: number, y: number) => number = function (x: number, y: number): number { return x + y; }; 注意不要混淆了 TypeScript 中的 => 和 ES6 中的 =>。在 TypeScript 的类型定义中,=> 用来表示函数的定义,左边是输入类型,需要用括号括起来,右边是输出类型。在 ES6 中,=> 叫做箭头函数,应用十分广泛,可以参考 ES6 中的箭头函数。 用接口定义函数的形状 interface SearchFunc { (source: string, subString: string
 2020-04-05   语言  ts    基础  ts 
TypeScript学习笔记(基础篇1

TypeScript学习笔记(基础篇1

TypeScript基础TypeScript入门教程 写在前边这只是一个笔记,并不是教程,阮一峰大佬写的教程链接在上边 安装cnpm install -g typescript编译tsc hello.ts 我们约定使用 TypeScript 编写的文件以 .ts 为后缀,用 TypeScript 编写 React 时,以 .tsx 为后缀。 注意TypeScript 中,使用 : 指定变量的类型,: 的前后有没有空格都可以。 TypeScript 只会进行静态检查,如果发现有错误,编译的时候就会报错。如果要在报错的时候终止 js 文件的生成,可以在 tsconfig.json 中配置 noEmitOnError 即可。关于 tsconfig.json,请参阅官方手册 基础JavaScript 的类型分为两种:原始数据类型(Primitive data types)和对象类型(Object types)。 原始数据类型包括:布尔值、数值、字符串、null、undefined 以及 ES6 中的新类型 Symbol。 布尔值boolean let isDone: boolean =
 2020-04-05   语言  ts    基础  ts 
Koa学习笔记

Koa学习笔记

应用安装cnpm install koa --savehello-worldconst Koa = require('koa'); const app = new Koa(); app.use(async ctx => { ctx.body = 'Hello World'; }); app.listen(3000); 中间件使用yield以及next,当一个中间件调用next()函数时,函数挂起并控件传递给定义的下一个中间件。在没有更多的中间件执行下游之后,堆栈将退出,并且每个中间件被恢复以执行其上游行为。 const Koa = require('koa'); const app = new Koa(); const one = (ctx, next) => { console.log('>> one'); next(); console.log('<< one'); } const two = (ctx, next) => { con
 2020-04-05   框架  koa    js  Web后端 
树莓派3b安装aria2

树莓派3b安装aria2

aria2安装aria2sudo apt-get install aria2配置aria2的文件mkdir ~/.aria2 touch ~/.aria2/aria2.session mkdir /home/pi/data/aria2 mkdir /home/pi/data/aria2/download nano ~/.aria2/aria2.confconf文件里边写 dir=/home/pi/data/aria2/download disable-ipv6=true enable-rpc=true rpc-allow-origin-all=true rpc-listen-all=true continue=true input-file=/home/pi/.aria2/aria2.session save-session=/home/pi/.aria2/aria2.session max-concurrent-downloads=5 save-session-interval=60 peer-id-prefix=-TR2770- user-agent=Transmission/2
 2020-04-04   树莓派3b  aria2    树莓派3b  aria2 
docker学习笔记

docker学习笔记

docker查看全部网桥 docker network ls查看某个网桥 docker network inspect <name>创建一个名为lacus的网桥 docker network create --driver bridge lacus允许指定网段 上一句指定参数在名之前 --subnet 172.22.16.0/24 --gateway 172.22.16.1删除lacus网桥 docker network rm lacus连接到lacus网桥 --network=lacus 容器间通信的三种方式IP通信 只要放在了一个网桥下就可以通过ip进行访问了 Docker DNS Server docker内嵌了DNS Server,只要使用--name=<name>指定容器名并且绑定在一个网桥中就可以使用名字ping -c 3 name连通 使用 docker DNS 有个限制:只能在 user-defined 网络中使用。 joined 容器 通过--network=container:<name>指定jointed容器 实例运行por
 2020-04-01   工具  docker    linux  docker 
12345

搜索

Hexo Fluid
 总访问量 次   总访客数 人 
吉ICP备18005655号 | 吉公网安备 22010202000634号