p2

4.Tkinter图形绘制——图形版发牌程序

允我心安 提交于 2020-03-17 14:42:01
某厂面试归来,发现自己落伍了!>>> from tkinter import * import random n=52 def gen_pocker(n): x=100 while(x>0): x=x-1 p1=random.randint(0,n-1) p2=random.randint(0,n-1) t=pocker[p1] pocker[p1]=pocker[p2] pocker[p2]=t return pocker pocker=[i for i in range(n)] pocker=gen_pocker(n) print(pocker) (player1,player2,player3,player4)=([],[],[],[]) (p1,p2,p3,p4)=([],[],[],[]) root = Tk() #创建一个Canvas,设置其背景色为白色 cv = Canvas(root,bg = 'white',width = 700,height = 600) imgs=[] for i in range(1,5): for j in range(1,14): imgs.insert((i-1)*13+(j-1),PhotoImage(file=r'C:\Users\76096\Desktop\2D\2\images\\'+str(i)+'-'+str(j)+'

python基础教程:Python实现动态给类和对象添加属性和方法操作示例

夙愿已清 提交于 2020-03-10 01:36:24
本文实例讲述了Python实现动态给类和对象添加属性和方法操作。分享给大家供大家参考,具体如下: 动态给类和对象添加属性 定义一个Person类 class Person ( object ) : def __init__ ( self, name ) : self.name = name 给对象添加属性 # 创建2个Person,分别为p1,p2 p1 = Person ( 'amy' ) print ( p1.name ) p1.age = 10 # 给p1对象添加属性 print ( p1.age ) # 输出10 p2 = Person ( 'anne' ) print ( p2.name ) p2.age = 18 # 给p2对象添加属性 print ( p2.age ) # 输出18 运行结果: amy 10 anne 18 给类添加属性 p1 = Person ( 'amy' ) p2 = Person ( 'anne' ) Person.sex = 'female' print ( p1.sex ) # 输出 female print ( p2.sex ) # 输出 female p2.sex = 'male' print ( p2.sex ) # 输出 male 运行结果: female female male 动态给类和对象添加方法 动态给类添加方法 #

sv copy

别等时光非礼了梦想. 提交于 2020-02-22 14:42:35
1. 使用new操作符复制一个对象 1 class Header; 2 int id; 3 function new (int id); 4 this.id = id; 5 endfunction 6 7 function showId(); 8 $display ("id=0x%0d", id); 9 endfunction 10 endclass 11 12 class Packet; 13 int addr; 14 int data; 15 Header hdr; 16 17 function new (int addr, int data, int id); 18 hdr = new (id); 19 this.addr = addr; 20 this.data = data; 21 endfunction 22 23 function display (string name); 24 $display ("[%s] addr=0x%0h data=0x%0h id=%0d", name, addr, data, hdr.id); 25 endfunction 26 endclass 27 28 module tb; 29 Packet p1, p2; 30 initial begin 31 // Create a new pkt object called p1 32

75. 颜色分类(荷兰国旗问题)

China☆狼群 提交于 2020-02-16 02:48:50
75. 颜色分类(荷兰国旗问题) 1.题目描述 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。 示例: 进阶: 1.一个直观的解决方案是使用计数排序的两趟扫描算法。首先,迭代计算出0、1 和 2 元素的个数,然后按照0、1、2的排序,重写当前数组。 2.你能想出一个仅使用常数空间的一趟扫描算法吗? 2.思路 用三个指针(p0, p2 和curr)来分别追踪0的最右边界,2的最左边界和当前考虑的元素。 思路是沿着数组移动 curr 指针,若nums[curr] = 0,则将其与 nums[p0]互换;若 nums[curr] = 2 ,则与 nums[p2]互换。 算法: 1.初始化0的最右边界:p0 = 0。在整个算法执行过程中 nums[idx < p0] = 0. 2.初始化2的最左边界 :p2 = n - 1。在整个算法执行过程中 nums[idx > p2] = 2. 3.初始化当前考虑的元素序号 :curr = 0. 4.While curr <= p2 :   (1)若 nums[curr] = 0 :交换第 curr个 和 第p0个 元素,并将指针都向右移。   (2)若

ListNode19.删除倒数第N个节点

◇◆丶佛笑我妖孽 提交于 2020-02-12 23:02:24
思路:这道题主要是边界条件的考虑,如果删除的是第1个元素的时候,要考虑到 哑结点的使用 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode removeNthFromEnd ( ListNode head , int n ) { ListNode p2 = head ; while ( p2 != null && n > 0 ) { p2 = p2 . next ; n -- ; } ListNode p1 = new ListNode ( 0 ) ; p1 . next = head ; head = p1 ; while ( p2 != null ) { p1 = p1 . next ; p2 = p2 . next ; } p1 . next = p1 . next . next ; return head . next ; } } 来源: CSDN 作者: fsdgfsf 链接: https://blog.csdn.net/fsdgfsf/article/details/104282346

有关Bitcoin的椭圆曲线-secp256k1

