0%

数据:国民经济核算季度数据.npz

在这里存一下我写的low代码。

分析1996-2015年人口数据特征间的关系

读取人口数据populations.npz。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Songti SC'] # 更换字体
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号

font2 = {'family' : 'Songti SC',
'weight' : 'normal',
'size' : 20,}

# 读取人口数据populations.npz
populationData = np.load("populations.npz", allow_pickle=True)

'''
1、首先需要看一下这个文件的数组名都是什么
input: print(populationData.files) # 查看各个数组的名称
output: ['data', 'feature_names']
'''

data = populationData['data'][-3::-1,:] # 因为数据是倒序的,看着不舒服,倒序一下
name = populationData['feature_names']
阅读全文 »

问题描述:

在一台超级计算机上,编号为$1, 2,\cdots, n$ 的 $n$ 个作业等待批处理。批处理的任务就是将这 $n$ 个作业分成若干批,每批包含相邻的若干作业。从时刻 $0$ 开始,分批加工这些作业。在每批作业开始前,机器需要启动时间 $S$ ,而完成这批作业所需的时间是单独完成批中各个作业需要时间的总和。单独完成第 $i$ 个作业所需的时间是 $t_i$ ,所需的费用是它的完成时刻乘以 一个费用系数 $f_i$ 。同一批作业将在同一时刻完成。例如,如果在时刻 $T$ 开始一批作业 $x,x+1,\cdots,x+k$,则这一批作业的完成时刻均为$T+S+(t_x+t_{x+1}+ \cdots +t_{x+k})$。最优批处理问题就是要确定总费用最小的批处理方案。例如,假定有 $5$ 个作业等待批处理,且
$$
S =1,(t_1,t_2,t_3,t_4,t_5)=(1,3,4,2,1),(f_1, f_2, f_3, f_4, f_5)=(3,2,3,3,4)
$$
如果采用批处理方案$ { 1 , 2 } , { 3 } , { 4 , 5 }$ ,则 各作业的完成时间分别为 $(5,5,10,14,14)$ ,各 作业的费用分别为 $(15,10, 30, 42, 56)$ ,因此,这个批处理方案总费用是 $153$。

阅读全文 »

问题描述:

用 $2$ 台处理机 $A$ 和 $B$ 处理 $n$ 个作业。设第 $i$ 个作业交给机器 $A$ 处理时需要时间 $a_i$ ,若 由机器 $B$ 来处理,则需要时间 bi 。由于各作业的特点和机器的性能关系,很可能对于某些 $i$, 有 $a_i\leq b_i$ ,而对于某些 $j$, $j \neq i$,有 ${a_j}<{b_j}$ 。既不能将一个作业分开由 $2$ 台机器处理,也 没有一台机器能同时处理 $2$ 个作业。设计一个动态规划算法,使得这 $2$ 台机器处理完这 $n$ 个作业的时间最短(从任何一台机器开工到最后一台机器停工的总时间)。研究一个实例: ( $a_1,a_2,a_3,a_4,a_5,a_6$ ) = (2, 5, 7, 10, 5, 2); ( $b_1,b_2,b_3,b_4,b_5,b_6$ ) = (3, 8, 4, 11, 3, 4)。

阅读全文 »

【问题描述】对于长度相同的两个字符串A和B,其距离定义为相应位置字符距离之和。两个非空格字符的距离是它们的ASCII编码之差的绝对值。空格与空格的距离为0, 空格与其他字符的距离为一定值k。在一般情况下,字符串A和B的长度不一定相同。字符串A的扩展是在A中插入若干空格字符所产生的字符串。在字符串A和B的所有长度相同的扩展中,有一对距离最小的扩展,该距离称为字符串A和B的扩展距离。对于给定的字符串A和B, 试设计一个算法,计算其扩展距离。

阅读全文 »

在升级 Catalina 后,下载的一些破解软件无法打开,显示文件已损坏,推荐扔进废纸篓。

只需输入以下命令:

1
sudo xattr -d com.apple.quarantine /Applications/xxxx.app

xxxx.app 修改为你打不开的软件名即可(输入名字第一个字后按 tab 键自动补全,如果没补全说明路径不对)。

题目大意:

给出两个 $m(n \leq 100)$ 行 $n(n \leq 100)$ 列的01矩阵分别为 $coin1[][]$ 和 $coin2[][]$ ,请问是否能通过两种操作使得 $coin1$ 变成 $coin2$ ,并计算出最少操作次数。

操作1:行变换 —— 01翻转
操作2:列变换 —— 交换两列

阅读全文 »

vector

对元素去重

1
2
3
4
5
6
7
vector<int>ve={0, 0, 1, 1, 2, 3};
ve.erase(unique(ve.begin(), ve.end()), ve.end());
for(auto item : ve){
cout << item << " ";
}
output:
0 1 2 3
阅读全文 »