自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

秋水共长天一色的博客

打开秋天的内核

  • 博客(122)
  • 资源 (2)
  • 收藏
  • 关注

原创 递归的“中途折返”

递归的“折返跑“。数字即游戏。使用python编程获取魔法六角星。

2023-02-06 11:22:14 349

原创 勒让德符号破解奥数题

勒让德符号破解奥数题。

2022-11-01 10:13:02 178

原创 模重复平方算法

模重复平方算法。

2022-10-17 14:23:45 221

原创 佩尔(Pell)方程最小正整数解

佩尔(Pell)方程最小正整数解

2022-10-03 08:28:42 348

原创 正整数n的原根

在数论中,原根是一个无法绕开的概念。高斯在他的划时代数学神著《算术研究》中多次提到原根。2、欧拉函数值计算及欧拉函数所包含的整数集合统计。4、如果一个正整数的原根存在,计算它最小原根。都收录大量素数的最小原根,方便查阅。

2022-09-11 19:42:57 368

原创 功能日臻完善的围棋打谱软件(附源代码)

在3月份的时候,围棋打谱软件更新过一版,详见没有退缩的理由(每前进一步都很艰难,但很快乐)一文。到目前为止,软件的功能大为改善。不仅解决了打劫问题,还增加了悔棋、回放、研究等多项功能,并采用此软件操作,在B站发表了几个围棋讲解视频(神之一断——柯洁 Vs AlphaGo),感觉还是比较好的。目前点目功能也基本解决了关键算法,在此次一并公布,希望大家指点。一个人有了承诺就要兑现,这非常重要,非常重要,非常重要,重要的事说三遍。这个软件最后要达到一个什么程度,我不敢承诺,因为涉及到人工智能,心里一点底都没有。但

2022-07-12 09:56:15 727

原创 会解方程会画图的超级计算器

这个计算器功能强大,可以解方程、解不等式,判断素数,比较大小,映射,筛选,精度计算,求导,求积分,求极限,绘制图形等多项功能,操作简单。

2022-07-03 17:30:54 848

原创 那些看着眼热的图形几行代码搞定

python编程,导入sympy科学库,几行代码就可以画出各种漂亮图形,你也可以的。

2022-06-30 12:30:00 83

原创 你的文件安全吗?试试这款加密解密软件,提供源代码

你的文件安全吗?用这款加密解密软件试试,提供源代码网上有许多文件加密解密软件,但通常是没有公布源代码的。对于重要文件,为安全起见,最好还是用自行设计的软件进行加密解密。这款加密解密软件,是自行设计的,界面简洁,操作起来相当方便,后续提供源代码。加密前,先输入密码,再点击加密按钮。选择待加密文件,加密成功后会有文字提示。解密前,也要先输入密码,再点击解密按钮,选择待解密文件,解密成功后会有文字提示。观察源文件与加密文件内容,完全不同;观察源文件与解密文件内容,看不出有不同。采用16进制比较器进行比较

2022-06-15 10:32:30 131

原创 注册码生成器及加密程序

注册码生成器及加密程序

2022-06-07 16:03:38 4729

原创 半小时挑战九行代码(程序试金石)

半小时挑战九行代码(程序试金石) 编写一个在1,2,3,…,n(顺序不能变,n>=3)数字之间插入+或-或什么都不插入,使得计算结果为0的程序,并输出所有的可能性。 例如n=9时,1-23-4-56-7+89=0是一种可能性。

2022-04-12 08:23:33 127

原创 2021-09-19