痞子三分冷 提交于 2020-02-12 00:28:59
简介 椭圆曲线加密法是一种基于离散对数问题的非对称(或公钥) 加密法, 可以用对椭圆曲线上的点进行加法或乘法运算来表达。在Bitcoin中使用的是secp256k1这条椭圆曲线 椭圆曲线 y 2 mod p = x 2 +ax+b mod p a、b满足:4a 3 +27b 2 mod p!=0 这保证了x 3 +ax+b不包含重复的因子,所以该曲线就可用于生成一个群组 在一个有限域Fp,素数阶p的有限域内 p=2 256 -2 32 -2 9 -2 8 -2 7 -2 6 -2 4 -1 椭圆曲线上的加法 P3=P1+P2 计算方法:P1和P2之间画一条线,恰好与椭圆曲线上的一点相交,记此点为:P3’=(x,y),然后再x轴做映射的:P3=(x,-y) 特殊的情况 P1与P2为同一点,P1和P2之间的连线为P1的切线,曲线上有且只有一个新的点与该切线相交 P1和P2具有相同的x值,但不同的y值,则切线会垂直,这种情况下,P3=“无穷远点” 若一点是无穷远点,则与其相加不变,无穷远点类比0处理 secp256k1 y 2 =x 3 +ax+b,其中a=0且b=7,就是曲线secp256k1 G是生成元,n是G的素数阶 则任取k,Q=k*G,则k为私钥,Q为公钥 优点 占用很少的带宽和存储资源,秘钥的长度很短 让所有的用户都可以使用同样的操作完成域运算 小结

C++中的友元

断了今生、忘了曾经 提交于 2020-02-06 00:57:23
文章目录 1 C++中的友元 1.1 友元的概念 1.2 友元的用法 1.3 友元的注意事项 1.4 友元的尴尬 1 C++中的友元 1.1 友元的概念 什么是友元: 友元是C++中的一种关系。 友元关系发生在函数与类之间或者类与类之间。 友元关系是单项的,不能传递。 1.2 友元的用法 用法如下: 在类中以friend关键字声明友元。 类的友元可以是其它类或者具体函数。 友元不是类的一部分。 友元不受类中访问级别的限制。 友元可以直接访问具体类的所有成员。 友元的语法: 在类中用friend关键字对函数或类进行声明。 友元使用示例: # include <stdio.h> # include <math.h> class Point { double x ; double y ; public : Point ( double x , double y ) { this -> x = x ; this -> y = y ; } double getX ( ) { return x ; } double getY ( ) { return y ; } friend double func ( Point & p1 , Point & p2 ) ; } ; double func ( Point & p1 , Point & p2 ) { double ret = 0 ; ret =

改变窗体颜色

我的梦境 提交于 2020-02-05 09:40:08
编写一个程序改变窗体颜色 1 import java.awt.BorderLayout; 2 import java.awt.Color; 3 import java.awt.event.ActionEvent; 4 import java.awt.event.ActionListener; 5 import javax.swing.*; 6 public class cccccc implements ActionListener { 7 JButton jb1,jb2,jb3; 8 JFrame f; 9 JPanel p1,p2; 10 public cccccc(){ 11 f=new JFrame(); 12 p1=new JPanel(); 13 p2=new JPanel(); 14 jb1=new JButton("红色"); 15 jb2=new JButton("绿色"); 16 jb3=new JButton("蓝色"); 17 jb1.addActionListener(this); 18 jb2.addActionListener(this); 19 jb3.addActionListener(this); 20 p1.add(jb1); 21 p1.add(jb2); 22 p1.add(jb3); 23 f.add(p1,BorderLayout

两个链表的第一个公共节点

本秂侑毒 提交于 2020-02-05 07:59:24
今天刷题碰到一个神仙解法,真是溜,记录一下: 长度相同有公共结点,第一次就遍历到;没有公共结点,走到尾部NULL相遇,返回NULL 长度不同有公共结点,第一遍差值就出来了,第二遍一起到公共结点;没有公共,一起到结尾NULL。 例如:当两个链表长度不同有公共节点时,bc+cd+ac = ac+cd+bc,所以第二遍时一定会一起到达公共节点 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) { ListNode *p1 = pHead1; ListNode *p2 = pHead2; while(p1!=p2){ p1 = (p1==NULL ? pHead2 : p1->next); p2 = (p2==NULL ? pHead1 : p2->next); } return p1; } }; 来源: https://www.cnblogs.com/roscangjie/p/11136149.html

C++复习映射

霸气de小男生 提交于 2020-02-04 19:05:40
映射 1、 pair (头文件<utility>) 创建 pair<T1,T2>p; //T1,T2为两种类型 pair<T1,T2>p(v1,v2) //定义时初始化 赋值 typedef pair<string,double> P; P p1("Kite",1.2); P p2("Tom",3.2);P p3;p3 = p1; //直接赋值p1 == p2; //即p1,p2的第一二个元素对应相等p1 < p2; //遵循字典序比较p1和p2的第一二个元素 pair<int,double>p; p = make_pair(1,1.2);   访问 p.first、p.second分别返回p的第一二个元素 pair作为返回值 #include<utility> #include<iostream> using namespace std; pair<string,int> f(int a){ return make_pair("Tom",a); } int main(){ string name; int grade; tie(name,grade) = f(99); cout << name << ' ' << grade; return 0; } 2、 map (头文件<map>) 创建 map<key, value>m; //map同样可以用typedef进行简化声明; m