自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 UTF-8和ASCII

1使用合适的编码规则,否则会导致存储丢失,如使用ASCII码无法存储希腊字母。2使用统一的解码规则,如使用UTF-8编码,但使用GBK解码就会导致出现乱码。utf-8是包含全世界语言用得到的,现在都是用这种方式进行编码。ascii是美国制定的编码规则,只有数字英文字母和特殊符号。当然还有其他编码规则如GBK,GB2312等等。上面所提到的编码规则也可以叫字符集。所以现在打代码都是使用UTF-8。

2024-09-16 20:45:22 385

原创 Linux常用快捷键

如忘记mkdir指令,只需要输入m+tab+tab即可找到所有以m开头的指令。可以实现对命令,参数,文件内容的补全。清空当前终端所有内容。

2024-09-15 14:06:39 365

原创 虚拟机和Linux发行版

虚拟机是一种软件,用于模拟安装另一个操作系统可以是windows,Linux,andriod等等 常见的有vmware,Oracle virtualBox等等。而Ubuntu和centos是Linux发行版,是基于Linux的拓展延伸。

2024-09-12 00:37:09 171

原创 linux与unix

此外unix并不兼容,主流的unix系统有三种AIX,HP-UX,Solaris运行在各自的服务器,但非常稳定,并行度非常高,是PC机无法比拟的。linux既可以进行命令行操作,也可以进行图形化的操作。linux具有很好的跨平台性,可以运行在多种硬件平台。linux是开源的,unix是闭源的。unix大多需要与指定硬件配套使用。linux要求较低,unix要求高。unix只是命令行下的操作。

2024-09-11 22:03:32 458

原创 c实现动态数组

使用malloc函数就可以声明一个动态的数组,随着不同输入而变化。由于c语言的数组常规的定义都是需要规定长度,后续也无法变化。那么我们如何通过输入一个整数n,定义一个长度为n的数组。这种通过程序员分配释放空间的,都是存在堆区。

2024-09-11 21:07:14 121

原创 Python的工厂模式

当需要大批量创建对象有统一的入口,易于代码维护。当发生修改时,仅修改工厂类即可。

2024-08-14 22:58:39 87

原创 Python的单例模式

假设上述Python文件是strT_tool.py,那么接下来再新建一个Python文件test.py。定义:保证一个类只有一个实例,并提供一个访问它的全局访问点。避免构造大量的对象,减少开销,特别是很多工具类。设计模式是一种编程的套路,极大地方便软件开发。目的:确保一个类只有一个对象存在。

2024-08-14 22:47:04 135

原创 关于前后端的理解

有一天你用手机进行购物,然后加了一个商品进入购物车,但是你看的太入迷了,你的手机掉进了下水道里拿不回来了。这时你回家打开电脑,并打开那台手机在掉进下水道时还在运行的那个购物软件,你就会发现刚刚加入购物车的商品还在购物车中。服务端上的一个软件(后端)回复response,所回复的数据就是客户端所需要的数据,客户端拿到数据之后就会在前端给客户展示。软件是一整套系统,在手机或者电脑上运行的只是很小一部分,这一部分就是前端,通过网络还有后端服务对这个软件提供支持。那么前端就是数据的展示和数据的交互。

2024-08-14 12:43:52 265

原创 多线程与线程池的理解

当线程池为空时,若有任务需要完成,线程池会自动生成一个线程,以该线程去执行任务,执行完了该线程回到线程池中,当又有任务来的时候,就可以用刚刚回到线程池的线程执行任务;若提交任务时,线程池没有空闲进程且未到达可创建线程的上限时,则线程池可以创建线程,当任务执行完后再还到线程池中;可以这么理解,微信是一个进程,里面的朋友圈和视频号为线程,即软件中互相独立,可以同时运行的功能,若该软件中独立的功能很多,那就是多线程。操作系统能够运算调度的最小单位,被包含于进程直至,是进程的实际运作单位。

2024-08-14 11:59:54 296

原创 不使用分支语句实现绝对值

