碰撞的蚂蚁 牛客网 程序员面试金典 C++ Java Python
碰撞的蚂蚁 牛客网 程序员面试金典 C++ Java Python
题目描述
在n个顶点的多边形上有n只蚂蚁,这些蚂蚁同时开始沿着多边形的边爬行,请求出这些蚂蚁相撞的概率。(这里的相撞是指存在任意两只蚂蚁会相撞)
给定一个int n(3<=n<=10000),代表n边形和n只蚂蚁,请返回一个double,为相撞的概率。
测试样例:
3
返回:0.75
C++
class Ants {
public:
    //run:4ms memory:484k
    double antsCollision(int n) {
        int sum = 1;
        for (int i = 0; i < n; i++)
            sum = 2*sum;
        return 1 - (double)2/sum;
    }
};
Java
import java.util.*;
public class Ants {
    //run:62ms memory:10584k
    public double antsCollision(int n) {
        int sum = 1;
        for(int i=0;i<n;i++)
            sum = 2 * sum ;
        return (1 - (double)2/sum);
    }
}
Python
class Ants:
    #run:32ms memory:5736k
    def antsCollision(self, n):
        sum = 1.0
        for i in range(n):
            sum = 2 * sum
        return 1 - 2/sum;												
											碰撞的蚂蚁 牛客网 程序员面试金典 C++ Java Python的更多相关文章
- 寻找下一个结点 牛客网 程序员面试金典 C++ java Python
		
寻找下一个结点 牛客网 程序员面试金典 C++ java Python 题目描述 请设计一个算法,寻找二叉树中指定结点的下一个结点(即中序遍历的后继). 给定树的根结点指针TreeNode* root ...
 - 检查是否是BST 牛客网 程序员面试金典  C++ java Python
		
检查是否是BST 牛客网 程序员面试金典 C++ java Python 题目描述 请实现一个函数,检查一棵二叉树是否为二叉查找树. 给定树的根结点指针TreeNode* root,请返回一个boo ...
 - 像素反转 牛客网 程序员面试金典 C++ Python
		
像素反转 牛客网 程序员面试金典 题目描述 有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度. 给定 ...
 - 二进制插入 牛客网 程序员面试金典 C++ Python java
		
二进制插入 牛客网 程序员面试金典 题目描述 有两个32位整数n和m,请编写算法将m的二进制数位插入到n的二进制的第j到第i位,其中二进制的位数从低位数到高位且以0开始. 给定两个数int n和int ...
 - 二进制小数 牛客网 程序员面试金典 C++ Python
		
二进制小数 牛客网 程序员面试金典 题目描述 有一个介于0和1之间的实数,类型为double,返回它的二进制表示.如果该数字无法精确地用32位以内的二进制表示,返回"Error". ...
 - 二叉树中和为某一值的路径 牛客网 程序员面试金典 C++ Python
		
二叉树中和为某一值的路径 牛客网 程序员面试金典 题目描述 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一 ...
 - 平分的直线 牛客网 程序员面试金典 C++ Python
		
平分的直线 牛客网 程序员面试金典 C++ Python 题目描述 在二维平面上,有两个正方形,请找出一条直线,能够将这两个正方形对半分.假定正方形的上下两条边与x轴平行. 给定两个vecotrA和B ...
 - 奇偶位交换 牛客网 程序员面试金典 C++ Python
		
奇偶位交换 牛客网 程序员面试金典 C++ Python 题目描述 请编写程序交换一个数的二进制的奇数位和偶数位.(使用越少的指令越好) 给定一个int x,请返回交换后的数int. 测试样例: 10 ...
 - 字符串压缩 牛客网 程序员面试金典 C++ Python
		
字符串压缩 牛客网 程序员面试金典 C++ Python 题目描述 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能.比如,字符串"aabcccccaaa"经压缩会变 ...
 
随机推荐
- 数据结构逆向分析-List
			
数据结构逆向分析-List 首先STL中的List就是一个链表,但是肯定C++用了很多封装,所以这里我们来一探究竟. 开始 首先先写一些简单的分析的源代码: #include<iostream& ...
 - Jmeter扩展组件开发(4) - 自定义参数的实现
			
CODE //URLNAME 就是在图形化界面当中显示的变量名称private static final String URLNAME = "URL";//设置界面当中默认显示的变 ...
 - hashCode 和 equals 的区别
			
今天记录一下hashCode的知识,以前都没有怎么接触过的,感觉还是很陌生,专门去学习了一下 首先我最大的问题就是hashCode究竟是干什么 的,现在也一知半解了吧, 哈希值是一个对象的地址值,是一 ...
 - PHP 合并2个链表
			
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. <?php class ListNode{ var $val; var $next = NULL; ...
 - php 设计模式 --组合器模式
			
PHP 开启错误显示并设置错误报告级别 ini_set('error_reporting', E_ALL); ini_set('display_errors', 'on'); 目的:分级处理:整体 ...
 - 软件测试从业者必备的Linux命令(完整篇)
			
观点: 关于Linux,测试从业者,看这篇文章就够了 . 具体,往下看 : 网上关于Linux资料太多.太杂,学习没有重点,特别是对于没有基础的从业者,期望通过那些文档,去自学掌握Linux,可能性太 ...
 - shell加密为二进制可执行文件
			
1.下载shc工具 http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz或者到http://www.datsi.fi.upm.es/~fro ...
 - JAVA-java内存分配
			
二.java-class的内存分配 三.JAVA string类特别之处 String 通过构造方法创建是在堆内存中, 通过直接赋值对象是在方法区的常量里 四.字符串做拼接 非常耗时和浪费内存的原因 ...
 - 这是我见过最简单的博客文只有一张图,Python基础10分钟学完
 - WPF进阶技巧和实战03-控件(1-控件及内容控件)
			
所有控件都继承自System.Windows.Controls.Control类,这个类添加一些基本结构: 设置控件内容对齐方式 (HorizontalContentAlignment,Vertica ...