python算法

Python程序设计题解【蓝桥杯官网题库】 DAY13-算法训练

╄→尐↘猪︶ㄣ 提交于 2020-02-18 04:45:37
试题 算法训练 K好数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。 输入格式 输入包含两个正整数,K和L。 输出格式 输出一个整数,表示答案对1000000007取模后的值。 样例输入 4 2 样例输出 7 数据规模与约定 对于30%的数据,KL <= 106; 对于50%的数据,K <= 16, L <= 10; 对于100%的数据,1 <= K,L <= 100。 while True : try : n = list ( map ( int , input ( ) . split ( ) ) ) k , l = n [ 0 ] , n [ 1 ] mod = 1000000007 result = 0 dp = [ [ 0 for i in range ( l + 1 ) ] for j in range ( k ) ] #if l == 0 or l == 1: #print(0) #else: for w in range ( k ) : dp [ w ] [ 1 ] =

Python实现加密方法集合

爱⌒轻易说出口 提交于 2020-02-17 14:22:28
一、常用的js加密算法 1、js加密解密算法 对称加密(加密解密密钥相同):DES、DES3、AES 非对称加密(分公钥私钥):RSA 信息摘要算法/签名算法:MD5、HMAC、SHA 2、算法说明 ①新浪微博登陆: RSA(非对称加密方式) 登录前先get请求返回携带有token、pubkey、raskv、servertime等信息的dict字符串,包含在js中需要提取转换 需要破解的参数是su和sp,sp是密码<br> su:是通过封装了RSA源码的一个对象sinaSSOEncoder的base64编码用户名得到的<br> sp:加密的密码,通过创建sinaSSOEncoder加密对象,公钥是上面返回的pubkey,偏移量"10001" 加密内容是servertime + "\t" + nonce + "\n" + pw servertime:上面get请求返回的 nonce:上面get请求返回的 pw:输入的密码 ②腾讯企鹅媒体:MD5双重加密(信息摘要算法或签名算法) 登录前后台会get请求一次,返回含有token和salf等加密参数信息以及一个cookie,该cookie要加在post的请求中 加密形式:MD5(token + MD5(salt + pwd))双重加密 ③网易云获取评论请求参数加密:加密方式AES+RSA 评论请求加密参数是两个:params

Python基础学习Day7

好久不见. 提交于 2020-02-17 02:36:02
Python基础学习Day7 模块 直接引入模块 import model if __name == "__main__" print ( model . page ) 从模块中引入具体内容 from models import page if __name == "__main__" print ( page ) 引入模块中的全部内容(后续调用时) from models import * if __name == "__main__" print ( page ) 调用模块时取别名(防止模块名相同) import models . test as ... from models import test ad m_test 使用模块的原因: 代码重用 命名空间 实现数据或服务共享 使用模块的步骤: 找到模块文件 编译为字节码 运行模块文件 模块的搜索范围 当前程序主目录 环境变量目录下 标准库 reload(重新载入,reload之前要importlib模块) //正确写法 import importlib importlib . reload ( models ) //错误写法(因为reload只认识模块,不认识from) from models import test reload(models) 按目录组织文件 directory只能从文件管理来管理文件 python

自学python记录_(4)运算符