一个数a的二进制长度为bit_length,那么a加上全为1且长度为bit_length的二进制数=a-1。一个数a的二进制长度为bit_length,那么a加上全为0且长度为bit_length的二进制数=a。异或全为0且长度为bit_length的二进制数将保持不变。异或全为1且长度为bit_length的二进制数将会取反。负数的补码=对应正数的补码(原码)取反+1。那求回对应正数就应该-1再取反。

2024-08-13 10:14:31 149

原创 利用Python实现乘以7

给定一个整数x,不能使用乘法实现乘以7。

2024-08-07 11:19:02 117

原创 计算比x大的最小的2次幂

如x=1011000,那比x大的最小的2次幂为10000000。所以只需要找出x二进制数中最高位的1即可,再左移即可。若x=555,则比x大的最小的2次幂为1024。以上x均为十进制,若转化为二进制则很好理解。若x=31,则比x大的最小的2次幂为32。

2024-08-07 11:12:32 83

原创 利用Python实现归并排序

得到mid,则从0到mid-1以及从mid到len(a)-1分别进行mergesort,这就会得到两个有序列表,因为不断的递归下,列表长度不断减小,最终都会小于等于2,变得有序。在mergr中,当两个列表的长度均大于0时,两个指针同时在0处,随着不断弹出两个列表下标为0处的元素,直至其中任一列表长度为0,再将两个列表剩下的元素追加到新列表中。首先将无序列表分成两个有序列表,再对这两个有序列表进行合并,这就需要两个函数来实现。再用一个mergr函数对两个有序列表进行合并。

2024-08-06 20:51:52 139

原创 位运算的技巧

x&1判断x的二进制的最后一位是1还是0,因为一个数的二进制从倒数第二位到最高位都是2的多少次方,只有最末位可以表示为2的0次方,所以最后一位是1则为奇数,为0为偶数。假设一个数是2的n次方,则这个数的二进制数最高位m为1,其余位置为0,那么该数-1所得的二进制数就会是第m位为0,从m-1位往右均为1,此时两者进行与运算所得就是0。x&(~(1<<i)),先将1左移i位,再进行非运算,如此一来x的第i位与0进行与运算,则变为0,其他位数与1进行与运算保持原数。四.将x第i位设置为1。七.获取x最低位的1。

2024-08-01 20:54:55 85

原创 C++中的赋值运算符

运算符 示例 结果 = a=3 a=3 += a=3;a+=2; a=5 -= a=3;a-=2; a=1 *= a=3;a*=2 a=6 /= a=3;a/=2 a=1 %= a=3;a%=2 a=1

2024-07-31 13:04:17 89

原创 Python计算组合数

从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。初始化一个dp数组,然后利用C(i,i)=1与C(i,0)=1完成第一个判断,再利用当j>i的不合理性,来使得C(i,j)=0,最后则是利用公式完成动态规划。在Python中可以使用动态规划实现。所以可以用Python实现。此时还有利用这个公式计算的。计算组合数有如下公式。

2024-07-31 12:58:04 339

原创 利用python实现分解质因数

任意一个大于1的整数,都可以分解为若干质数的积,如24=2*2*2*3,那么该如何用Python实现呢。然后就是直到n无法被i整除时跳出内层循环,同时在每次内层循环执行时更新n的值。先新建一个factor列表,然后从2开始遍历到n,如24则从2遍历到24。当n==1时,意味着以及分解完成。

2024-07-31 12:40:03 164

原创 C++实现贪吃蛇

【代码】C++实现贪吃蛇。

2024-07-23 22:30:18 157

原创 利用python实现快速排序

快速排序的思路其实很简单,在列表中选出一个数作为标准,再将列表中比它小的数放在左边,比它大的数放在右边,此时以该数的左边是一个无序列表,右边也是一个无序列表,此时再对该数左右两边再做一次上述操作即可。

2024-07-22 19:49:03 225

原创 用python求两个数的公因数

