阿里算法内推笔试题

阿里算法内推笔试题#include#include#include#include#include#include#include#include#definepi3.1415926#defineNUM10000usingnamespace

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

#include <iostream>
#include <vector>
#include <numeric>
#include<limits>
#include <cstdio>
#include <math.h>
#include <time.h>
#include <cstdlib>
#define pi 3.1415926
#define NUM 10000
using namespace std;

/** 请完成下面这个函数,实现题目要求的功能 **/
 /** 当然,你也可以不按照这个模板来作答,完全按照自己的想法来 ^-^ **/
double cal(double x,double mul,double sigma)          //计算概率密度函数
{
    double t=sqrt(2*pi);
    double t1=-(x-mul)*(x-mul)/(2*sigma*sigma);
    double f=t*exp(t1);
    return f;
}
bool inside(double x,double y)                   //判断是否在内部
{
    double a=(x*x+y*y-1)*(x*x+y*y-1)*(x*x+y*y-1)-x*x*y*y*y;
    if(a<=0)
        return true;
    else
        return false;
}

double randgass(double minvalue, double maxvalue,double miu, double sigma){
  
  //生成正态随机数
    double x,y,dscope;
    do{
        x=minvalue+(maxvalue-minvalue)*rand()/(RAND_MAX+1.0);
        y=cal(miu,miu,sigma);
        dscope=y*rand()/(RAND_MAX+1.0);
    }while(y<dscope);
    return x;
}

double leartCurve(double mu1, double sigma1, double mu2, double sigma2) {
    double xrange=mu1-3*sigma1;
    double xsplit=6*sigma1;
    double yrange=mu2-3*sigma2;
    double ysplit=6*sigma2;
    double res=0;
    double xp=0,yp=0;
    int num=0;
    srand((unsigned)time(NULL));
    for(int i=0;i<NUM;i++)
    {
        xp=randgass(xrange,xrange+xsplit,mu1,sigma1);
        yp=randgass(yrange,yrange+ysplit,mu2,sigma2);
        if (inside(xp,yp)) num++;
    }
    res=(double)num/NUM;
    return res;
}

int main() {
    double res;

    double _mu1;
    cin >> _mu1;
    //cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n');

    double _sigma1;
    cin >> _sigma1;
    //cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n');

    double _mu2;
    cin >> _mu2;
    //cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n');

    double _sigma2;
    cin >> _sigma2;
    //cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n');


    res = leartCurve(_mu1, _sigma1, _mu2, _sigma2);
    cout << res << endl;

    return 0;

}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195707.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • centos 6.5 p2v virt-p2v过程详解之一

    centos 6.5 p2v virt-p2v过程详解之一在此就不写关于那些概念和定义了,直接就写出过程一、安装kvmKVM需要有CPU的支持(Intelvmx或AMDsvm),在安装KVM之前检查一下CPU是否提供了虚拟技术的支持:#egrep’^flags.*(vmx|svm)’/proc/cpuinfo有显示,有显示则说明处理器具有VT功能,在主板BIOS中开启CPU的VirtualTechnoleg

    2022年7月26日
    8
  • 安卓系统usb调试在哪_安卓手机的usb调试

    安卓系统usb调试在哪_安卓手机的usb调试Android手机USB调试在哪?安卓手机如何打开USB调试模式?如果我们要将安卓手机连接到电脑上,从而传输文件、下载应用或ROOT等,都需要打开手机的USB调试模式。安卓系统的版本有很多,它们的打开方法也各不相同,下面给大家介绍各版本安卓手机打开USB调试模式的方法。步骤方法:一、2.1—2.3.7系统打开方法1、点击手机-Menu键(菜单键),在弹出的菜单中选择设置(Setting),或在应…

    2022年9月13日
    0
  • ThinkPHP配置文件的加载

    ThinkPHP配置文件的加载

    2021年9月24日
    41
  • 到底什么是数据中台?

    到底什么是数据中台?最近可能大家听到“数据中台”这个词越来越频繁了,有时候我跟一些朋友聊起来,也是都在说这个,但是一直不知道这到底是个什么。最近就看到这篇文章,觉得说的还挺好的,分享给大家看…

    2022年5月21日
    28
  • 奔图m7160dw驱动_奔图打印机m7100dn

    奔图m7160dw驱动_奔图打印机m7100dn奔图M7100dW打印机驱动是专门为奔图旗下的M7100dW型号打印机打造的驱动程序。它能够为你解决打印机常见的无法扫描、无法识别等问题。他是连接打印机与电脑的桥梁,让你更好的操作这款的打印机。【打印机特色】1、操作便捷,乐在其中ECOSYSP2135dn外观小巧,空间适应度很高,可以更好地满足用户办公空间布置的需要。而且外形美观,放置在办公桌上能够与办公家具很好地融合在一起,营造出和谐的办公室…

    2022年8月30日
    0
  • jdk源码分析之ArrayList

    ArrayList关键属性分析ArrayList采用Object数组来存储数据/*** The array buffer into which&

    2021年12月26日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号