编程题目----约德尔测试

约德尔测试

									题目描述

兰博和提莫闲聊之后,回归到了他们的正题,约德尔人的未来。

说起约德尔人的未来,黑默丁格曾经提出了一个约德尔测试,将约德尔人的历史的每个阶段都用一个字符表达出来。(包括可写字符,不包括空格。)。然后将这个字符串转化为一个01串。转化规则是如果这个字符如果是字母或者数字,这个字符变为1,其它变为0。然后将这个01串和黑默丁格观测星空得到的01串做比较,得到一个相似率。相似率越高,则约德尔的未来越光明。

请问:相似率为多少?


输入

每组输入数据为两行,第一行为有关约德尔人历史的字符串,第二行是黑默丁格观测星空得到的字符串。

(两个字符串的长度相等,字符串长度不小于1且不超过1000。)


样例输入

@!%12dgsa

010111100


输出

输出一行,在这一行输出相似率。用百分数表示。(相似率为相同字符的个数/总个数,精确到百分号小数点后两位。printf("%%");输出一个%。)


样例输出

66.67%


时间限制C/C++语言:1000MS其它语言:3000MS

内存限制C/C++语言:65536KB其它语言:589824KB

import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        while(scanner.hasNext()){
            String a=scanner.next();
            String b=scanner.next();
            int len=a.length();
            int same=0;
            char[] aa=a.toCharArray();
            char[] bb=b.toCharArray();
            for(int i=0;i<len;i++)
        if(((String.valueOf(aa[i]).matches("[a-zA-Z0-9]"))&&bb[i]==‘1‘)||((!String.valueOf(aa[i]).matches("[a-zA-Z0-9]"))&&bb[i]==‘0‘))
                    same++;
            System.out.printf("%.2f",(double)same*100/len);
            System.out.println("%");
        }
    }
}

/*import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        while(scanner.hasNext()){
            String a=scanner.next();
            String b=scanner.next();
            int len=a.length();
            int same=0;
            char[] aa=a.toCharArray();
            char[] bb=b.toCharArray();
            for(int i=0;i<len;i++){
            if(bb[i]==‘1‘&&((aa[i]>=‘0‘&&aa[i]<=‘9‘)||(aa[i]>=‘a‘&&aa[i]<=‘z‘)||(aa[i]>=‘A‘&&aa[i]<=‘Z‘))) same++;
            else if(bb[i]==‘0‘&&!((aa[i]>=‘0‘&&aa[i]<=‘9‘)||(aa[i]>=‘a‘&&aa[i]<=‘z‘)||(aa[i]>=‘A‘&&aa[i]<=‘Z‘))) same++;
            }
            System.out.printf("%.2f",(double)same*100/len);
            System.out.println("%");
        }
    }
}*/
时间: 2024-10-12 13:06:39

编程题目----约德尔测试的相关文章

哥德尔-----------------

以前崇拜物理,因为逻辑简单.讨厌数学,因为物理才能给数学带来利益. 到了大学,然后就垮了.就像天书, 紧接着,其他需要数学的地方,就同时垮了.然后形成了一个大轮回.回到起点,数学是一个哲学问题.一直到现在,还是一团浆糊.凭借网络的力量,数学理解力上升,哲学思想上升.然后带动其他相关领域. 会编程了.但是数学根基很浅显. 只是命好,编程只需要理解力,底层别人都已经给你搞好了,只需要调用. 哥德尔,的牛逼的地方,在于用数学推演上帝的存在.并得出哥德尔不完备定理. 所以数学也等同于推演.但是推演有极限

【编程题目】n 个数字(0,1,…,n-1)形成一个圆圈,从数字 0 开始