走马灯数142857问题:有一个六位的整数abcdef,各位数均不相同,以1至6中的任意一个数字相乘,获得的六位数的各位仍然是abcdef的组合,求这个数。解法如下:待求的数范围为100000-170000,采用遍历的方法。设置两个函数,其中一个判断六位数是否各位数均不相同,符合条件的用另外一个函数判断乘2~6是否满足还是一个由abcdef组成的六位数,符合条件的进行打印。def digit_list(n): _digit = [] m = n for _ in range(

2021-09-19 11:42:20 86

原创 一个晚上十点定时关机程序

一个晚上十点定时关机程序方法1:考虑使用批处理文件,建立一个shut.bat文件,打开记事本编辑以下内容::looptimeout 10set hour=%time:~0,2%if %hour% EQU 22 shutdown -sgoto :loop关键语句shutdown -s,即刻关机命令,hour是一个变量,接收当前时间的小时数,至于if……EQU很好理解,如果hour等于22,即达到预设的关机时间,就执行关机命令。至于goto,就是条件不满足时一直循环往复。这个程序最大的痛点是可以

2021-09-19 09:30:02 419

原创 有时候,话可以反着理解

有时候,话可以反着理解A、B、C、D、E参加竞赛,根据下列条件哪些人参加了竞赛:1、A参加时B也参加;2、B和C只有一个参加;3、C和D或都参加或都不参加。4、D和E至少有一个人参加;5、如果E参加,那么A和D都参加。data = ["A", "B", "C", "D", "E"]for a in [0, 1]: for b in [0, 1]: for c in [0, 1]: for d in [0, 1]:

2021-07-22 13:42:10 70

原创 2021-07-18

好像只有一个答案给定等式: A B C D E D F G+ D F G____________ X Y Z D E其中每个字母代表不同的数字(0-9),编程求出这些数字,并打印等式。for g in [0, 5]: for a in range(1, 10): for d in range(1, 10): for b in range(0, 10): for c in range(0, 10):

2021-07-18 18:08:18 60

原创 缺失的第一个正数

力扣答题(4)给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。示例:输入:nums = [1,2,0]输出:3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/first-missing-positiveclass Solution(object): def firstMissingPositive(self, nums): """ :type nums: List[int]

2021-05-09 22:36:29 59

原创 2021-05-05

力扣答题(3)给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。示例:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3sum思路:暴力破解肯定会超时,用多指针方法比较有效。1、对数组从小到大进行排序。2、分别用三个指针指

2021-05-05 16:31:04 82

原创 2021-05-04

力扣答题(2)给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。class Solution(object): def trap(self, height): """ :typ

2021-05-04 12:58:52 114

原创 2021-05-02

力扣答题(1)给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ for i

2021-05-02 20:35:41 65

原创 2021-03-27

增加打劫功能其实打劫功能还是相对简单的,比那个不入气的判断要简单一些。大致的思路是:1、确定打劫的特征状态。在没有提子前,当出现打劫时,应该是黑白各有一子均无外气。2、当这种特征状态是首次出现,可以进行提劫;如果是连续重复出现,说明是违规提劫,要返回到上一个状态。其实就这么简单。那个不入气的逻辑有些曲折。例如轮黑落子,先看一下黑是否已经无外气,如果是,再判断白棋是否也无外气,如果是,说明是提白棋,不是不入气;如果不是(白棋无外气),说明黑是不入气,返回到上一个状态。有些晕哈。另外增加了一个小的功

2021-03-27 12:05:25 167 1

原创 没有退缩的理由

每前进一步都很艰难,但很快乐参考围棋软件前面那个围棋自娱程序写到提子时出了问题,找了一阵子,最后发现是一个break没有加,很是郁闷。大致是这样的,当每落下一子时,要判断这个子是否跟已在棋盘上相同颜色的子连接在一起,如果是,它可能把2块或3块最多4块原本未完全连接的棋连在一起,一旦它们完全连接,需要把几块棋合并在一起成为一个整体。问题就发生在合并的过程中,使用-1标注合并后需要删除的块,结果这个-1在特定情况下加到了最后,导致一块大棋丢失。对前面那个程序进行了修订,虽然还没有特意考虑打劫,但相信很快会

2021-03-25 22:23:04 180 1

原创 2021-03-22

围棋软件制作了一个简单的围棋自娱软件,功能还很不完善,主要是没有判断胜负和打劫功能,另外提子还有些问题,但基本框架已经完成,先放着看看,后续再改进吧。# coding=gbkimport osimport sysimport copyimport pygamefrom pygame.locals import *pygame.init()screen1 = pygame.display.set_mode((1, 1))os.environ['SDL_VIDEO_CENTERED']

2021-03-22 23:18:31 174

原创 五子棋人机对战(续)

五子棋人机对战(续)参考五子棋人机对战从tkinter改成pygame,主要是熟悉一下pygame的编程模式,具体的也没有什么好说的,就是觉得程序稍微简洁些,直接上代码吧。import osimport sysimport timeimport pygameimport win32apiimport win32conimport win32uifrom pygame.locals import *pygame.init()screen1 = pygame.display.set_

2021-02-19 23:01:28 338 1

原创 五子棋人机对战

五子棋人机对战参考:人机对战——填子游戏的攻防策略关于机器的应对策略,在前文中有所表述,不一一解释,本文进行了修缮和补强,但漏铜依然存在。增加了一个倒计时功能,测试了一下,感觉一般,还是留放在那里,表明曾经研究过,供今后完善。另外策略中增加了禁手。如果没有禁手和先手交换,理论上黑是稳赢的,但本程序还做不到这一点,看网友能否提供一个思路。from tkinter import *import tkinter as tkimport tkinter.messageboximport tkinter.

2021-02-17 13:24:13 906 1

原创 人机对战——填子游戏的攻防策略

人机对战——填子游戏的攻防策略问题:在18×18方阵中轮流在空白处放置黑白棋子,直到有一方形成横、竖、斜方向五连星获胜。参考:填子游戏把程序改成人机对战还是有些意思的。主要思路:1、人用鼠标点击落子,下棋策略靠人。2、机器的策略是:扫描个点,按防守和进攻分别给出分值,选择分值高的一方落子。3、如果分值达到或超过5分,即刻判决某一方获胜;然后分为连成无障碍的4子、连成有障碍的4子和无障碍的3子、连成两个无障碍的3子、连成一个无障碍的3子、连成二个无障碍的2子、连成一个无障碍的2子、其他七种情况,

2021-01-31 14:48:45 288 1

原创 2021-01-28

填子游戏在18×18方阵中轮流在空白处放置黑白子,直到有一方形成横、竖、斜方向五连星获胜。借鉴五子棋游戏编程思路,网上有许多,不一一赘述。直接看代码。from tkinter import *import tkinter.messageboximport numpy as np# 检查鼠标点击是否落在方格中,如果是,返回有效坐标def limit(event): global mark if mark == 0: for y in range(0, 18):

2021-01-28 23:29:07 129 1

原创 公务员经典考试题——翻币问题

公务员经典考试题——翻币问题硬币翻转问题:N(N是偶数)枚硬币均为正面朝上,每次翻转m枚硬币,要把所有的硬币翻转成反面朝上,求最短的操作序列(∗*∗代表正面,O代表反面)。这个问题有一定难度,思路大致如下:1、分别考虑以下几种情况:(1)n%m0或nm(2)m<N/2(3)m>N/2且n%m!=42、对于n%m0或nm,easy。3、对于m<N/2,重点讨论。(1)每次翻m个,直到剩余的∗*∗数量a落入到m<a<2*m之间。进入(2)。(2)a值取半数,为奇

2021-01-23 23:01:03 523 1

原创 硬币翻转

硬币翻转问题:N(N是偶数)枚硬币均为正面朝上,每次翻转N-1枚硬币,要把所有的硬币翻转成反面朝上,求最短的操作序列(*代表正面,O代表反面)。这个问题还是相当简单,如何把程序写漂亮才是重点。思路:每轮翻转,让一个硬币不翻转,其他都翻转。这个不翻转的硬币按顺序从数组中取即可。try: n = int(input("请输入硬币个数(偶数):\n")) if n % 2 != 0: print("输入错误!") exit() coin = ['*'

2021-01-17 10:31:58 543 1

原创 巧排数字

巧排数字问题:将连续整数1、2、……n(n<=12)按一定顺序排成一排,让相邻2个数之和和首尾两个数之和均为素数,输出所有排法。用递归肯定可以解决问题。def prime(n): # 判断是否素数 if n == 2: return True if n % 2 == 0: return False for i in range(3, int(n ** 0.5) + 1, 2): if n % i == 0:

2021-01-16 20:16:54 214

原创 假币之谜

假币之谜有八个硬币a,b,c,d,e,f,g,h,其中一枚是假币,从外观无法分辨,比真币或轻或重。使用天平,用最少比较次数,找出假币,并分辨出轻重。#include <iostream>using namespace std;int weight(float x, float y) { if (x == y)return 0; else if (x > y)return 1; else return 2;}int main(){ float a

2021-01-13 23:16:59 193

原创 递归运用——钱币系统问题

递归运用——钱币系统问题问题:(钱币系统问题) 某钱币系统由 k (k≤20) 种硬币组成,币值依次为 a[1]、 a[2]、……、a[k], 其中 a[i] (i=1,2,……,k) 为互不相同的正整数,且依降序排列, a[1]≤200。给定某整数币值 n(n≤3000), 要求用最少枚数的硬币表示这个币值。输入格式为:第一行:k (硬币种数)第二行:a[1]、 a[2]、 … a[k] (各币值用空格隔开,已按降序排列好)第三行:n (给定的币值)直接在屏幕上输出结果。如果该钱币系统无法表示币

2021-01-10 15:48:12 298

原创 2021-01-03

问题既复杂又简单问题:编写一个在1,2,…,n(顺序不能变,n<=9)数字之间插入+或-或*或/或什么都不插入,使得计算结果为0的程序,并输出所有的可能性。#include<iostream>#include<deque>#include<vector>#include <math.h> #include<string>using namespace std;int n;//以'0'、'1'、'2'、替代' '、'+'、'

2021-01-03 23:21:30 175

原创 C++——do while应用

C++——do while应用移动问题:有一行数据,左边有n个1,右边有n个2,1和2相邻可以交换,至无连续的1相邻和无连续的2相邻为止。显示移动过程。这个问题一开始认为用递归应该没有问题,程序如下:#include <iostream>#include<deque>#include<time.h>using namespace std;void dfs(string s);deque <string> result;string sourc

2021-01-02 14:49:37 204

原创 继续修炼——从一种状态到另一种状态的最短路径(之goto语句)

继续修炼——从一种状态到另一种状态的最短路径(之goto语句)参考:继续修炼——从一种状态到另一种状态的最短路径还是把题目再说一遍,不然续得太多,都不知道题目是什么了。问题:在一行数据中,有3个1,3个2,1个0,0(空格)在中间,1和2分居左右,每个数据占据一格,如下:1, 1, 1, 0, 2, 2, 2通过移动把上述排列变成:2, 2, 2, 0, 1, 1, 1移动规则:1、1只能向右移动,2只能向左移动。2、在下列两种条件下可以移动:一是移动一格,恰好进入到空格子中,二是跳过

2021-01-01 22:38:28 192

原创 继续修炼——从一种状态到另一种状态的最短路径

继续修炼——从一种状态到另一种状态的最短路径(续三)参考继续修炼——从一种状态到另一种状态的最短路径(再续)用C++再写一遍:#include <iostream>#include<deque>#include<time.h>using namespace std;void dfs(string s);deque <string> result;string source, target;time_t start_time;int n;

2021-01-01 12:26:18 214

原创 2020-12-31

继续修炼——从一种状态到另一种状态的最短路径(再续)参考:继续修炼——从一种状态到另一种状态的最短路径(续)当n超过12以后,宽搜就显得时间漫长了。因此,改进方法是必然的。采用递归的方法是解决这类问题比较好的方法。设置了一个交换函数和一个递归函数,在四种情况下递归,即向左移动的两种方式和向右移动的两种方式,程序就不详解解释了。import copyimport timedef dfs(s): state = copy.deepcopy(s) if state == target

2020-12-31 23:29:53 123

原创 2020-12-30

继续修炼——从一种状态到另一种状态的最短路径(续)参见:继续修炼——从一种状态到另一种状态的最短路径问题:在一行数据中,有3个1,3个2,1个0,0(空格)在中间,1和2分居左右,每个数据占据一格,如下:1, 1, 1, 0, 2, 2, 2通过移动把上述排列变成:2, 2, 2, 0, 1, 1, 1移动规则:1、1只能向右移动,2只能向左移动。2、在下列两种条件下可以移动:一是移动一格,恰好进入到空格子中,二是跳过一个与自身非相同数字进入到空格。数字移动或跳动之后留下一个空格。要求

2020-12-30 22:42:16 85 1

原创 2020-12-30

继续修炼——从一种状态到另一种状态的最短路径问题:有两行数据,第一行3个,第二行5个,包括1-5和3个0。数据交换的规则是:各行相邻数据其中之一为0的(另一个不为0)可以相互交换。上下两行之间只能交换中间位置(位置1和位置5)的数据,并且两个数据之一为0(另一个不为0)。例如: 4 5 1 0 2 3 0 0 移动一步可以转换到 4 5 1 0 2 0 3 0 然后再移动一步转换到 4 0 1 0 2 5 3 0 找出从一

2020-12-30 10:46:01 113 1

原创 2020-12-22

八皇后问题——经典再现在8×8的方格中,放置8个皇后,使其相互不冲突,即任意一个皇后所在的行、列和斜线均无其它皇后。以下是其中两种放置方法。 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 2 0 0 0 3 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 6 0 0 0 0 0

2020-12-22 22:47:12 114 1

原创 蛇形排列的种数

蛇形排列的种数问题:在4×4方格中按蛇形排列放置1-16个数字,以下是二种放置方法:13 12 1 214 11 4 315 10 5 616 9 8 71 2 13 124 3 14 115 16 15 106 7 8 9计算总共有多少种放置方法,并打印其中的20种放置方法。这应该是一道竞赛题的变种。解题思路如下。1、分清楚外层递归和内层递归,这个相当关键,详见程序。2、进入放置环节前先看放置是否越

2020-12-21 19:36:46 3428 1

围棋打谱软件,正常下棋并悔棋,具有提子、打劫、不入气等基本功能,按sgf格式保存棋谱,在回放棋谱的基础上进行研究,可以从任何位置

围棋打谱软件 主要功能: 1、正常下棋并悔棋,具有提子、打劫、不入气等基本功能。 2、按sgf格式保存棋谱。 3、回放棋谱。 4、在回放棋谱的基础上进行研究,可以从任何位置开始进行研究,研究的结果可以保存为棋谱。 5、有声音提示。

2022-04-27

Python科学计算器

1、具有科学计算功能。按照Python的方式输入,键盘按键和鼠标点击按钮混合输入。 2、得到math和sympy两库支持,可以精确计算,无理数用pi,π、e表示。 3、基本解决浮点数计算存在明显漏洞问题。 4、具有复制、粘贴和保存功能。 5、可以解一元多次方程,根采用精确表达方式。 6、具有转换功能。实现十进制与二进制、八进制、十六进制的转换;实现千米与英里、纳米、光年的转换;实现摄氏度与华氏度、开氏度、兰氏度的转换。 7、更多信息,请阅读https://blog.csdn.net/qsgctysj/article/details/108024541

2020-08-16

空空如也

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

TA关注的人

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