重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
import java.util.*;
创新互联是专业的景德镇网站建设公司,景德镇接单;提供成都做网站、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行景德镇网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
class Demo
{
public static void main(String[] args)
{
String s1 = "../.━../━ ━ ━/...━/./━.━ ━/━ ━ ━/..━";
String s2 = "ILOVEYOU";
method_1(s1);
method_2(s2);
}
public static void method_1(String s)//执行摩斯码转换字母
{
String[] st = s.split("/");
HashMapString,String hm = new HashMapString,String();
hm.put(".━","A");
hm.put("━...","B");
hm.put("━ .━.","C");
hm.put("━ ..","D");
hm.put(".","E");
hm.put("..━.","F");
hm.put("━ ━.","G");
hm.put("....","H");
hm.put("..","I");
hm.put(".━ ━ ━","J");
hm.put("━ .━","K");
hm.put(".━..","L");
hm.put("━ ━","M");
hm.put("━.","N");
hm.put("━ ━ ━","O");
hm.put(".━ ━.","P");
hm.put("━ ━.━","Q");
hm.put(".━ .","R");
hm.put("...","S");
hm.put("━","T");
hm.put("..━","U");
hm.put("...━","V");
hm.put(".━ ━","W");
hm.put("━ ..━","X");
hm.put("━.━ ━","Y");
hm.put("━ ━ ..","Z");
for(int x=0;xst.length;x++)
{
System.out.print(hm.get(st[x]));
}
}
public static void method_2(String s)//执行字母转换摩斯码
{
String st = s.toUpperCase();
char[] buf = st.toCharArray();
HashMapString,String hm = new HashMapString,String();
hm.put("A",".━");
hm.put("B","━...");
hm.put("C","━ .━.");
hm.put("D","━ ..");
hm.put("E",".");
hm.put("F","..━.");
hm.put("G","━ ━.");
hm.put("H","....");
hm.put("I","..");
hm.put("J",".━ ━ ━");
hm.put("K","━ .━");
hm.put("L",".━..");
hm.put("M","━ ━");
hm.put("N","━.");
hm.put("O","━ ━ ━");
hm.put("P",".━ ━.");
hm.put("Q","━ ━.━");
hm.put("R",".━ .");
hm.put("S","...");
hm.put("T","━");
hm.put("U","..━");
hm.put("V","...━");
hm.put("W",".━ ━");
hm.put("X","━ ..━");
hm.put("Y","━.━ ━");
hm.put("Z","━ ━ ..");
for(int x=0;xbuf.length;x++)
{
System.out.print(hm.get(buf[x]+""));
System.out.print("/");
}
}
}
以上代码可执行摩斯码---字母的双向转换,我在代码中给摩斯码加了分隔号,这样易于观看。亲,我做任务不容易呀~~!!求好评
代码如下:
import java.util.Arrays;
class Circle {
private int radius;
public Circle(int radius) {
this.radius = radius;
}
public int getRadius() {
return radius;
}
public void setRadius(int radius) {
this.radius = radius;
}
@Override
public String toString() {
return "Circle [radius=" + radius + "]";
}
}
public class App {
public static void main(String[] args) throws CloneNotSupportedException {
// 创建一个包含5个元素的数组
Circle[] circles = { new Circle(2), new Circle(10), new Circle(8), new Circle(4), new Circle(12) };
System.out.println(Arrays.toString(circles));
// 排序
Arrays.sort(circles, (x, y) - Integer.compare(x.getRadius(), y.getRadius()));
System.out.println(Arrays.toString(circles));
// 查找半径为 9 的圆
int index = Arrays.binarySearch(circles, 9, (x, y) - ((Circle)x).getRadius() - (int)y);
System.out.println(index =0 ? circles[index] : "没有找到半径为 9 的圆。");
// 查找半径为 10 的圆
index = Arrays.binarySearch(circles, 10, (x, y) - ((Circle)x).getRadius() - (int)y);
System.out.println(index =0 ? circles[index] : "没有找到半径为 10 的圆。");
// 拷贝数组
Circle[] circles2 = Arrays.copyOf(circles, circles.length);
System.out.println(Arrays.toString(circles2));
}
}
对于这个问题
我原来看过一个算法,她说觉得gesture recognizer 是比较好的解法。
他也有一个类似的算法,借鉴了原始手写ocr的思路来实现的。
把所有的笔画定义了个8个方向,然后将B的笔画可以分解成一个字符串。然后当人在触摸屏上画出一个符号时,也将它分解成8个方向的字符串,最后比较两个字符串的距离就能判断出和不同符号的近似度。
实现起来也很简单,第一步去噪,因为不同触摸屏的采样频率不同。
第二步把去噪后的数据转换成方向序列,把之前得到的点换成方向序列,并把方向序列归纳到之前定义的8个方向中去。
第三步把连续一致的方向合并。
第四步把小片段的移动略去,最后就能得出其实是画了一个凹的形状。
这个算法的厉害之处是可以实时识别,画到一半也能判断出来。
Realtime Gesture recognition源代码和demo都在上面了。
不过ocr问题的重点是怎么选择特征,比如知名的uci 数据集就有以下这些特征量:
1. lettr capital letter (26 values from A to Z) 2. x-box horizontal position of box (integer) 3. y-box vertical position of box (integer) 4. width width of box (integer) 5. high height of box (integer) 6. onpix total # on pixels (integer) 7. x-bar mean x of on pixels in box (integer)
三大排序
import java.util.Arrays;
public class ArraySort {
public static void main(String[] args) {
int[] arr={43,21,40,35,87,15};
//选择排序
//choiceSort(arr);
//冒泡排序
//buddleSort(arr);
//插入排序
insertSort(arr);
}
public static void insertSort(int[] arr) {
//21,35,40, 43,87,15
for(int j=1;jarr.length;j++){
int tmp=arr[j];//35
int i=j-1; //i:2 1
/*for(;i=0;i--){
//i:2: 4335
//i:1: 4035
//i:0: 2135
if(arr[i]tmp){
arr[i+1]=arr[i];
}else{
break;
}
}*/
for(;i=0arr[i]tmp;i--){
arr[i+1]=arr[i];
}
arr[i+1]=tmp;
System.out.println(
"最终结果为:"+Arrays.toString(arr));
}
}
public static void buddleSort(int[] arr) {
System.out.println("排序前的结果为:"
+Arrays.toString(arr));
for(int j=0;j=arr.length-2;j++){
for(int i=0;i=arr.length-2-j;i++){
System.out.println("第"+i+"次交换前:"
+Arrays.toString(arr));
if(arr[i]arr[i+1]){
int tmp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=tmp;
}
System.out.println("第"+i+"次交换后:"
+Arrays.toString(arr));
}
System.out.println("排序的结果为:"
+Arrays.toString(arr));
}
}
public static void choiceSort(
int[] arr) {
for(int i=0;i=arr.length-2;i++){
for(int j=i+1; j=arr.length-1;
j++){
System.out.println("第"+
j+"次交换前:"+Arrays.toString(arr));
if(arr[i]arr[j]){
int tmp=arr[j];
arr[j]=arr[i];
arr[i]=tmp;
}
System.out.println("第"+
j+"次交换后:"+Arrays.toString(arr));
}
}
System.out.println("排序的结果为:"
+Arrays.toString(arr));
}
}