起因昨天下午准备复习毛概,但是想到期末考试都是选择题,我就在想能不能做一个刷题脚本。简单考虑了一下,打算做一个网页,如果自己写需要一些时间。emmm,我可以让ChatGPT帮我做一个!
我在聊天框里大致输入是这样的:“用javascript,写一个做题软件,题库以JSON格式存储,题与题空行间隔,每一题有四个答案,每个答案独立一行,正确答案在题目的最后一行,用户点击选项后有答对或答错的反馈并显示正确答案,还可以点击按钮进入下一题,点击按钮退出程序‘’
结果就有了这个刷题软件,我将它放到了博客上:接受洗礼吧! (jjuprising.github.io)
主要功能实现脚本充分利用了dom。
1.程序逻辑大致是首先准备一个题库数组,每个题目是对象的形式,包括题目、选项数组、正确答案,都是字符串的形式。
2.打开页面后会通过伪随机数随机在题库数组中抽取一个元素,通过dom渲染到页面上。每一个选项是一个<li>,监听选项点击事件,通过比对点击的<li>和正确答案(字符串)判断正误。
3.监听”下一题“点击事件,重复抽取题目和监听选项点击的操作
我在原代码上添加了样式调整 ...
错题
【栈和队列】栈和队列的共同特点是只允许在端点插入和删除元素。
【循环队列】数组Q[n]用来表示一个循环队列,front为队头元素的前一个位置,rear为队尾元素的位置,计算队列中元素个数的公式为:(rear-front)%n (rear-front+n)%n 。
虽然数学上没错,但负整数求模结果可能因为编译器环境不同而不同。
【KMP】设目标串为s=“abcabababaab”,模式串为p=“babab”,则KMP模式匹配算法的next数组为[-1,0,1,2] [-1,0,0,1,2] 。
next数组是看当前元素的前面的子串,如p[0]是b,记-1;p[1]为a,前面是b,无相同前后缀,记0;p[2]是b,前面是ba也记0,以此类推。
算法分析的目的是分析算法的效率以求改进
1.请写出单链表的插入和删除算法。
1234567891011121314151617181920212223242526272829303132333435363738394041//插入算法 template <typename DataType>void ...
01点17分,又是一个与奇怪问题较量的夜晚,这一次,我又成功解决了。
起因是发现数据结构书上关于Dijkstra算法的实现有点错误,想要自己更正一下,通过在不同位置插入输出字符来调试代码,找到了几处错漏。
96行的char直接赋值给string出现乱码,两种办法,一是string+=char,另一种是string.puch_back(char)
107行,由于是无向图,有可能路径会重复连上两次,我们要让路径不再逆向连接,例如A起始,默认第一轮是已知AB最短为10,在判断最短路径时,没有排除A,到时AB又连上A,变成ABA,而这个ABA是在path[0]上的,虽然每轮输出最短路径时就不需要输出path[起始点],这样子的错误也是无妨,只需要跳过path[起始点]即可,但是在调试过程中发现这个错漏,还是从根本上修正,可以把它改成有向图,把初始化的arc[j][i]=w去掉。
(自己的问题)输出结果为?,发现原来是经典for循环是其他变量在递增时还是写了i++…导致循环出不来
还有一个注意点需要补充,就是可变参数友元函数的声明:
12345678910111213 ...
原网站是:https://www.manyuan.ltd
在原网站的基础上作了修改,可以添加自定义文字,关键在于和爱心中心的相对位置需要随着界面的大小改变而改变,另外我将它部署到了我的博客上作为展示(github-hexo 如何添加自定义网页 - 简书 (jianshu.com))。
自定义的爱心效果:就这个爱心嘛 (jjuprising.github.io)
由于原本的画布是有做根据页面动态更新大小的,使得爱心总是位于界面的中央,这个功能非常好,因此我的想法在这个基础上获取画布的长宽,再加入微调值使得文字可以位于爱心的中央,同时能够保持和爱心的相对位置不变。此外,为了解决手机端适配的问题,在head中加上了最后一行META(令人惊讶的是,原网站没有这一句,但是依然可以适配手机页面,值得我去研究研究)。再者,我在尝试自己插入bgm时发现了audio设置auto还是无法自动播放的问题,最终参考原网站代码添加了播放检测的脚本解决了问题。
当然,这种方法是比较笨的,需要根据效果手动微整,也是目前我能想到的解决办法。而且,手机适配也做得一般,爱心会显示不全,且设置的字体加载不出来,效果差强人 ...
计划类文档的体例和内容关系简介/摘要
研究背景
现存问题
主要研究内容
创新点
实验结果/核心成果
项目背景问题的背景(技术的应用场景?系统的使用环境?)–>对核心问题的凝练表述(一个词组/一句话)–>理论重要性(问题本身在理论上未能完善解决)、社会意义、应用价值(如能完善,可能获得的收益)
相关工作调研(角度:研究领域、产业领域;国内、国外;论文、产品、专利;)
解决项目拟研究问题的核心技术(不止一个)的发展沿革及现状
应用要素本身如有与核心技术配合构成系统的情况(从系统角度对相关研究发展加以概述)
核心技术有没有已经做了或用别的技术来解决了这个问题的
你这么做又可以解决什么其他的问题
问题描述/拟研究问题
选择合适的套路:(数学模型法、场景描述法、系统构成法(功能需求、性能需求))
严谨、准确、无歧义的描述(独立于解决方案)
留扣子:将问题解决的核心方法要素/需求进行解构分析(–>潜移默化地催眠读者,尽可能使之对后续的研究内容、技术路线有顺理成章的认同感)
研究内容(总分总结构)从技术面对问题解决方案进行 ...
看看现在的时间吧01:00……本来想着今天能早点睡了,结果被这个问题折磨了一个多小时(尝试百度,然后CSDN上各种牛鬼蛇神的答案折磨)
感谢susu老师的录屏,经过几步简单的操作让我今晚能安心入眠。
起因在进行源码编译安装的开头
1234[root@localhost ~]# yum -y install gcc makeUnable to read consumer identityThis system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.Error: There are no enabled repos.
哈哈出现了这个问题”This system is not registered to Red Hat”
其实就是需要换一下国内源,而用CentOS应该是没有问题的,这里就介绍以下rehl8的解决办法。
新解决办法2023.1.2 好像阿里云的epel被删了,所以如果配置的阿里云的会失效了
挂好光驱之后
配置内容:
1 ...
错题
通过super可调用父类构造函数。对
构造函数的返回类型只能是void型。错,造函数必须与类名相同且没有返回值,void是空返回值并不是无返回值所以是错的
一般在创建新对象时,系统会自动调用构造函数。对
【单选题】下面赋值语句不合法的是___D___。
A.Long a=(Long)(long)3;
B.Long b=3L;
C. Long c=Long.parseLong(“3”);
D.Long d=(Long )3;
下面赋值语句不合法的是 D。在Java中,”Long”类是原始数据类型long的包装类,必须使用关键字”new”来构造包装类,才能创建有效的对象。从长值3创建Long对象的正确方法如下:
1Long d = new Long(3);
其他三个选项都是从长值3创建Long对象的有效方法。选项A从将整数值3转换为长值,然后再转换为Long的结果创建Long对象。选项B从长值3L创建Long对象。选项C通过调用Long类的parseLong方法,从字符串值”3”创建Long对象。
【单选题】java语言中,在定义类 ...
深度学习
未读基础知识机器学习机器学习三大范式
监督学习,数据+标签
无监督学习,大数据没法给标签,根据相似性将用户自动分成几类
同一类人群,产品可以互推
强化学习
扫地机器人,撞到扣分,没撞到加分
K邻近聚类算法
簇的个数是超参数,假设是3
随机选三个中心点,计算中心点和其他点的距离,求平均距离
改变中心点,如果距离要小,说明更合适作为中心点
中心点改变有多种策略
如何选取簇,对于多维,两两选择特征画图,多画几个看能分成几个簇,然后直接选最大的那个
如果在报告里,就做主成分分析,找出最具代表性的特征,两两组合判断簇个数,然后开始聚类
随机初始化选簇,然后进行聚类计算。目的就是逐渐逼近一个最优解
聚类算法
DBSCAN,在skilearn里有开源代码
AP邻近传播算法
逻辑回归这里就要提到sigmoid函数。比如,预测会不会下雨,样本标签只有会(1)和不会(0),这种情况没办法用线性方差拟合。而sigmoid就可以拟合这个关系。假设横轴是云雾密度,那么我们可以更具x轴得到一个预测值,如果大于0.5就预测为会下雨,小于0.5预测不会下雨
逻辑回归(logistic regress ...
部分来源:廖雪峰的官方网站
函数函数的参数使用默认参数解决调用时缺少实参问题,一定必选参数在前,默认参数在后
123456def power(x, n=2): s = 1 while n > 0: n = n - 1 s = s * x return s
12>>> power(5)25
定义默认参数要牢记一点:默认参数必须指向不变对象!
如:
123def add_end(L=[]): L.append('END')#向list尾插入 return L
12>>> add_end()['END']
但是,再次调用add_end()时,结果就不对了:
1234>>> add_end()['END', 'END']>>> add_end()['END', 'END', 'END']
要修改上面的例子, ...
12345678910111213141516171819202122232425262728293031323334function saveJSON(data, filename) { if (!data) { alert("保存的数据为空"); return; } if (!filename) filename = "json.json"; if (typeof data === "object") { data = JSON.stringify(data, undefined, 4); } var blob = new Blob([data], { type: "text/json" }), e = document.createEvent("MouseEvents"), a = document.crea ...