利用gcd(a,b)=gcd(b,a%b)的性质进行求解,直至参数第二项为0。使用math库中的gcd函数。

2024-07-22 19:45:03 234

原创 python实现进制转换

我们需要利用十进制作为桥梁,假设一个数是m进制,需要将其转化为n进制,则需要先将m进制转换为十进制,再从十进制转化为n进制。

2024-07-19 22:21:55 263

原创 python实现快速幂

如假设a=3,b=13 13的二进制是1101 所以3^13=3^8*3^4*3^1 相当于是看二进制哪一位是1 指数就是2的多少次方。方法一,python自带函数pow(a,b,mod),其中a为底数,b为指数,mod是对该数取模,mod参数有时候可以不传。方法二,利用递归实现快速幂,该方法需要注意分类讨论,考虑到指数为0,指数为1以及指数是奇数的情况。若需要计算a^b,如果使用循环来计算显然效率是很低的。方法三,利用指数的二进制,快速计算。以下有三种方法实现快速幂。

2024-07-19 20:55:15 350

原创 C++中的算术运算符

右移分为逻辑右移和算术右移,逻辑右移则为在二进制数的左边补0,丢弃低位的二进制位,算术右移则是在左边补该数的符号位,假设a=-6即a=1010,若为算术右移a>>2,则a=1110即a=-2;假设a=6即a=0011若a>>1,则a=0001则此时a=1。假设a=1,则a的二进制表示为0001,则a<<1,即意味着在二进制的右边补1个0且丢弃最高位的1个二进制位,则此时a=0010,即a=2,若为a<<2,则a=0100,即a=4。若两数为整型,则两数的商也为整型。除此之外除运算的除数是不可以为0的。

2024-07-19 20:42:06 291

原创 找出1-n中所有质数

当然可以对上述代码进行优化,假设一个数y,满足y是x^0.5之后去除小数部分所得到的整数,那就意味着x如果是一个合数,则它的因子应该一个在y的左边和另一个在右边,或者是y本身,则不需要继续往y+1到x-1之间进行遍历。初始化一个数组vis,其大小为n+1,且内部元素全为0,从下标为2的元素开始遍历,如果vis[i]=0则它是一个素数,对其输出,且把vis[k*i]全部置1,其中2

2024-07-18 17:14:22 389

原创 C++中的常见转义字符

其中常用的是换行\n和水平制表\t。

2024-07-18 11:17:14 108

原创 C++中的常见数据类型

int有4字节说明存储了32个二进制位,由于第一个数是符号位,所以int可存储的数据范围是(-2^31,2^31-1)1字节即8比特,相当于可以存储8个二进制位。

2024-07-17 21:44:40 124

原创 C++中的常量

这样子,pi就是一个常量,在后续代码如果使用到可以直接使用pi代替3.1415926,特别注意宏定义后不能加分号。在函数中我们可以使用const关键字对变量进行修饰。下面是以上两种方法的综合运用。

2024-07-17 20:55:52 164

原创 第一个C++程序

当在C++代码中使用这个语句时,它告诉编译器随后的代码将使用标准库。其中#include<iostream>是引入输入输出,这样才可以在控制台上输出hello world。是将hello world输出,endl是实现换行。int main():int是返回值类型,main()是程序的入口。与int main()呼应,返回值是整型。这个前缀就可以直接使用标准库中的诸多功能和对象,例如。中的标识符,这意味着可以不用在前面加上。打印hello world。

2024-07-17 20:02:37 302

原创 Series转化为list

如上述代码生成了一个Series,若要将它的值转化为一个列表只需要。

2024-07-17 19:39:35 193

原创 使用dict构造Series

由此可见Series方法中既可以传入列表也可以传入字典,只是最后输出的结果中的索引前者是数字,后者是字典的key。将其转化为Series只需要初始化Series时在data处传入该字典即可。

2024-07-17 19:25:30 210

原创 使用list构造Series

如一个列表course=['语文','数学','英语','计算机']使用list构造Series。将其构造成Series只需要。

2024-07-17 18:48:57 75

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除