基于Python的数字货币
❶ 百钱百鸡的python算法
forcockinrange(1,20+1):
forheninrange(1,33+1):
forbiddyinrange(1,99+1):
if(5*cock+3*hen+biddy/3)==100:
if(cock+hen+biddy)==100:
ifbiddy%3==0:
printcock,hen,biddy
你也没给价格,这个解答是假设公鸡5块,母鸡3块,小鸡3只1块
*转自互联网
Python3编译的话记得把print换成函数
❷ 用python 怎么 解 将100元兑换为1元、5、10元的零钱,请问有多少种兑换方法
cnt = 0
for i in xrange(100 / 1 + 1):
for j in xrange((100 - i * 1) / 5 + 1):
for k in xrange ((100 - i * 1 + j * 5) / 10 + 1):
if i * 1 + j * 5 + k * 10 == 100:
print "1:", i, "5:", j, "10:", k
cnt += 1
print cnt
结果如下,总共121种
1: 0 5: 0 10: 10
1: 0 5: 2 10: 9
1: 0 5: 4 10: 8
1: 0 5: 6 10: 7
1: 0 5: 8 10: 6
1: 0 5: 10 10: 5
1: 0 5: 12 10: 4
1: 0 5: 14 10: 3
1: 0 5: 16 10: 2
1: 0 5: 18 10: 1
1: 0 5: 20 10: 0
1: 5 5: 1 10: 9
1: 5 5: 3 10: 8
1: 5 5: 5 10: 7
1: 5 5: 7 10: 6
1: 5 5: 9 10: 5
1: 5 5: 11 10: 4
1: 5 5: 13 10: 3
1: 5 5: 15 10: 2
1: 5 5: 17 10: 1
1: 5 5: 19 10: 0
1: 10 5: 0 10: 9
1: 10 5: 2 10: 8
1: 10 5: 4 10: 7
1: 10 5: 6 10: 6
1: 10 5: 8 10: 5
1: 10 5: 10 10: 4
1: 10 5: 12 10: 3
1: 10 5: 14 10: 2
1: 10 5: 16 10: 1
1: 10 5: 18 10: 0
1: 15 5: 1 10: 8
1: 15 5: 3 10: 7
1: 15 5: 5 10: 6
1: 15 5: 7 10: 5
1: 15 5: 9 10: 4
1: 15 5: 11 10: 3
1: 15 5: 13 10: 2
1: 15 5: 15 10: 1
1: 15 5: 17 10: 0
1: 20 5: 0 10: 8
1: 20 5: 2 10: 7
1: 20 5: 4 10: 6
1: 20 5: 6 10: 5
1: 20 5: 8 10: 4
1: 20 5: 10 10: 3
1: 20 5: 12 10: 2
1: 20 5: 14 10: 1
1: 20 5: 16 10: 0
1: 25 5: 1 10: 7
1: 25 5: 3 10: 6
1: 25 5: 5 10: 5
1: 25 5: 7 10: 4
1: 25 5: 9 10: 3
1: 25 5: 11 10: 2
1: 25 5: 13 10: 1
1: 25 5: 15 10: 0
1: 30 5: 0 10: 7
1: 30 5: 2 10: 6
1: 30 5: 4 10: 5
1: 30 5: 6 10: 4
1: 30 5: 8 10: 3
1: 30 5: 10 10: 2
1: 30 5: 12 10: 1
1: 30 5: 14 10: 0
1: 35 5: 1 10: 6
1: 35 5: 3 10: 5
1: 35 5: 5 10: 4
1: 35 5: 7 10: 3
1: 35 5: 9 10: 2
1: 35 5: 11 10: 1
1: 35 5: 13 10: 0
1: 40 5: 0 10: 6
1: 40 5: 2 10: 5
1: 40 5: 4 10: 4
1: 40 5: 6 10: 3
1: 40 5: 8 10: 2
1: 40 5: 10 10: 1
1: 40 5: 12 10: 0
1: 45 5: 1 10: 5
1: 45 5: 3 10: 4
1: 45 5: 5 10: 3
1: 45 5: 7 10: 2
1: 45 5: 9 10: 1
1: 45 5: 11 10: 0
1: 50 5: 0 10: 5
1: 50 5: 2 10: 4
1: 50 5: 4 10: 3
1: 50 5: 6 10: 2
1: 50 5: 8 10: 1
1: 50 5: 10 10: 0
1: 55 5: 1 10: 4
1: 55 5: 3 10: 3
1: 55 5: 5 10: 2
1: 55 5: 7 10: 1
1: 55 5: 9 10: 0
1: 60 5: 0 10: 4
1: 60 5: 2 10: 3
1: 60 5: 4 10: 2
1: 60 5: 6 10: 1
1: 60 5: 8 10: 0
1: 65 5: 1 10: 3
1: 65 5: 3 10: 2
1: 65 5: 5 10: 1
1: 65 5: 7 10: 0
1: 70 5: 0 10: 3
1: 70 5: 2 10: 2
1: 70 5: 4 10: 1
1: 70 5: 6 10: 0
1: 75 5: 1 10: 2
1: 75 5: 3 10: 1
1: 75 5: 5 10: 0
1: 80 5: 0 10: 2
1: 80 5: 2 10: 1
1: 80 5: 4 10: 0
1: 85 5: 1 10: 1
1: 85 5: 3 10: 0
1: 90 5: 0 10: 1
1: 90 5: 2 10: 0
1: 95 5: 1 10: 0
1: 100 5: 0 10: 0
121
❸ 用python定义一个函数,可以完成以下国家汇率的计算,要求输入是各国的金额,输出的是中
美元U;日元J;欧元E;英镑G;朝元K;港币H
请输入带符号的数字,如(100U)300H
人民币 250.68 元
❹ 用python做一个程序:扔100次硬币,然后分别显示出掷出正面和反面的次数
importrandom
num=0
fcount=0
bcount=0
whileTrue:
n=random.randint(0,1)
num+=1
ifnum>100:
break
ifn==1:
fcount+=1
else:
bcount+=1
print("正面:",fcount)
print("反面:",bcount)
print("投掷次数",fcount+bcount)
❺ 编写一个Python程序, 模拟抛硬币一百万次,显示出现正面和反面的次数.
import random
count = 0 # 1 正面 0 反面 记录1的次数
for i in range(10000000):
n = random.randint(0,1)
if n == 1:
count += 1
print(u'正面{0}次,反面{1}次'.format(count,1000000-count))
打个比方,一个村里 我向你借钱,正常情况是如果我怕你借钱不还,可以找一个大家都认可的中间人比如村长作为担保方并签订一张欠条,这样如果你到时候你赖账了,我可以找中间人证明你确实欠我钱来要钱,但是其中有2个问题 1.万一村长发现对面是他失散多年的儿子 串通的就是来骗你钱咋办,2.第二天中间人当场去世咋办!这就涉及到信任和安全的问题。如果用区块链的手段就是给你做证明人的是全村(分布式),这样每个人都知道这件事,对方无法赖账,第二就算有少部分人或者村长否认(部分节点作恶)丢了欠条或者篡改内容还是会有其他人做依据。
以上,解释楼主的2个问题 1.去中心化因为账本记录在每个参与人的手里没有中心化 并且你储存了记账了自然会得到报酬 2.既然我储存并记账可以获得奖励,那我只记账不想储存可不可以?就有了矿池 你帮矿池一起记账,矿池帮你储存这样你还是可以获得很好的奖励 矿池全球就那么几个,所以说又是中心化的
❼ 如何使用python开发区块链
初始区块链
特点:
区块链是由区块的记录构成的不可变,有序的链记录。主要有以下几个特点:
1:去中心化
由于使用分布式核算和存储,不存在中心化的硬件或管理机构,任意节点的权利和义务都是均等的,系统中的数据块由整个系统中具有维护功能的节点来共同维护。得益于区块链的去中心化特征,比特币也有去中心化的特征 。
2:开放性
系统是开放的,除了交易各方的私有信息被加密外,区块链的数据对所有人公开,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。
3:自治性
区块链采用基于协商一致的规范和协议(比如一套公开透明的算法)使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据,使得对“人”的信任改成了对机器的信任,任何人为的干预不起作用。
4:信息不可篡改
一旦信息经过验证并添加至区块链,就会永久的存储起来,除非能够同时控制住系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。
5:匿名性
由于节点之间的交换遵循固定的算法,其数据交互是无需信任的(区块链中的程序规则会自行判断活动是否有效),因此交易对手无须通过公开身份的方式让对方对自己产生信任,对信用的累积非常有帮助。
与传统分布式数据库相比主要有以下两个区别:
1:传统分布式数据库支持增删查改,区块链只支持查找和插入,对区块不能进行删除和修改。
2:传统的分布式数据库一般都是主从结构:master和slaves的结构,为了保证高可用,通过备用master来实现,而区块链是一个去中心化的数据库。没有主从结构。
区块链和比特币:
说起区块链,大多数人都会谈起比特币。但区块链并不等于是比特币,现在已经是区块链3.0时代,而比特币只是区块链1.0时代的产物。
区块链的进化方式是:
▪ 区块链1.0——数字货币
▪ 区块链2.0——数字资产与智能合约
▪ 区块链3.0——各种行业分布式应用落地
区块链的分类:
公有区块链(PublicBlockChains)
公有区块链是指:世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程。公有区块链是最早的区块链,也是应用最广泛的区块链,各大bitcoins系列的虚拟数字货币均基于公有区块链,世界上有且仅有一条该币种对应的区块链。
联合(行业)区块链(ConsortiumBlockChains)
行业区块链:由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定(预选节点参与共识过程),其他接入节点可以参与交易,但不过问记账过程(本质上还是托管记账,只是变成分布式记账,预选节点的多少,如何决定每个块的记账者成为该区块链的主要风险点),其他任何人可以通过该区块链开放的API进行限定查询。
私有区块链(privateBlockChains)
私有区块链:仅仅使用区块链的总账技术进行记账,可以是一个公司,也可以是个人,独享该区块链的写入权限,本链与其他的分布式存储方案没有太大区别。(Dec2015)保守的巨头(传统金融)都是想实验尝试私有区块链,而公链的应用例如bitcoin已经工业化,私链的应用产品还在摸索当中。
❽ 用python创建一个银行类, 这个类实现了:1、可以将用户信息写入到文件中2、可以读取文件中的用户信息.
classbank():
def__init__(self):
self.user_info=[]
defget_user_info(self,info):
self.user_info.append(info)
defwtuser(self):
withopen('user.txt','w')asf:
foriinself.user_info:
f.write(str(i))
f.write(' ')
f.close()
defrser(self):
withopen('user.txt','r')asf:
s=1
whiles:
s=f.readline()
ifsnotinself.user_info:
self.user_info.append(s)
f.close()
❾ 【python】如何把字符串类型的数字统一形式,如:"一亿三千万元"->"130000000元"
#!/usr/bin/envpython
#coding:utf-8
dict={u'零':0,u'一':1,u'二':2,u'三':3,u'四':4,u'五':5,u'六':6,u'七':7,u'八':8,u'九':9,u'十':10,u'百':100,u'千':1000,u'万':10000,
u'0':0,u'1':1,u'2':2,u'3':3,u'4':4,u'5':5,u'6':6,u'7':7,u'8':8,u'9':9,
u'壹':1,u'贰':2,u'叁':3,u'肆':4,u'伍':5,u'陆':6,u'柒':7,u'捌':8,u'玖':9,u'拾':10,u'佰':100,u'仟':1000,u'万':10000,
u'亿':100000000}
defgetResultForDigit(a,encoding="utf-8"):
ifisinstance(a,str):
a=a.decode(encoding)
count=0
result=0
tmp=0
Billion=0
whilecount<len(a):
tmpChr=a[count]
#printtmpChr
tmpNum=dict.get(tmpChr,None)
#如果等于1亿
iftmpNum==100000000:
result=result+tmp
result=result*tmpNum
#获得亿以上的数量,将其保存在中间变量Billion中并清空result
Billion=Billion*100000000+result
result=0
tmp=0
#如果等于1万
eliftmpNum==10000:
result=result+tmp
result=result*tmpNum
tmp=0
#如果等于十或者百,千
eliftmpNum>=10:
iftmp==0:
tmp=1
result=result+tmpNum*tmp
tmp=0
#如果是个位数
eliftmpNumisnotNone:
tmp=tmp*10+tmpNum
count+=1
result=result+tmp
result=result+Billion
returnresult
if__name__=="__main__":
test_map={
'三千五百二十三':3523,
'七十五亿八百零七万九千二百零八':7508079208,
'四万三千五百二十一':43521,
'三千五百二十一':3521,
'三千五百零八':3508,
'三五六零':3560,
'一万零三十':10030,
'':0,
#1digit个
'零':0,
'一':1,
'二':2,
'三':3,
'四':4,
'五':5,
'六':6,
'七':7,
'八':8,
'九':9,
#2digits十
'十':10,
'十一':11,
'二十':20,
'二十一':21,
#3digits百
'一百':100,
'一百零一':101,
'一百一十':110,
'一百二十三':123,
#4digits千
'一千':1000,
'一千零一':1001,
'一千零一十':1010,
'一千一百':1100,
'一千零二十三':1023,
'一千二百零三':1203,
'一千二百三十':1230,
#5digits万
'一万':10000,
'一万零一':10001,
'一万零一十':10010,
'一万零一百':10100,
'一万一千':11000,
'一万零一十一':10011,
'一万零一百零一':10101,
'一万一千零一':11001,
'一万零一百一十':10110,
'一万一千零一十':11010,
'一万一千一百':11100,
'一万一千一百一十':11110,
'一万一千一百零一':11101,
'一万一千零一十一':11011,
'一万零一百一十一':10111,
'一万一千一百一十一':11111,
#6digits十万
'十万零二千三百四十五':102345,
'十二万三千四百五十六':123456,
'十万零三百五十六':100356,
'十万零三千六百零九':103609,
#7digits百万
'一百二十三万四千五百六十七':1234567,
'一百零一万零一百零一':1010101,
'一百万零一':1000001,
#8digits千万
'一千一百二十三万四千五百六十七':11234567,
'一千零一十一万零一百零一':10110101,
'一千万零一':10000001,
#9digits亿
'一亿一千一百二十三万四千五百六十七':111234567,
'一亿零一百零一万零一百零一':101010101,
'一亿零一':100000001,
#10digits十亿
'十一亿一千一百二十三万四千五百六十七':1111234567,
#11digits百亿
'一百一十一亿一千一百二十三万四千五百六十七':11111234567,
#12digits千亿
'一千一百一十一亿一千一百二十三万四千五百六十七':111111234567,
#13digits万亿
'一万一千一百一十一亿一千一百二十三万四千五百六十七':1111111234567,
#14digits十万亿
'十一万一千一百一十一亿一千一百二十三万四千五百六十七':11111111234567,
#17digits亿亿
'一亿一千一百一十一万一千一百一十一亿一千一百二十三万四千五百六十七':11111111111234567,
}
foreachintest_map:
assert(test_map[each]==getResultForDigit(each))
assert的作用是判断getResultForDigit与test_map里的对应key值是否一致
❿ Python数字货币量化交易进阶课程大家学的怎么样了
Python数字货币量化交易进阶课程,已经学完了,大体掌握了。