北城余情 提交于 2020-02-17 02:19:18
python语言中一共存在七种运算符,他们分别为 1、算术运算符 我更倾向于叫做四则运算,你懂的,包含加减乘除,但是不限于这些,还有幂指数运算、取余、取整 print(3+2) print(3-2) print(3*2) print(3/2) print(3**2) print(3%2) print(3//2) 2、关系运算符 就是比较的意思, >、<、==、!=(<>)、、>=、<= 也就这六种关系 大于、小于、等于、不等于(有两种表达方式)、大于等于、小于等于 3、赋值运算符 赋值就是等于,表达方式有七种,各有各存在的好处 a = 9 等于 ,没得说 a += b 加法赋值 等同于 a = a + b a -= b 减法赋值 等同于 a = a - b a *= b 乘法赋值 等同于 a = a * b a /= b 除法赋值 等同于 a = a / b a %= b 取余赋值 等同于 a = a % b a //= b 取整赋值 等同于 a = a//b a **= b 幂赋值 等同于 a = a ** b 这七种写算法的时候,经常会用到的运算,熟记就行 4、逻辑运算符 逻辑运算符特别好玩,运算的前后都是表达式 与或非三个小布丁,解释起来非常麻烦,看一下效果吧 表达式1 and 表达式2 如果1为真 则输出2的结果,否则输出1的结果,简记就是“真后假前” print(12>5

python常用排序算法

空扰寡人 提交于 2020-02-16 22:55:41
常见排序算法 算法:一个计算过程,解决问题的方法 程序 = 数据结构 + 算法 1.算法基本概念 1.时间复杂度 用什么方式来体现算法运行的快慢? 通过运行的次数表示时间复杂度 示例: print("hello world") print("hello python") print("hello algorithm") #以上时间复杂度O(1) for i in range(n): print("hello world") for j in range(n): print("hello world") #时间复杂度O(n**2) while n>1: print(n) n = n//2 时间复杂度记为O(log 2 n)或O(log n) 当算法过程出现循环折半的时候复杂度式子中会出现log n 时间复杂度小结 时间复杂度是用来计算算法运行的时间的一个式子(单位) 一般来说,时间复杂度高的算法比复杂度低的算法慢。 创建的时间复杂度(按效率排序) O(1) < O(logn) < O(nlogn) < O(n2) < O(n2 log n) < O(n3) 复杂问题的时间复杂度 O(n!) O(2**n) O(n**n) 如何简单快速地判断算法复杂度 快速判断算法复杂度,适用于绝大多数简单情况 确定问题规模n 循环减半过程---> log n k层关于n的循环 --->n**k

蓝桥杯python组如何准备

孤街醉人 提交于 2020-02-16 03:50:09
在蓝桥杯的程序设计比赛里新增加了python组,这是一个全新的组别,目前蓝桥杯官网已经开通了python的练习平台,链接http://dasai.lanqiao.cn/ 如何准备2020年蓝桥杯python程序设计呢,我分为四个部分讲解,了解这四个部分,将有助于备战此次比赛 一、python基本的语法 学到面向对象就差不多了,不需要太深入学习面向对象后面的内容。因为这是程序设计比赛,很少会涉及到python的高阶知识,因此我建议学完基本的面向对象即可,后面的不必深入。当然,python在人工智能等领域是有很大用武之地的,因此想走这些方向的同学可以深入的学下去。 二、掌握python标准库 蓝桥杯是不支持第三方库的,后面注意事项里面我会讲到,但是python的标准库就已经琳琅满目了,学好python标准库,将是一个事半功倍的过程。 三、找一本大纲开始刷题和学习 推荐《算法竞赛入门经典》,虽然是c++的,但是非常适合作为大纲,题目也完全符合蓝桥杯难度,你需要做的,就是学会这些思想,然后用python实现。 四、注意事项 1.不支持第三方库 蓝桥杯python组,不支持第三方库,仅能使用python的标准库,这就需要知道python的常用标准库有哪些,哪些在算法比赛中比较常见,学会一些常用的标准库,对于我们解题是十分有帮助的,方便且快速。 对于蓝桥杯中可能用到python的标准库

Python—内置函数和匿名函数

≯℡__Kan透↙ 提交于 2020-02-16 01:22:43
楔子 在讲新知识之前,我们先来复习复习函数的基础知识。 问:函数怎么调用? 函数名() 如果你们这么说。。。那你们就对了!好了记住这个事儿别给忘记了,咱们继续谈下一话题。。。 来你们在自己的环境里打印一下自己的名字。 你们是怎么打的呀? 是不是print('xxx'),好了,现在你们结合我刚刚说的函数的调用方法,你有没有什么发现? 我们就猜,print有没有可能是一个函数? 但是没有人实现它啊。。。它怎么就能用了呢? 早在我们“初识函数”的时候是不是就是用len()引出的? 那现在我们也知道len()也是一个函数,也没人实现,它好像就自己能用了。。。 之前老师给你讲你可以这样用你就用了,那你有没有想过像这样直接拿来就能用的函数到底有多少? 内置函数 接下来,我们就一起来看看python里的内置函数。截止到python版本3.6.2,现在python一共为我们提供了 68个内置函数 。它们就是python提供给你直接可以拿来使用的所有函数。这些函数有些我们已经用过了,有些我们还没用到过,还有一些是被封印了,必须等我们学了新知识才能解开封印的。那今天我们就一起来认识一下python的内置函数。这么多函数,我们该从何学起呢? Built-in Functions abs() dict() help() min() setattr() all() dir() hex() next()

逻辑回归分类python实现模板

落爺英雄遲暮 提交于 2020-02-14 11:55:06
算法的思路我就不说了,我就提供一个万能模板,适用于任何纬度数据集。 虽然代码类似于梯度下降,但他是个分类算法 定义sigmoid函数 def sigmoid ( x ) : return 1 / ( 1 + np . exp ( - x ) ) 进行逻辑回归的参数设置以及迭代 def weights ( x , y , alpha , thershold ) : #初始化参数 m , n = x_train . shape theta = np . random . rand ( n ) #参数 cnt = 0 # 迭代次数 max_iter = 50000 #开始迭代 while cnt < max_iter : cnt += 1 diff = np . full ( n , 0 ) for i in range ( m ) : diff = ( y [ i ] - sigmoid ( theta . T @ x [ i ] ) ) * x [ i ] theta = theta + alpha * diff if ( abs ( diff ) < thershold ) . all ( ) : break return theta 预测函数 def predict ( x_test , theta ) : if sigmoid ( theta . T @ x_test ) >

[python机器学习及实践(6)]Sklearn实现主成分分析(PCA)

大憨熊 提交于 2020-02-14 03:41:37
1.PCA原理 主成分分析(Principal Component Analysis,PCA), 是一种统计方法。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。 PCA算法: 2.PCA的实现 数据集: 64维的手写数字图像 代码: #coding=utf-8 import numpy as np import pandas as pd from sklearn.decomposition import PCA from matplotlib import pyplot as plt from sklearn.svm import LinearSVC from sklearn.metrics import classification_report #1.初始化一个线性矩阵并求秩 M = np.array([[1,2],[2,4]]) #初始化一个2*2的线性相关矩阵 np.linalg.matrix_rank(M,tol=None) # 计算矩阵的秩 #2.读取训练数据与测试数据集。 digits_train = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/optdigits/optdigits.tra', header=None)

01. Python 介绍

♀尐吖头ヾ 提交于 2020-02-13 20:11:13
一. Python 历史 二. Python优缺点 三. Python 应用场景 四. Python3 和 Python2 的区别 五. Python2 的中文编码问题 六. Python 的运行方式 一. Python 历史 Python的意思是蟒蛇,源于作者喜欢的一部电视剧 Python的作者是Guido van Rossum(龟叔) Python是龟叔在1989年圣诞节期间,为了打发无聊的圣诞节而用C编写的一个编程语言 Python正式诞生于1991年 Python的解释器如今有多个语言实现, 我们常用的是CPython(官方版本的C语言实现) ,其他还有Jython(可以运行在Java平台)、IronPython(可以运行在.NET和Mono平台)、PyPy(Python实现的,支持JIT即时编译) Python目前有两个版本,Python2和Python3 Life is shot, you need Python.(人生苦短,我用Python) 二. Python优缺点 优点 简单。 Python是一种代表简单主义思想的语言,有着极其简单的语法。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。 开源、免费 。Python是FLOSS(自由