- 博客(78)
- 收藏
- 关注
原创 K-MEANS
import randomimport mathfrom matplotlib import pyplot as plt# 生成数据DATA = [[random.randint(-100, -50) for _ in range(2)] for __ in range(100)]for _ in range(100): DATA.append([random.randint(50, 100) for _ in range(2)])random.shuffle(DATA)EPS =
2021-12-03 09:35:14 1334
原创 利用pytorch实现图卷机网络
import torchimport torch.nn.functional as Ffrom torch_geometric.nn import GCNConvfrom torch_geometric.datasets import Planetoiddataset = Planetoid(root='/tmp/Cora', name='Cora')class Net(torch.nn.Module): def __init__(self): super(Net, s
2021-11-09 18:48:39 1008
原创 决策树公式推导
信息熵:Ent(D)=−∑k=1∣y∣pklog2pkEnt(D) = -\sum ^{\lvert y \rvert}_{k=1} p_k \log_2 p_kEnt(D)=−∑k=1∣y∣pklog2pk信息增益:Gain(D,a)=Ent(D)−∑v=1V∣Dv∣∣D∣Ent(Dv)Gain(D, a) = Ent(D) - \sum_{v=1}^V \frac{\lvert D^v \rvert}{\lvert D \rvert} Ent(D^v)Gain(D,a)=Ent(D)−∑v=
2021-10-26 19:11:35 239
原创 决策树——好瓜
import math# 属性的取值范围(0~n-1)data = [[0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 1, 0], [1, 0, 1, 1], [0, 1, 0, 0], [0, 1, 0, 1], [1, 1, 1, 0], [0, 1, 1, 1], [0, 1, 0, 1]]label = [1, 1, 0, 1, 0, 1, 0
2021-10-22 11:17:38 159
原创 强化学习——评论家
import gym, osfrom itertools import countimport paddleimport paddle.nn as nnimport paddle.optimizer as optimimport paddle.nn.functional as Ffrom paddle.distribution import Categoricalprint(paddle.__version__)device = paddle.get_device()env = gym
2021-10-21 16:33:04 104
原创 神经网络识别数字
import paddlefrom paddle.nn import Linearimport paddle.nn.functional as Fimport osimport numpy as npimport matplotlib.pyplot as plt# train_dataset = paddle.vision.datasets.MNIST(mode='train')# train_data0 = np.array(train_dataset[0][0])# train_la
2021-10-19 19:32:28 198 1
原创 神经网络识别数字
from paddle.batch import batchimport paddle.nn.functional as Fimport numpy as npimport matplotlib.pyplot as pltfrom paddle.nn import Linearfrom paddle.nn.functional.common import padfrom paddle.vision.transforms import ToTensortransform = ToTensor(
2021-10-15 16:27:32 114
原创 主成分分析
import numpy as npdata = np.array([[2.5, 2.4], [0.5, 0.7], [2.2, 2.9], [1.9, 2.2], [3.1, 3.0], [2.3, 2.7], [2, 1.6], [1, 1.1], [1.5, 1.6], [1.1, 0.9]])x1 = sum(data[:, 0]) / 10.0y1 = sum(data[:, 1]) / 10.0DataAdjust = data - [x1,
2021-10-10 09:52:03 112
原创 旋度的散度恒为0
∇×A=∣lx^y^z^∂∂x∂∂y∂∂zAxAyAz∣=x^⋅∂Az∂y+y^⋅∂Ax∂z+z^⋅∂Ay∂x−z^⋅∂Ax∂y−x^⋅∂Ay∂z−y^⋅∂Az∂x=x^(∂Az∂y−∂Ay∂z)+y^(∂Ax∂z−∂Az∂x)+z^(∂Ay∂x−∂Ax∂y)\nabla \times A = \begin{vmatrix}{l}\hat x & \hat y & \hat z \\ \frac{\partial}{\partial x} & \frac{\partial}{\par
2021-10-07 22:03:34 746
原创 隐马尔可夫模型
weather = ['Rainy', 'Sunny']activity = ['walk', 'shop', 'clean']transition_probability = [[0.7, 0.3], [0.4, 0.6]]emission_probability = [[0.1, 0.4, 0.5], [0.6, 0.3, 0.1]]observations = [0, 1, 2]res = []last_probability = [0.6, 0.4]father = [[] fo.
2021-09-29 10:53:42 188 2
原创 改进版欧拉算法
import matplotlib.pyplot as pltx, y = 0.0, 1.0tarX = 10.0step = 0.1X, Y = [x], [y]def f(x:float, y:float): return y - 2 * x / ywhile x <= tarX: k1 = f(x, y) k2 = f(x + step, y + k1 * step) y = y + 0.5 * (k1 + k2) * step x =
2021-09-24 09:18:12 233
原创 全链接神经网络
import numpy as npdelta = 1.0class Neuron: def __init__(self, lastLayerNodeNumber: int) -> None: self.n = lastLayerNodeNumber self.w = [np.random.rand() for _ in range(lastLayerNodeNumber)] @staticmethod def sigmod(x: fl
2021-09-23 20:47:25 140 1
原创 神经网络公式推导
![在这里插入图片描述](https://img-blog.csdnimg.cn/2efc2ebbc3034de59802a82f2bcc3ecb.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQ2hhbnQgTWVl,size_20,color_FFFFFF,t_70,g_se,x_16, style=“zoom:50%;” )规定yijy_{ij}yij为第iii层网络第
2021-09-17 11:40:37 757
原创 欧拉公式以及凉鞋问题
欧拉公式以及凉鞋问题欧拉公式代码import matplotlib.pyplot as pltx, y = 0.0, 1.0step = 0.1def f(x:float, y:float): return y - 2 * x / yX, Y = [x], [y]while x < 10.0: k = f(x, y) y = y + k * step x = x + step X.append(x) Y.append(y)pr
2021-09-16 17:06:50 134
原创 感知器算法
感知器算法公式推导Li=(σ(Σj=02xjiωj)−ti)2L_{i}=(\sigma(\Sigma_{j=0}^{2}x^{i}_{j}\omega_{j})-t_{i})^{2}Li=(σ(Σj=02xjiωj)−ti)2.∇i=dLdωi=2(σ(Σj=02xjiωj)−ti)σ(Σj=02xjiωj)(1−σ(Σj=02xjiωj))xij\nabla_{i}=\frac{dL}{d\omega_{i}}=2(\sigma(\Sigma_{j=0}^{2}x^{i}_{j}\ome
2021-09-10 09:45:55 167
原创 20210901作业
文章目录numpy array的一些基本操作numpy的广播机制聚合函数的使用矩阵相乘矩阵的索引与切片聚合矩阵的转置生成高维数组数组的拆分垂直拆分水平拆分dsplitnumpy基本加减和取行操作矩阵删除、插入、尾部添加操作delete函数参数列表示例insert函数参数列表示例append函数参数列表示例利用numpy的chioce生成数组参数列表示例argmax:获取数组中最大值的索引值参数列表示例linspace的用法参数列表示例numpy array的一些基本操作data = np.array([
2021-09-03 16:36:26 140
原创 20210903作业
import numpy as np'''52104 3 3001600 3 3302400 3 3691416 2 2323000 4 540'''X = [[1, 2104, 3], [1, 1600, 3], [1, 2400, 3], [1, 1416, 2], [1, 3000, 4]]T = [300, 330, 369, 232, 540]theta = [1.0, 1.0, 1.0]alpha = 0.000001e1
2021-09-03 09:33:22 120
原创 2021牛客暑期多校训练营4
2021牛客暑期多校训练营4C. LCS#include <iostream>#include <cstring>#include <algorithm>#include <string>using namespace std;const int N = 1005;int f[N][N];int lcs(string &a, string &b, int n) { for (int i = 1; i <=
2021-07-27 10:29:02 118
原创 UVA129-困难的串-Krypton Factor
UVA129-困难的串-Krypton Factor题意让你用前L个字母来构造出字典序为n的字符串,要求这个字符串满足:字符串中不包含两个相邻的重复子串。思路思路非常简单,利用DFS来枚举串,如果枚举出来的串符合要求就继续向下递归,否则回溯。这里比较麻烦的是判断字符串中到底存不存在相邻的重复子串,这里lrj给出了比较好的思路,非常值得借鉴:因为在之前找到的字符串中一定不存在相邻的重复子串,因此新得到的字符串唯一可能存在相邻的重复子串的地方就是新添加的字符所在的子串中,因此只需要枚举字符串的后缀,看后
2021-07-03 21:35:53 194
原创 DFS经典-八皇后中判断位置是否合法的问题
DFS经典-八皇后中判断位置是否合法的问题对于是否在同一行同一列的判断这里不多赘述。判断两个点是否在同一对角线中在平面直角坐标系中,一个从左上到右下的直线可以写为y=−x+by=-x+by=−x+b,由此可以得到x+y=bx+y=bx+y=b,由b就可以确定出一条直线来;同理一个从左下到右上的直线可以写为y=x+by=x+by=x+b,因此y−xy-xy−x就可以唯一确定一条直线。因此可以用一个数组来表示两条对角线上是否已经有皇后了。需要注意的是y−xy-xy−x有可能变为负数,所以加上一个n变为y−
2021-07-03 19:51:08 296 2
原创 枚举排列和子集生成
枚举排列和子集生成生成1-n的全排列使用递归生成定义一个函数void print_permutation(int n, int *A, int cur);,其中n为全排列中n的大小,A为生成的序列,cur为当前应该生成序列中的第几个数字。递归的终止条件为:cur == n;每次递归如果没有终止,那么就枚举每个没有在A中出现的数字,将它填到A中并进行下一层递归。#include <iostream>using namespace std;void print_permutation
2021-07-03 18:46:39 97
原创 Pagerank、Random Walk、Genetic Algorithm
Pagerank算法思想在互联网中,如果一个网页被很多其他网页所链接,说明它受到了普遍的承认和信赖,那么它的排名就会比较高,即它的pagerank比较高。对于每个网页自身而言,它的重要程度由所有链接到它的网页贡献而来。对于一个网页,它的pagerank越大,那么它“说话”的“分量”也会越大,因此如果它链接到了一个其他网页,那么它对这个网页pagerank的贡献也会越大;相对的如果一个网页的pagerank较低,那么它能够给它链接到的网页贡献的pagerank就会比较小。在整个互联网中会出现悬挂点以及
2021-06-29 20:23:57 426
原创 树形dp-没有上司的舞会
树形dp-没有上司的舞会题目某大学有nnn个职员,编号为 1,2...n1,2...n1,2...n.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数rir_iri,但是呢,如果某个职员的直接上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请你编程计算,邀请哪些职员可以使快乐指数最大,求最大的快乐指数.思路从根节点开始dfs,dfs到叶节点设置叶节点的状态之后回溯转移。
2021-05-25 10:03:07 73
原创 CF1529-B. Sifid and Strange Subsequences
CF1529-B. Sifid and Strange Subsequences题意题目定义了奇怪数组: 对于数组中任意的两个元素aia_iai、aja_jaj,如果∣ai−aj∣≥max{a1,a2,...,ak}|a_i-a_j|\ge max\{a_1, a_2,...,a_k\}∣ai−aj∣≥max{a1,a2,...,ak},就称这个数组为奇怪数组。现在给你一个长度为nnn的数组aaa,让你找出aaa的一个最长子序列,并且这个子序列为奇怪数组。思路可以得到的两个很明
2021-05-25 09:24:02 140
原创 CF1529-A. Eshag Loves Big
CF1529-A. Eshag Loves Big Arrays题意给出一个长度为nnn的数组aaa,你可以对这个数组进行任意次数如下操作: 选中数组中的任意数量的元素,取这些元素的平均值,然后将取出的这些元素中大于平均数的数字删掉。问最多可以删掉多少个元素。思路找出数组中的最小值,只要是非最小值的元素和最小值取平均值,那么非最小值的元素一定是大于平均值的。因此答案就是数组中元素的总数量减去数组中最小值的数量。代码#include <iostream>const int
2021-05-25 08:43:42 140
原创 洛谷P2114-起床困难综合症
起床困难综合症题目21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳。作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争。通过研究相关文献,他找到了该病的发病原因:在深邃的太平洋海底中,出现了一条名为 drd 的巨龙,它掌握着睡眠之精髓,能随意延长大家的睡眠时间。正是由于 drd 的活动,起床困难综合症愈演愈烈,以惊人的速度在世界上传播。为了彻底消灭这种病,atm 决定前往海底,消灭这条恶龙。历经千辛万苦,atm 终于来到了 drd 所在的地方,准备与其
2021-05-24 22:01:00 139
原创 成对变换—取图小技巧
成对变换—取图小技巧对于任意一个非负整数nnn,如果nnn为整数那么n xor 1=n−1n\space xor\space 1=n-1n xor 1=n−1,否则如果为负数则n xor 1=n+1n\space xor\space 1=n+1n xor 1=n+1.对于存储在链式前向星的无向图或者双向图,我们分别将uuu到vvv的边和vvv到uuu的边存储在数组中的nnn和n+1n+1n+1处(实际上大部分时间我们也都是这
2021-05-24 21:35:08 168
原创 lowbit运算
lowbit运算定义lowbit(n)运算定义为非负整数n在二进制表示下“最低位的1及其后边的0”构成的数字。例如20=(10100)220=(10100)_220=(10100)2,则lowbit(20)=2lowbit(20)=2lowbit(20)=2.表达式lowbit(n)=n&−n=n&(~n+1)lowbit(n)=n\&-n=n\&(~n+1)lowbit(n)=n&−n=n&(~n+1)证明对于任意一个二进制数字,例如1100
2021-05-24 21:22:39 452 1
原创 P2114 [NOI2014] 起床困难综合症
#include <iostream>#include <cstring>#include <string>typedef long long LL;std::string s;void solve() { LL n, m, t; std::cin >> n >> m; LL zeros = 0, ones = 1LL * 0xffffffff; for (int i = 0; i < n; i
2021-05-24 20:46:58 67
原创 AcWing 90. 64位整数乘法
#include <iostream>#include <cstring>typedef long long LL;LL f(LL a, LL b, LL p) { LL res = 0; while (b) { if (b & 1) res = (res + a) % p; b >>= 1; a = (a + a) % p; } return res;}void so
2021-05-24 19:56:14 61
原创 AcWing 89. a^b
#include <iostream>#include <cstring>typedef long long LL;LL qpow(LL a, LL b, LL p) { if (b == 0) return 1 % p; LL res = 1; while (b) { if (b & 1) res = res * a % p; b >>= 1; a = a * a % p;
2021-05-24 19:51:34 75
原创 CF1498-B.Box Fitting
CF1498-B.Box Fitting题意给出nnn个长条,每个长条保证可以表示为2x2^x2x的形式,问你如果一个宽度为www的盒子最少要多高才能装下这些长条。思路贪心。将长条按照长度从大到小排序,对于每一层我们尽量将它装满再装下一层。可以用multisetmultisetmultiset维护每一层剩余的空间。对于当前要放入盒子的长条,在集合中lower_boundlower\_boundlower_bound得到一个合适的位置,如果没有那就新开一层,答案加一;如果有就将该层的空间减少,还有剩
2021-05-23 09:27:29 128
原创 CF1513-B. AND Sequences
CF1513-B. AND Sequences题意题目定义了“好的序列”的定义:对于一个长度为nnn的数字序列ppp,如果对于每个i(2≤i≤n−1)i(2\le i \le n-1)i(2≤i≤n−1),如果都有p[1]&p[2]&...&p[i]=p[i+1]&p[i+2]&...&p[n]p[1]\&p[2]\&...\&p[i]=p[i+1]\&p[i+2]\&...\&p[n]p[1]&p
2021-05-23 09:17:23 209
原创 CF1515-C. Phoenix and Towers
CF1515-C. Phoenix and Towers题意给出nnn块积木,对于每块积木都有一个高度hi(hi≤x)h_i(h_i\le x)hi(hi≤x),现在让你将这nnn块积木分成mmm堆,使得任意两堆积木的高度差不超过xxx.思路先将积木按照高度从大到小排序,将前mmm个积木加入到集合中,每次选出集合中高度最小的堆,将当前积木放进该队中,这样就能保证最终能构造出符合要求的答案。证明题目中提到每块积木的高度都小于等于xxx,那么最一开始将mmm块积木放进优先队列中,就可以保证这mm
2021-05-23 09:01:03 187
原创 CF1517-C. Fillomino 2
CF1517-C. Fillomino 2题意给定长度为 n (1≤n≤500)n\space (1 \le n \le 500)n (1≤n≤500)的排列 p,要求构造一个三角形,满足以下条件:三角形共 iii 行,第 iii 行有iii个数。第i 行最后一个数是 pip_ipi。接下来构造 nnn 个连通块。对于第 x (1≤x≤n)x \space (1 \le x \le n)x (1≤x≤n) 个连通块,每个元素、连通块大小都必须等于 xxx。
2021-05-23 08:43:53 335
原创 20210506-AcWing1130. 信使
20210506-AcWing1128. 信使题目战争时期,前线有 n 个哨所,每个哨所可能会与其他若干个哨所之间有通信联系。信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单位)。指挥部设在第一个哨所。当指挥部下达一个命令后,指挥部就派出若干个信使向与指挥部相连的哨所送信。当一个哨所接到信后,这个哨所内的信使们也以同样的方式向其他哨所送信。信在一个哨所内停留的时间可以忽略不计。直至所有 n 个哨所全部接到命令后,送信才算成功。因为准备充足,每个哨所内都安排了足够的信使(如果一
2021-05-06 22:06:53 125
原创 20210506-AcWing1129. 热浪
20210506-AcWing1129. 热浪题目德克萨斯纯朴的民众们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是它们并不是很擅长生产富含奶油的乳制品。农夫John此时身先士卒地承担起向德克萨斯运送大量的营养冰凉的牛奶的重任,以减轻德克萨斯人忍受酷暑的痛苦。John已经研究过可以把牛奶从威斯康星运送到德克萨斯州的路线。这些路线包括起始点和终点一共有 T 个城镇,为了方便标号为 1 到 T。除了起点和终点外的每个城镇都由 双向道路 连向至少两个其它的城镇。每条道路有一个
2021-05-06 21:56:12 112
原创 基于python对B站收藏夹按照视频发布时间进行排序
基于python对B站收藏夹按照视频发布时间进行排序前言在最一开始,我的B站收藏一直是存放在默认收藏夹中,但是随着视频收藏的越来越多,没有分类的视频放在一起,想在众多视频中找到想要的视频非常困难,因此就对收藏夹里面的视频进行了分类。但是分类之后紧接着又出现了一个新的问题:原来存放在默认收藏夹里面视频的相对顺序被打乱了——明明前几天刚收藏的视频却要翻很多很多页才能找到,因此有了这个程序。程序的作用因为我们看到的视频大部分都是通过推荐得到的,而推荐的视频大部分都是刚发布不久,因此大部分收藏的视频的顺序也
2021-05-02 21:21:38 645
原创 UVA-514 Rails
UVA-514 Rails题意:如图有一个铁路中转站,在A侧有nnn个车厢,从左到右编号分别为1,2,3..,n1,2,3..,n1,2,3..,n,现在你可以通过中间的中转站(stationstationstation)对这些车厢进行重新排序。给出你重新排序之后的车厢编号问你是否合法。需要注意的是,假如一个车厢从AAA进入了中转站,那么它只能从中转站进入到BBB而不能返回AAA。进入到BBB之后的车厢只能留在BBB,不能返回中转站或者AAA。思路:铁路中转站相当于一个栈。从前到后在AAA中找
2021-05-01 16:36:10 54
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人