第 18 题(数组):题目:n 个数字(0,1,…,n-1)形成一个圆圈,从数字 0 开始,每次从这个圆圈中删除第 m 个数字(第一个为当前数字本身,第二个为当前数字的下一个数字).当一个数字删除后,从被删除数字的下一个继续删除第 m 个数字.求出在这个圆圈中剩下的最后一个数字. 思路:看到这道题,直觉是不难,模拟一下过程就好了.我用的是数组来表示的,用first表示当前第一个数字是哪一个数,若删除一个数字则将后面的数字平移到前面. /* 第 18 题(数组): 题目:n 个数字(0,1,…,n

编程大师访谈录01----查尔斯.西蒙尼

查尔斯.西蒙尼: 在某些情况下,如果你倒着做事情,之前显得很复杂的问题突然之间会变得非常简单.例如,解析前向引用(forward reference)可能很难.要是倒着扫描,它们就变成了后向引用(backward reference),很容易解析.只要从新的角度看待程序,原本可能很难解决的问题也会变得容易解决. 什么是编程?人们对此一直各持己见.有人说它是科学,有人说它是艺术,还有人称之为技能或手艺.我认为这三方面兼而有之.我们喜欢说它蕴含大量艺术成分,但是我们都知道它里面更多的是科学. 孩子们

【编程题目】n 个骰子的点数

67.俩个闲玩娱乐(运算).2.n 个骰子的点数.把 n 个骰子扔在地上,所有骰子朝上一面的点数之和为 S.输入 n,打印出 S 的所有可能的值出现的概率. 思路:用递归把每个骰子的可能情况变量,记录各种和S出现的次数 比上 总情况数就是概率 /* 67.俩个闲玩娱乐(运算). 2.n 个骰子的点数. 把 n 个骰子扔在地上,所有骰子朝上一面的点数之和为 S.输入 n, 打印出 S 的所有可能的值出现的概率. */ #include <stdio.h> #include <stdlib.

【编程题目】有两个序列 a,b,大小都为 n,序列元素的值任意整数,无序;(需要回头仔细研究)

32.(数组.规划)有两个序列 a,b,大小都为 n,序列元素的值任意整数,无序:要求:通过交换 a,b 中的元素,使[序列 a 元素的和]与[序列 b 元素的和]之间的差最小.例如: var a=[100,99,98,1,2,3];var b=[1,2,3,4,5,40]; 首先,目标一定是先找到n个数字,使得数字和比总和的一半小,但是最接近. 思路一:开始看这道题跟之前学的动态规划很像,就想用动态规划来解.但是....做不出来........... 必须要选一半的数字让我头都大了. 思路二:

【编程题目】判断整数序列是不是二元查找树的后序遍历结果,如果是,构建该二元查找树

判断整数序列是不是二元查找树的后序遍历结果题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果.如果是返回 true,否则返回 false.例如输入 5.7.6.9.11.10.8,由于这一整数序列是如下树的后序遍历结果:8/ \6 10/ \ / \5 7 9 11因此返回 true.如果输入 7.4.6.5,没有哪棵树的后序遍历的结果是这个序列,因此返回 false. 做这个题目的时候最开始傻了,想着从前到后根据数字的大小关系判断.后来幡然醒悟,根据后序遍历的特点.序列最后一

哥德尔不完备定理

自从牛顿用物理的直觉,闯进无穷领域里大胆计算,铸造出犀利无比的分析工具后,许多人凭借着直观想象和聪明,也涌进去推导出许多互相冲突的结论,数学家花了两百多年的时间,才厘清了分析领域里的混乱,将整个数学建立在严格逻辑,而不是直观想象的基础上. 欧几里德几何一直是科学理论的范本,四条自明性的公理加上一条平行公设,通过逻辑演绎,推导出平面几何无穷数量的定理,一直到了近代还只有几何,被认为是具有坚实基础的数学分支,在这光辉的榜样下,人们尝试用这公理化的方法来规范整个数学,人们后来发现欧几里德也不够严谨,逻

【编程题目】扑克牌的顺子

67.俩个闲玩娱乐(运算).1.扑克牌的顺子从扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这 5 张牌是不是连续的.2-10 为数字本身,A 为 1,J 为 11,Q 为 12,K 为 13,而大小王可以看成任意数字. 思路: 用min.max记录输入的牌对应的数字大小,不考虑王,用wnum记录王的个数, record[13]记录每种牌是否出现过.设要判断n个牌是否连续 只要  出现不重复 且(max - min + 1) 在 [ n - wnum , n ]之间即可 /* 67.俩个闲玩娱

哥德尔,图灵和康托尔

在看计算理论相关的书的时候,偶然看到这个blog,http://skibinsky.com/godel-turing-and-cantor-the-math/,写的很好.我觉得用自动机的方式讲计算理论的话,从DFA,正则,到图灵机,都是很直观而且容易理解的,但是从Halt, Reducibility开始,再用图灵机的语言来描述就是一件可怕而且容易令人迷惑的方式了.这个时候通常不得不退回去,尝试从Lambda Calculus的角度去理解计算理论.不过 Recursion 的符号确实也很讨厌.如果