- 博客(75)
- 资源 (1)
- 收藏
- 关注
原创 python类基础之classmethod、staticmethod使用
一、类三种方法1、实例方法:写在类里面,比如def __init__(self, url): def instance(self):带有self标志。应用:给类实例使用,需要实例化。可以调用静态方式2、类方法:需要classmethod装饰,比如@classmethoddef func_for_class(cls)cls相当于类名Obj 。应用:给类使用,...
2019-09-27 20:43:08
245
1
原创 socket网络编程改进
#include "myhead.h"int main(){ int socketfd = 0; struct sockaddr_in sock_server = {0}; int ret = 0; char msg[20] = {0}; socketfd = socket(PF_INET, SOCK_STREAM, 0); if (-1 =...
2017-07-24 22:03:16
287
原创 UDP服务器与客户端
#include "myhead.h"int main(){ int ret = 0; int socketfd = 0; struct sockaddr_in sock_server = {0}; struct sockaddr_in sock_client = {0}; int len = sizeof(struct sockaddr); char m...
2017-07-17 21:44:19
267
原创 TCP并发服务器
include “myhead.h”int main() { int ret = 0; int socketfd = 0; int clientfd = 0; pid_t pid = 0; char recvbuf[40] = {0}; int recvcnt = 0;struct sockaddr_in sock_server = {0
2017-07-14 21:56:01
206
原创 C++note3
函数的重载C中,每个函数都必须有唯一的一个名字,这个就必须记住每一个函数的名字。例如经常所见的求最大值的函数,数据类型不同,函数名不能相同。int max1(int ,int);int max2(int ,int, int);double max3(double, double);C++中允许同名函数存在,但需要函数的参数不同:即形参个数不同或形参个数相同,...
2017-07-11 22:17:57
314
原创 C++笔记@(2)
new ,delete1. malloc ,free int *p = (int *)malloc(sizeof(int)*10); free(p); 2. new,delete2.1 单个类型 指针 = new 数据类型 int *p = new int; delete p;2.2 希望连续分配的数据int *p = new in...
2017-07-10 22:57:42
195
原创 C++学习笔记
命名空间在C++中我们经常会碰到”using namespace”等字符,namespace就是命名空间,而using 属于声明;1.1 命名空间的概念C++中采用单一的全局变量的命名空间,如果在一个空间中,两个变量或函数的名字一样,编译的时候就会冲突。 命名空间就是为了解决C++中函数变量的命名冲突所采取的一种措施,能够解决多模块协同开发出现 变量函数命名的冲突问题。 在这里面可
2017-07-08 22:15:33
158
翻译 常胜将军
现有21根火柴,两人轮流取,每人每次可以取走1至4根,不可多取,也不能不取,谁取最后一楰火柴谁输。请编写一个程序进行人机对弈,要求人先取,计算机后取;计算机一方为“常胜将军”。*问题分析与算法设计在计算机后走的情况下,要想使计算机成为“常胜将军”,必须找出取 关键。根据本题的要求枷以总结出,后走一方取子的数量与对方刚才一步取子的数量之和等于,就可以保证最后一个子是留给先取子的那个人的。据此分...
2017-07-07 21:52:27
351
翻译 黑白子交换
有三个白子和三个黑子如下图布置:○ ○ ○ . ● ● ●游戏的目的是用最少的步数将上图中白子和黑子的位置进行交换:● ● ● . ○ ○ ○游戏的规则是:(1)一次只能移动一个棋子; (2)棋子可以向空格中移动,也可以跳过一个对方的棋子进入空格,但不能向后跳,也不能跳过两个子。请用计算机实现上述游戏。*问题分析与算法设计计算机解决胜这类问题的关键是要找出问题的规律,或者说是要制定一套...
2017-07-06 21:55:44
584
翻译 自动发牌
一副扑克有52张牌,打桥牌时应将牌分给四个人。请设计一个程序完成自动发牌的工作。要求:黑桃用S(Spaces)表示;红桃用H(Hearts)表示;方块用D(Diamonds)表示;梅花用C(Clubs)表示。*问题分析与算法设计按照打桥牌的规定,每人应当有13张牌。在人工发牌时,先进行洗牌,然后将洗好的牌按一定的顺序发给每一个人。为了便于计算机模拟,可将人工方式的发牌过程加以修改:先确定好发牌...
2017-07-05 20:34:59
524
翻译 回文数的形成
任取一个十进制整数,将其倒过来后与原来的整数相加,得到一个新的整数后重复以上步聚,则最终可得到一个回文数。请编程验证。*问题分析与算法设计回文数的这一形成规则目前还属于一个猜想,尚未得到数学上的证明。有些回文数要经历上百个步聚才能获得。这里通过编程验证。题目中给出的处理过程很清楚,算法不需要特殊设计。可按照题目的叙述直接进行验证。#include <stdio.h>#de...
2017-07-04 21:32:09
691
翻译 尼科彻斯定理
验证尼科彻斯定理,即:任何一个整数的立方都可以写成一串连续奇数的和。××*问题分析与算法设计本题是一个定理,我们先来证明它是成立的。对于任一正整数a,不论a是奇数还是偶数,整数(a×a-a+1)必然为奇数。构造一个等差数列,数列的首项为(a×a-a+1),等差数列的差值为2(奇数数列),则前a项的和为:a×((a×a-a+1))+2×a(a-1)/2=a×a×a-a×a+a+a×a-a...
2017-07-02 21:06:06
294
翻译 卡布列克常数
验证卡布列克运算。任意一个四位数,只要它们各个位上的数字是不全相同的,就有这样的规律:1)将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数;2)将组成该四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数中含有0,则得到的数不足四位);3)求两个数的差,得到一个新的四位数(高位零保留)。重复以上过程,最后得到的结果是6174,这个数被称为卡布...
2017-07-01 21:47:04
3179
翻译 四方定理
数论中著名的“四方定理”讲的是:所有自然数至多只要用四个数的平方和就可以表示。请编程证此定理。*问题分析与算法设计本题是一个定理,我们不去证明它而是编程序验证。对四个变量采用试探的方法进行计算,满足要求时输出计算结果。#include <stdio.h>#include <stdlib.h>int main(){ int number, i, ...
2017-06-30 20:39:26
3260
翻译 角谷猜想
日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。*问题分析与算法设计本题是一个沿未获得一般证明的猜想,但屡试不爽,可以用程序验证。题目中给出的处理过程很清楚,算法不需特殊设计,可按照题目的叙述直接进行证。...
2017-06-29 22:34:39
621
翻译 .奇数平方的一个有趣性质
编程验证“大于1000的奇数其平方与1的差是8的倍数”。*问题分析与算法设计本题是一个很容易证明的数学定理,我们可以编写程序验证它。题目中给出的处理过程很清楚,算法不需要特殊设计。可以按照题目的叙述直接进行验证(程序中仅验证到3000)。#include int main(){ long int a; for (a = 1001; a <= 3000;
2017-06-28 12:16:42
507
翻译 求π的近似值(2)
利用随机数法求π的近似值*问题分析与算法设计随机数法求π的近似值的思路:在一个单位边长的正方形中,以边长为半径,以一个顶点为圆心,在政权方形上作四分之一圆。随机的向正方形内扔点,若落入四分之一圆内则计数。重复向正方形内扔足够多的点,将落入四分之一圆内的计数除以总的点数,其值就是π值四分之一的近似值。按此方法可直接进行编程,注意:本方法求出的π值只有统计次数足够多时才可能准确。#
2017-06-27 22:46:12
2747
1
翻译 .求π的近似值
请利用“正多边形逼近”的方法求出π的近似值*问题分析与算法设计利用“正多边形逼近”的方法求出π值在很早以前就存在,我们的先人祖冲之就是用这种方法在世界上第一个得到精确度达小数点后第6位的π值的。利用圆内接正六边形边长等于半径的特点将边数翻番,作出正十二边形,求出边长,重复这一过程,就可获得所需精度的π的近似值。假设单位圆内接多边形的边长为2b,边数为i,则边数加倍后新的正多
2017-06-25 21:26:53
843
翻译 波松瓦酒的分酒趣题
法国著名数学家波瓦松在表年时代研究过一个有趣的数学问题:某人有12品脱的啤酒一瓶,想从中倒出6品脱,但他没有6品脱的容器,仅有一个8品脱和5品脱的容器,怎样倒才能将啤酒分为两个6品脱呢?*问题分析与算法设计将12品脱酒 8品脱和5品脱的空瓶平分,可以抽象为解不定方程:8x-5y=6其意义是:从12品脱的瓶中向8品脱的瓶中倒x次,并且将5品脱瓶中的酒向12品脱的瓶中倒y次,最后在
2017-06-24 21:20:58
543
翻译 小明买书
小明假期同爸爸一起去书店,他选中了六本书,每本书的单价分别为:3.1,1.7,2,5.3,0.9和7.2。不巧的是,小明的爸爸只带了十几块钱,为了让小明过一个愉快的假期,爸爸扔然同意买书,但提邮购一个要求,要小明从六本书中选出若干本,使得单价相加所得的和同10最接近。你能够帮助小明解决这个问题吗?*问题分析与算法设计分析题意,可将题目简化为:从六个数中选出若干个求和,使得和与10的
2017-06-23 22:32:54
2115
翻译 10个小孩分糖果
十个小孩围成一圈分糖果,老师分给第一个小孩10块,第二个小孩2块,第三个小孩8块,第四个小孩22块,第五个小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩6块,第九个小孩14块,第十个小孩20块。然后所有的小孩同时将手中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样几次后大家手中的糖的块数一样多?每人各有多少块糖?*问题分析与算法设计题目描述的分糖过程是
2017-06-22 10:59:56
2636
翻译 可称1~40磅的4块砝码
法国数学家梅齐亚克在他著名的《数字组合游戏》(1962)中提出了一个问题:一位商人有一个重40磅的砝码,一天不小心将砝码摔成了四块。后来商人称得每块的重量都是整磅数,而且发现这四块碎片可以在天平上称1至40磅之间的任意重量。请问这四块碎片各重多少?*问题分析与算法设计本题是上一题的发展。题目中给出的条件是“在天平上”,这意味着:同一砝码既可以放在天平的左侧,也可以放在天平的右侧。若
2017-06-20 22:33:52
670
翻译 和数能表示1~23的5个正整数
已知五个互不相同的正整数之和为23,且从这五个数中挑选若干个加起来可以表示从1到23之内的全部自然数。问这五个数是什么?*问题分析与算法设计从计算机程序设计的角度来说,可以用穷举法分解23,然后判断所分解的五个数是否可以表示1到23 之间的全部整数。*程序说明与注释#includeint main(){ int a, b, c, d, e, i, j,
2017-06-19 21:59:54
3094
1
翻译 邮票问题
某人有四张3分的邮票和三张5分的邮票,用这些邮票中的一张或若干张可以得到多少种不同的邮资?*问题分析与算法设计 将问题进行数学分析,不同张数和面值的邮票组成的邮资可用下列公式计算:S=3*i+5*j其中i为3分邮柰的张数,j为5分的张数按题目的要求,3分的邮票可以取0、1、2、3、4张,5分的邮票可以取0、1、2、3张。采用穷举方法进行组合,可以求出这些不同面值不同张数的邮标组
2017-06-17 19:54:00
780
翻译 哲理问题
这是17世纪的法国数学家加斯帕在《数目的游戏问题》中讲的一个故事:15个教徒和15 个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了一个办法:30个人围成一圆圈,从第一个人开始依次报数,每数到第九个人就将他扔入大海,如此循环进行直到仅余15个人为止。问怎样排法,才能使每次投入大海的都是非教徒。*问题分析与算法设计约瑟夫问题并不难,但求解的方法很多;题目的
2017-06-16 21:48:09
231
翻译 魔术2
魔术师再次表演,他将红桃和黑桃全部迭在一起,牌面朝下放在手中,对观众说:最上面一张是黑桃A,翻开后放在桌上。以后,从上至下每数两张全依次放在最底下,第三张给观众看,便是黑桃2,放在桌上后再数两张依次放在最底下,第三张给观众看,是黑桃3。如此下去,观众看到放在桌子上牌的顺序是:黑桃 A 2 3 4 5 6 7 8 9 10 J Q K红桃 A 2 3 4 5 6 7 8 9 10 J Q K
2017-06-15 22:27:17
256
翻译 魔术
魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一起,牌面朝下。对观众说:我不看牌,只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?你们就看。魔术师将最上面的那张牌数为1,把它翻过来正好是黑桃A,将黑桃A放在桌子上,然后按顺序从上到下数手上的余牌,第二次数1、2,将第一张牌放在这迭牌的下面,将第二张牌翻过来,正好是黑桃2,也将它放在桌子上,第三次数1、2、3,将前面两张依次放在这迭牌的
2017-06-14 22:12:39
161
翻译 累进可除
求九位累进可除数。所谓九位累进可除数就是这样一个数:这个数用到1到9这九个数字组成,每个数字刚好只出现一次。这九个位数的前两位能被2整除,前三位能被3整除……前N位能被N整除,整个九位数能被9整除。*问题分析与算法设计问题本身可以简化为一个穷举问题:只要穷举每位数字的各种可能取值,按照题目的要求对穷举的结果进行判断就一定可以得到正确的结果。问题中给出了“累进可除”这一条件,就使
2017-06-13 22:17:34
489
翻译 除法2
下列除式中仅在商中给定了一个7,其它打×的位置全部是任意数字,请还原。×7××× ————-商—————— 除数 ——————-×××| ×××××××× ————-被除数×××× ————-1)————— ××× ————-2)××× ————-3)—————×××× ————-4)××× ————-5)—————–×××× ————-6)
2017-06-12 20:39:31
976
翻译 除法
首先分析题目,由除式本身尽可能多地推出已知条件。由除式本身书已知:1、被除数的范围是10000到99999,除数的范围是10到99,且可以整除;2、商为100到999之间,且十位数字为7;3、商的第一位与除数的积为三位数,且后两位为77;4、被除数的第三位一定为4;5、 7乘以除数的积为一个三位数,且第二位为7;6、商的最后一位不能为0,且与除数的积为一个二位数。由已知
2017-06-11 23:03:26
300
翻译 乘法2
#include#define NUM 5#define C_NUM 4 int a[NUM + 1]; int b[] = {0, 2, 3, 5, 7};int f(long sum);int main(){ int i, not_finish = 1; long int sum1, sum2, sum3, sum4; i = 2;
2017-06-10 21:52:27
156
翻译 乘法
A代表数字0到9中的前五个数字,Z代表后五个数字,请还原下列乘式。A Z A× A A Z————A A A AA A Z ZZ A A————Z A Z A A*问题分析与算法设计问题本身并不复杂,可以对乘式中的每一位使用穷举法,最终可以得到结果。本题的关键在于怎样有效的判断每个部分积的每一位是否满足题意,这一问题处理不好,编写的程序会很长。程序实
2017-06-09 22:11:54
226
翻译 减法
将1、2、3、4、5、6、7、8、9九个数字分成二组,每个数字只能用一次,一组形成一个5位数,另一组形成一个4位数,使得前者为后者的n倍。求所有满足条件的5位数和4位数。(注意:N的最大值等于68,68以内的某些N也是不可能的。不可能的N值包括:1、10、11、20、21、25、30、31等共32个。) 62.由8个整数形成奇特的立方体任意给出8个整数,将这8个
2017-06-08 22:18:14
266
翻译 平方数
将1、2、3、4、5、6、7、8、9九个数字分成三组,每个数字只能用一次,即每组三个数不允许有重复数字,也不许同其它组的三个数字重复,要求每组中的三位数都组成一个平方数。*问题分析与算法设计本问题的思路很多,这里介绍一种简单快速的算法。首先求出三位数中不包含0且是某个整数平方的三位数,这样的三位数是不多的。然后将满足条件的三位数进行组合,使得所选出的3个三位数的9个数字没有重复
2017-06-07 21:45:54
308
翻译 三位数
将1到9 这九个数字分成三个3位数,分求第一个3位数,正好是第二个3位数的二倍,是第三个3位数的三倍。问应当怎样分法。*问题分析与算法设计问题中的三个数之间是有数学关系的,实际上只要确定第一个三位数就可以解决问题。试探第一个三位数之后,计算出另外两个数,将其分别分解成三位数字,进行判断后确定所试探的数是否就是答案。需要提醒的是:试探的初值可以是123,最大值是333。因为不
2017-06-06 22:20:12
489
翻译 填表格
将1、2、3、4、5和6 填入下表中,要使得每一列右边的数字比左边的数字大,每一行下面的数字比上面的数字大。按此要求,可有几种填写方法?*问题分析与算法设计按题目的要求进行分析,数字1一定是放在第一行第一列的格中,数字6一定是放在第二行第三列的格中。在实现时可用一个一维数组表示,前三个元素表示第一行,后三个元素表示第二行。先根据原题初始化数组,再根据题目中填 写数字的要求进行试探。
2017-06-05 22:27:14
1197
翻译 拉丁方
1 #include 2 #define N 6 3 4 int main() 5 { 6 int i, j, k, t; 7 printf("The possible Latin Squares of order %d are:\n", N); 8 for (j = 0; j < N; j++) 9 { 10
2017-06-03 23:08:17
883
原创 单向循环链表 通讯录
#include #include #include #define T 1#define F -1typedef int Boolean;typedef char Elementname;typedef char Elementadd;struct Node{ Elementname name[20]; char number[20]; Eleme
2017-06-02 22:26:02
698
1
翻译 跑步
张王李三家各有三个小孩。一天,三家的九个孩子在一起比赛短跑,规定不分年龄大小,跑第一得9分,跑第2得8分,依此类推。比赛结果各家的总分相同,且这些孩子没有同时到达终点的,也没有一家的两个或三个孩子获得相连的名次。已知获第一名的是李家的孩子,获得第二的是王家的孩子。问获得最后一名的是谁家的孩子?*问题分析与算法设计按题目的条件,共有1+2+3+…+9=45分,每家的孩子的得分应为15
2017-06-01 22:05:16
282
翻译 国籍问题
在一个旅馆中住着六个不同国籍的人,他们分别来自美国、德国、英国、法国、俄罗斯和意大利。他们的名字叫A、B、C、D、E和F。名字的顺序与上面的国籍不一定是相互对应的。现在已知:1)A美国人是医生。2)E和俄罗斯人是技师。3)C和德国人是技师。4)B和F曾经当过兵,而德国人从未参过军。5)法国人比A年龄大;意大利人比C年龄大。6)B同美国人下周要去西安旅行,而C同法国人下周要去
2017-05-31 22:05:18
570
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人