自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 蓝桥杯Python练习题19-拿金币

有一个N x N的方格,每一个格子都有一些金币,只要站在格子里就能拿到里面的金币。你站在最左上角的格子里,每次可以从一个格子走到它右边或下边的格子里。请问如何走才能拿到最多的金币。内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。所以当前位置的dp值只可能为左边或者上边的格子里的dp值加左边或者上边的dp值中最大的那个。以下n行描述该方格。金币数保证是不超过1000的正整数。第一行输入一个正整数n。

2023-02-13 18:09:24 436 1

原创 蓝桥杯Python练习题18-印章

(4)当j > i,且i ≠ 1时,假设前几张购买的印章均不存在种类重复,而下一张印章对已经集齐的i种印章中也依然不存在重复,则dp[i][j] = P∗(n-j-1)/n = dp[i-1][j-1] ∗ (n-j-1)/n。(3)当j > i,且i ≠ 1时,假设前几张购买的印章均不存在种类重复,而下一张印章对已经集齐的i种印章中存在重复,则dp[i][j] = P∗j/n = dp[i-1][j]∗j/n。(2)当i = 1时,即需要集齐的印章种数为1时,若j = 1,则dp[i][j] = 1;

2023-02-01 18:42:50 1571 2

原创 蓝桥杯Python练习题17-k好数

如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。对于50%的数据,K

2023-01-03 18:19:50 330

原创 蓝桥杯Python练习题16-最大最小公倍数

已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。(2)当n大于2且为奇数时,选取小于N最大的三个数的乘积就是最大最小公倍数,即。(3)当n大于2且为偶数时,n和(n-2)存在最大公约数2,如果继续使用。也是3的倍数,所以此时n和(n-3)存在最大公约数3,如果继续使用。(4)还有一种特殊情况,就是当n满足(3)但是为3的倍数时。(1)当n小于等于2时,最小公倍数就是它本身,即。可能导致最小公倍数的值无法取到最大,如果选取与。可能导致最小公倍数的值无法取到最大,故选取与。

2023-01-03 17:05:24 761

原创 蓝桥杯Python练习题15-区间k大数查询

内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。保证k

2023-01-03 16:04:22 629

原创 蓝桥杯Python练习题14-序列求和

来累加,然而,当数据规模很大时,这种“暴力”的方法往往会导致超时。你可以试一试,如果使用1000000000作为你的程序的输入,你的程序是不是能在规定的上面规定的时限内运行出来。一般在提交之前所有这些样例都需要测试通过才行,但这不代表这几组样例数据都正确了你的程序就是完全正确的,潜在的错误可能仍然导致你的得分较低。本题另一个要值得注意的地方是答案的大小不在你的语言默认的整型(int)范围内,如果使用整型来保存结果,会导致结果错误。输出一行,包括一个整数,表示1+2+3+…说明:注意这里的数据规模。

2022-12-30 18:57:41 267

原创 蓝桥杯Python练习题13-圆的面积

本题对精度要求较高,请注意π的值应该取较精确的值。你可以使用常量来表示π,比如PI=3.14159265358979323,也可以使用数学公式来求π,比如PI=atan(1.0)*4。对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误。输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。说明:在本题中,输入是一个整数,但是输出是一个实数。给定圆的半径r,求圆的面积。

2022-12-30 18:37:23 550

原创 蓝桥杯Python练习题12-Fibonacci数列

资源限制  内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s问题描述  Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。  当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式  输入包含一个整数n。输出格式  输出一行,包含一个整数,表示Fn除以10007的余数。  说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而

2022-12-30 18:20:22 193

原创 蓝桥杯Python练习题11-闰年判断

