java
大知无涯者
qq 2216526509
展开
-
java 打字机
打字机向当前获得焦点的界面发出一系列键盘事件进行打字(英文输入)package myrobot;import java.awt.AWTException;import java.awt.Robot;import java.awt.event.KeyEvent;public class RobotTest{ public static void main(String[...原创 2019-03-21 14:29:52 · 382 阅读 · 0 评论 -
一元多项式回归
设拟合多项式为φm(x)残差平方和用最小二乘来确定系数a0,a1,…,am,设残差平方和Q对ak求偏导数,并令其等于零,有写成矩阵形式为:(上面的方程是解别人的图,原址奉上:https://www.cnblogs.com/144823836yj/p/5524610.html )接下来就是解线性方程组增广矩阵法由于需要构造系数为1,将进行大量浮点运算,况且矩阵的元素肯能很大...原创 2019-06-07 13:31:00 · 4034 阅读 · 0 评论 -
全排列迭代算法
全排列全排列就是将数集按照一定的顺序排列起来比如1,2,3的全排列为:全排列的数量n个数的全排列1* 2* 3*…*(n-1)*n即n的阶乘全排列算法原理对1,2,3,4,5进行全排列:首先将数据排序第一个排列:1,2,3,4,5第二个排列:1,2,3,5,4第三个排列:1,2,4,3,5第四个排列:1,2,4,5,3第五个排列:1,2,5,3,4...原创 2019-06-06 18:00:29 · 1557 阅读 · 0 评论 -
希尔伯特曲线
希尔伯特曲线希尔伯特曲线的构造方法:构造初始形状把已有图形缩小4倍(对应坐标缩小2倍),放在左下角将缩小图逆时针旋转90度放在右下角左右镜像对称用3条单位线段把4部分连接起来H为阶数,上图H=2等分数 :n=2^(H-1) -1最大边长:SIZE边长:eg=(1/2)^ H *SIZE边界宽度 : bd=eg/2希尔伯特曲线代码public class...原创 2019-05-13 17:12:37 · 9718 阅读 · 0 评论 -
希尔伯特曲线矩阵与动画
在上一篇中是通过缩小,旋转图形实现希尔伯特曲线,会受到整型运算干扰。这次将使用矩阵存储每个点的序号,完全避免整型运算的影响。希尔伯特曲线矩阵一阶希尔伯特曲线矩阵二阶希尔伯特曲线矩阵将二阶希尔伯特曲线矩阵分为4个象限能观察到4个象限的与一阶希尔伯特曲线矩阵有较大关系。比如第3象限为一阶希尔伯特曲线矩阵关于对角线 0 2对称或逆时针旋转90`第2象限为一阶希尔伯特曲线矩阵加4 ...原创 2019-05-14 16:59:19 · 1229 阅读 · 2 评论 -
求超大斐波那契数列,迭代法,通项公式法
斐波那契数列定义指的是这样一个数列:1、1、2、3、5、8、13、21、34从第3项开始,后一项都等于前两项之和。最简单的算法 public static int fibonacci(int n){ int a=1; int b=1; for(int i=3;i<=n;i++) { int c=b; b=a+b; a=c; } return b;...原创 2019-05-09 17:35:33 · 1083 阅读 · 0 评论 -
直线拟合最小二乘法
数据x=(1,2,3,4,5)y = (1,1.5,3,4.5,5)算法结果R语言运行结果算法原理x的均值:xp=sum(x1+x2+x3+…+xn)/ny的均值 :yp=sum(y1+y2+y3+…+yn)/nx的平方差之和:lxx=sum( (xi-xp) ^ 2 )协方差之和lxy=sum( (xi-xp)*(yi-yp) )拟合直线 y’=kx+bk=...原创 2019-05-09 15:53:16 · 4017 阅读 · 0 评论 -
数字转化成中文(int)
将一个正整数转化成中文(0~2^32-1)例:1000031,转换为list 一 零 零 零 零 三2 ,插入单位 一十 零个 万 零千 零百 零十 三个3 ,去零和零的单位 一十 万 零 三个4 ,去除单位 “个” 一十 万 零 三检验数(0)零(100003)一十万零三(8543332...原创 2019-04-30 17:40:13 · 1864 阅读 · 2 评论 -
布朗树 (扩散限制聚集模型)
animation截图:布朗树是一种分形结构,类似雪花。原理:粒子做随机运动,设置一个种子进入固定状态。当其它粒子运动到固定的粒子的附近时,也被固定住。代码public class BrownTree extends Application{ Pane pane=new Pane(); public static void main(String[] args) {laun...原创 2019-04-25 13:59:25 · 2851 阅读 · 1 评论 -
欧拉余数定理通解,求A的B次幂模C的值( A^B mod C)
#欧拉余数定理算法对于 A^B mod C1.如果 A ,C 不互质(互质:两个数做因式分解,公共因子只有1)通过约分使得新的C1与A互质,如果C1与A不互质,则重复此步骤。记录的约数积Y 和商S积2 如果 A 大于 C ,则A = A %C3 求C的欧拉函数值euler4 如果B不小于euler, B=B%euler5 计算 e=A^B ,此时A,B已经较小了6 A^...原创 2019-04-29 18:40:24 · 1782 阅读 · 0 评论 -
java迭代器模式
迭代器模式提供一种方法顺序访问一个集合对象中的各个元素,而又不暴露该对象的内部细节迭代器(Iterator)public interface Iterator<E> { //判断是否可继续迭代下去,即如果next返回元素而不是抛出异常,则返回true。 boolean hasNext(); //返回迭代中的下一个元素,如果迭代没有更多元素,抛出没有元素异常(NoSuc...原创 2019-04-20 16:24:22 · 226 阅读 · 0 评论 -
用级数进行对数计算,基于ln(x)求loga(b)
泰勒展开式ln(x+1) =x - x ^ 2 / 2 + x ^ 3 / 3 - x ^ 4 / 4 + …(|x|<=1,x!=-1)算法原理ln(x+1)要求 0<x+1<=2所以要将一般数作相应变换ln(x)分解 x=a*2^bln(x)=ln(a)+ln(2^b)=ln(a)+bln(2)此时a满足 0<a<=2 可以使用级数计算收敛...原创 2019-05-05 12:50:55 · 2715 阅读 · 0 评论 -
rand5()产生rand7()
用只能产生 1 2 3 4 5 的随机数产生1 2 3 4 5 6 7将先后产生的两个随机数拼成一个两位数,共25个,每个数概率相等,分为每3个一组,就有7组数,余下4个垃圾丢弃,利用率84%。算法代码 public static int random5() { return (int) (1+Math.random()*5); } public static int random...原创 2019-05-04 14:36:43 · 872 阅读 · 0 评论 -
数据的有序拟合
前言最近看到一个帖子,是一个将数据的有序拟合的问题。有许多人留言讨论了,但并没有给出较为全面的证明。原贴如下:https://www.v2ex.com/t/442035通过半天的努力,得到了较为可观的结果。问题一个单链表,每个节点里存储都是正整数,现在是无序的,可能会有重复数字,可以修改每个节点里的值,达到以下两个目标:[1] 单链表变为有序的,从大到小,可以大于等于.[2] 修...原创 2019-04-24 11:21:21 · 256 阅读 · 0 评论 -
javafx观察者模式Observable
对象无效监听器public interface InvalidationListener { public void invalidated(Observable observable);}什么是对象无效?被观察对象正在发生改变,或绑定了其他对象可观察对象 Observablepublic interface Observable { void addListener(In...原创 2019-05-03 18:13:22 · 2227 阅读 · 0 评论 -
复数与复变函数基本运算(加,减,乘,除,exp,log,sin,cos,幂运算)
运算公式(这将是百度上关于复数运算较为全面的一篇)加法 (a+bi)+(c+di)=(a+c)+(b+d)i减法 (a+bi)+(c+di)=(a-c)+(b-d)i乘法 (a+bi)(c+di)=(ac-bd)+(bc+ad)i除法 (a+bi)/(c+di)=(ac+bd)/(c ^ 2 + d ^ 2) +((bc-ad)/(c ^ 2...原创 2019-05-01 18:07:05 · 12233 阅读 · 2 评论 -
文本打印树的结构
树是一种非线性数据结构,将树的结构以图形展示出来可以更方便的理解主要步骤一个树节点da’ta:节点所维护的一个对象children:盛装子节点的容器father:记录父节点NAXSIZE:最大子节点数量FIXED:节点转字符串时固定大小字符缓存区提供树的缓存空间提供二维坐标访问树到字符串缓存区的映射节点与树的相对坐标:W(宽度):该节点右边所有叶子节点...原创 2019-04-15 16:00:19 · 809 阅读 · 0 评论 -
抢红包问题
抢红包问题许多人看到这个问题的第一反应是怎么分配红包,用0~1随机数或是X-Y(0,1)正态分布随机数,力图使红包分配更合理。但忽略了一个非常重要的字眼–“抢”,所以这个问题主要考虑的是并发编程。获得正态分布随机数方式1.Random中得nextGaussian()方法,是X-Y(0,1)标准正态分布随机数2 独立同分布的中心极限定理3.Box–Muller算法代码import ja...原创 2019-04-21 16:53:03 · 424 阅读 · 0 评论 -
子集算法
子集数量=2 ^ n = 1 (空集) + (2^n-1) (非空子集)算法原理:每个元素有两种处理方式,取或不取,共2 ^ n 种组合递归算法boolean[] done 为标志数组,表明对应位置元素取或不取public static void recursion(int[] root) { Objects.requireNonNull(root); boolean[] ...原创 2019-06-09 11:51:11 · 8041 阅读 · 1 评论