内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。说明:当试题指定你输出一个字符串作为结果(比如本题的yes或者no,你需要严格按照试题中给定的大小写,写错大小写将不得分。输出一行,如果给定的年份是闰年,则输出yes,否则输出no。在Python中,上面的if和elif里面的内容可以合并写成。年份是4的倍数而不是100的倍数;年份是400的倍数。1. 年份是4的倍数而不是100的倍数;2. 年份是400的倍数。

2022-12-30 17:17:47 425

原创 蓝桥杯Python练习题10-01字串

内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。输出32行,按从小到大的顺序每行一个长度为5的01串。请按从小到大的顺序输出这32种01串。

2022-12-30 16:48:18 219

原创 蓝桥杯Python练习题9-字母图形

内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。输出n行,每个m个字符,为你的图形。本代码是将一个二维矩阵按位逐个输出,chr(65)输出结果是A。

2022-12-30 13:23:24 303 2

原创 蓝桥杯Python练习题8-查找整数

内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。可知,运行结果如下图所示,可以发现语句顺序执行。其运行结果如下图,可以发现,语句执行至。第三行包含一个整数a,为待查找的数。中的语句,此题主要用的就是这种思想。

2022-12-30 12:48:27 913

原创 蓝桥杯Python练习题7-数列特征

内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。给出n个数,找出这n个数的最大值,最小值,和。第一行为整数n,表示数的个数。

2022-12-29 18:08:33 178

原创 蓝桥杯Python练习题6-杨辉三角形

内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。先将列表构造出来为全1,然后根据杨辉三角形修改其中的数值。给出n,输出它的前n行。

2022-12-29 17:30:25 364

原创 蓝桥杯Python练习题5-特殊的数字(水仙花数)

153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1×1×1+5×5×5+3×3×3。编程求所有满足这种条件的三位十进制数。内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。对l中的数进行排序,此处因为是range里做的,就不添加了。b = n // 10 % 10#十位。c = n % 100 % 10#个位。a = n // 100#百位。

2022-12-29 16:34:20 475

原创 蓝桥杯Python练习题4-回文数

内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n。123321是一个非常特殊的数,它从左边读和从右边读是一样的。

2022-12-28 21:50:48 529

原创 蓝桥杯Python练习题3-进制转换

内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。先将十六进制数转换成某进制数,再由某进制数转换成八进制。输入的第一行为一个正整数n (1

2022-12-27 14:37:44 710

原创 蓝桥杯Python练习题2-数列排序

内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。给定一个长度为n的数列,将这个数列按从小到大的顺序排列。第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。输出一行,按从小到大的顺序输出排序后的数列。第一行为一个整数n。

2022-12-27 12:05:18 159

原创 蓝桥杯Python练习题-A+B问题

内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。注意:当使用空格作为分隔符时,对于中间为空的项会自动忽略。输入的第一行包括两个整数,由空格分隔,分别表示A、B。输出一行,包括一个整数,表示A+B的值。输入A、B,输出A+B。

2022-12-26 12:15:02 396

原创 辗转相除法求最大公因数-C语言

辗转相除法,又名欧几里德算法,是求最大公约数的一种方法。以除数和余数反复做除法运算,最终当余数为0时,取当前算式除数为最大公约数。例3:设a= 46480, b = 39423,求整数s,t ,使得sa+tb = (a, b)。因此,最大公因数为:1,即:(1987,654)=1,则1987与654互素。因此,整数s =-22703,t =26767满足sa + tb=(a,b)。因此,最大公因数为:5,即:(2015,15)=5。例2:求1987和654的最大公因数。例1:求2015和15的最大公因数。

2022-12-26 10:55:11 1321

原创 机器学习的安全及隐私保护研究

云计算:为机器学习数据存储、计算的平台。大数据:为机器学习提供了数据管理、支撑的平台。物联网:为机器学习提供了丰富的数据来源。以机器学习为代表的人工智能技术正在发挥越来越大的优势,影响和改变着人类的生活。但是机器学习背后又面临隐私泄露的问题。

2022-10-22 15:52:18 2306

原创 自动化密码分析

目前机器学习跟使用数学工具的密码分析差别还比较远。超越数学分析方法的难度比较大。上世纪九十年代,Biham和Shamir在美密会上提出差分分析,标志着对称密码分析初步入正轨。算法→数学模型,数学模型→高效算法。以差分分析、线性分析、积分分析等具代表性的经典分析方法为基础。

2022-09-12 16:00:00 1253 7

原创 机器学习与密码学

机器学习是人工智能的分支,研究一些算法可以完成一些任务,并且能根据经验数据不断提升,用经验作为输入,预测作为输出。

2022-09-11 19:47:11 848

原创 北大肖臻老师《区块链技术与应用》系列课程学习笔记[29]总结

在互不信任的实体之间建立共识,有些人认为这是一个伪命题,因为互不信任的实体之间是无法交易的,比如说网上购物,不信任对方,给了钱不发货怎么办?国外有人提出将保险理赔业务放在区块链上,因为现在的保险理赔业务太慢了(大约需要几个星期),如果把保险理赔业务用比特币系统实现的话,等待6个确认区块(也就是大约1h的时间),理赔速度和理赔效率会快很多。还有说区块链可以防伪溯源的,如将有机蔬菜的生产到销售的全过程都写在区块链上,利用区块链的不可篡改性,使区块链生产销售的全过程透明。(4)支付方式的效率相关问题。

2022-09-03 14:00:00 551

原创 北大肖臻老师《区块链技术与应用》系列课程学习笔记[28]以太坊-美链

美链(Beauty Chain)是一个部署在以太坊上的智能合约,有自己的代币BEC。IPO,Initial Public Offering(首次公开募股);ICO,Initial Coin Offering(首次代币发行)。这些发行的代币没有自己的区块链,而是以智能合约的形式运行在以太坊的EVM平台上。发行代币的智能合约对应的是以太坊状态树中的一个节点。

2022-09-02 13:00:00 583

原创 北大肖臻老师《区块链技术与应用》系列课程学习笔记[27]以太坊-反思

智能合约真的智能吗?首先智能合约没有用到任何人工智能的技术,所以有人认为应该将其称为自动合约:按照写好的代码,自动执行某些操作,ATM取款机可以看作是物理世界中的自动合约。 一般我们认为不可篡改性是区块链的一个优点,有很多区块链的应用都利用了不可篡改性,如用它进行防伪、溯源等操作,但是通过The DAO的盗币事件其实已经能够意识到:不可篡改性实际上是一把双刃剑。(1)优点:不可篡改性增加了合约的公信力,所有人都只能按照合约中的规则来,没有人能够篡改这个规则。......

2022-09-01 12:44:57 2518

原创 北大肖臻老师《区块链技术与应用》系列课程学习笔记[26]以太坊-TheDao

拆分过程,就是split DAO(拆分DAO),这个拆分的方法并不仅仅是取回收益,还是建立子资金(chlid DAO)的方法。如果有一小部分人和其他人的投资理念不一样,这种情况下,这一小部分人可以用拆分的方法成立自己的子资金,拆分的时候手中的代币是要被收回的,换成相应数量的以太币,然后就可以投想投的项目。极端情况下,单个投资者成立一个子资金,在子资金里就能把所有的钱投给自己,这是投资者取回投资和收益的唯一途经。并没有withdraw()函数,竞拍不成直接取回,这里不行,只能用拆分的方法。

2022-08-31 14:14:35 1623

原创 北大肖臻老师《区块链技术与应用》系列课程学习笔记[25]以太坊-智能合约-5

在区块链上,任何未知的合约都可能使有恶意的,所以每次你向对方转账或者使调用对方某个函数的时候,都要提醒下自己,这个合约,这个函数有可能反过来调用你当前的这个合约,并且修改状态,小心一点总是好的。......

2022-08-31 09:30:11 1914

原创 北大肖臻老师《区块链技术与应用》系列课程学习笔记[24]以太坊-智能合约-4

now是当前区块的时间戳,这个跟这个block.timestamp是一个意思,智能合约里没有办法获得很精确的时间,只能获得跟当前区块信息的一些时间,如图1-2所示。智能合约的执行必须是确定性的,这也就导致了智能合约不能像通用的编程语言那样通过系统调用来得到一些环境信息,因为每个全节点的执行环境不是完全一样的,所以他只有通过一些固定的一些变量的值得到一些状态信息,下图1-1所示的表格就是智能合约能够得到的区块链的一些信息。这个合约发起的,而tx.origin是A这个账户,因为整个交易的发起者是A账户。....

2022-08-29 19:30:18 481

原创 北大肖臻老师《区块链技术与应用》系列课程学习笔记[23]以太坊-智能合约-3

全节点收到一个对合约的调用的时候,要一次性的先把这个调用,可能花掉的最大汽油费从发起这个调用的账户上扣掉,这个具体是怎么操作的,一个全节点可能用于验证交易,后面可能跟了一大堆矿工,光是进行挖矿,比特币中有些矿工光是算哈希值,就有一个ASIC矿机不停的算哈希值,没有全节点的其他功能,像验证交易,监听交易,验证发布的区块,他可能都是outsource给那个全节点做,我们说的时候不是很区分这两个概念,全节点和矿工。这个汽油费是怎么扣的?如果智能合约执行过程中出现了错误,要不要也发布到区块链上去。......

2022-08-28 16:30:15 1324

原创 北大肖臻老师《区块链技术与应用》系列课程学习笔记[22]以太坊-智能合约-2

智能合约由一个外部账户发起一个转账交易,转给0x0这个地址,然后把这个要发布合约的代码放到data域里面。创建一个合约,要发起一个转账交易,给0这个地址转账,转账的金额都是0,实际上并非真的要转帐,而是想发布一个智能合约。发布的这个智能合约的代码放到数据域就行了,合约的代码要编译成bytecode,然后在EVM上运行。JVM,Java Virtual Machine,目的是增强可移植性。EVM类似这种设计思想,通过加一层虚拟机,对智能合约的运行提供一个一致性平台。EVM有时叫做Worldwide Compu

2022-08-27 19:59:14 1011

原创 北大肖臻老师《区块链技术与应用》系列课程学习笔记[21]以太坊-智能合约-1

1.智能合约的本质是运行在区块链上的一段代码,代码的逻辑定义了智能合约的内容。2.智能合约的账户保存了合约当前的运行状态(1)balance:当前余额;(2)nonce:交易次数;(3)code:合约代码;(4)storage:存储,数据结构一是一颗MPT;3.Solidity是智能合约最常用的语言,语法上与JavaScript很接近。......

2022-08-26 18:22:00 1796

原创 北大肖臻老师《区块链技术与应用》系列课程学习笔记[20]以太坊-权益证明

基于工作量证明的共识系统从某种意义上来说,维护区块链安全的资源不是一个闭环,Block chain is secured by mining,用美元可以购买矿机,然后参与挖矿,资源是可以从加密货币系统的外面得到的。虽然近几年加密货币的市值有了很大的增长,但无论怎么说,跟世界经济总量相比,仍微乎其微。所以,如果有某个组织想要发动恶意攻击,只需用足够的资金购买挖矿设备,然后聚集到加密货币总算力一半以上的算力即可。外部的资源都可以转化成挖矿的算力,转换成对这个加密货币攻击的这种能力。像比特币这样比较主流的加密货.

2022-08-25 18:22:17 1357

原创 北大肖臻老师《区块链技术与应用》系列课程学习笔记[19]以太坊-难度调整

判断一下是不是有叔父区块,有的话,是用2减去前面这个数x,没有的话用1减去前面这个数x,然后接下来跟负的99相比,往下调有一个节限,不能比-99还要小,接下来算的是难度调整的力度,父区块的难度除以这个DifficultyBoundDivisor实际上就是2048,然后跟前面算出的系数相乘,加到父区块的难度上面去,基础部分的难度调整有一个下限,难度再小也不能小于那个D0,这个MinimumDifficulty就是那个D0=131072。输入是父区块的时间戳和父区块的难度,计算出当前挖的这个区块的难度。

2022-08-24 16:30:00 856

原创 北大肖臻老师《区块链技术与应用》系列课程学习笔记[18]以太坊-Mining算法

比特币的Mining算法也有一些值得改进得地方,其中有一个饱受争议得问题就是Mining设备得专业化,有普通的计算机挖不倒矿,只能用专门的设备,专用的ASIC芯片来Mining,那么很多人认为这种做法与去中心化的理念是背道而驰的,也跟比特币的设计初衷相违背。中本聪最早的一篇论文,提出One CPU,one vote,理想状况下,应该让普通老百姓也能参与Mining过程,这样也更安全,因为算力分散之后,有恶意的攻击者想要聚集到51%的算力发动攻击,难度就会大得多

2022-08-23 17:30:00 1944

原创 北大肖臻老师《区块链技术与应用》系列课程学习笔记[17]以太坊-GHOST协议

挖到矿的矿工发布一个区块,即便这个区块最后作废了,也会给予一些奖励,这个时候也能得到一些出块奖励,将作废的区块(上图1-1中的Orphan Block或Stale Block)称为Uncle Block。相对于最长合法链的当前区块来说,是他的叔父区块,最长合法链的下一个区块在发布的时候可以把叔父区块包含进来,如图2-1所示。

2022-08-22 14:00:00 1736

原创 北大肖臻老师《区块链技术与应用》系列课程学习笔记[16]以太坊-交易树与收据树2

假设存在一个转账交易A→B(10ETH),要检查A账户里是不是真的有10ETH,但是当前区块和最近一个区块对应的那个状态树可能没有这个账户,那么需要往前一直找,直到找到最近的一个包含A账户的区块,才能知道A的账户余额是多少。如果A有较长的一段时间没有发生交易,可能要从后往前,扫描很多个区块,才能找到最近一次的账户状态。以太坊系统和比特币系统类似,创建账户时不需要通知其他人的,只有这个账户第一次收到钱的时候,其他的节点才会知道这个账户的存在,这个时候因为新插入了一个账户,所以要在状态树中新插入的一个节点。

2022-08-21 15:00:00 461

原创 北大肖臻老师《区块链技术与应用》系列课程学习笔记[15]以太坊-交易树和收据树

假设有一个元素d,想知道这个d是否在某集合里,但集合本身不一定能保存下来,可以用这个哈希函数H对d取哈希值,比如说,取完哈希值之后,映射到向量中某个是0的位置,则说明该元素一定不在该集合里,如图3-2所示;若取完哈希值之后,映射到向量中某个是1的位置,则不能说明该元素在该集合里,有可能确实是集合中的元素,d=a,也有可能d不在该集合里,但出现了。

2022-08-20 14:30:00 1270

原创 北大肖臻老师《区块链技术与应用》系列课程学习笔记[14]以太坊-状态树2

字典树又称前缀树,也是一种(key,value)的树,一般来说key用字符串用的比较多,如将一些单词排成一个trie的数据结构。比如将general,genesis,god,go,good排列成trie的数据结构如下图3-1所示。图3-1。

2022-08-19 21:01:35 1020

原创 北大肖臻老师《区块链技术与应用》系列课程学习笔记[13]以太坊-状态树

以太坊中采用的是一种基于账户的模式,系统中显示地维护每个账户上有多少余额,接下来我们了解一下这种基于账户的模式是如何实现的?想要实现这种模式需要完成从账户地址(Address)到账户状态(State)的映射。以太坊中的账户地址是160位的,也就是20字节,一般将其表示为40个十六进制的数。状态是指外部账户和合约账户的状态,包括余额,交易次数Nonce,对于合约账户还包括代码和存储。rie结构。

2022-08-19 13:21:18 826

空空如也

空空如也

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

TA关注的人

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