zoukankan      html  css  js  c++  java
  • 随机化算法

    随机化算法即随机生成因子,利用其随机生成数结合题目条件对所给数据进行校验。
    需要保证前提:
    1.有明确的正确数据以供校验
    2.随机化的次数必须要足够多以保证所有数据得到验证以保障准确性

    mt19937:
    (c++11) 中加入的新特性,它是一种随机数算法,用法与 (rand()) 函数类似但是具有速度快,周期长的特点(它的名字便来自周期长度:(2^{19937}-1))。说的直白一点,我们都知道 (rand())(windows)下生成的数据范围为 (0-32767)。但是这个函数的随机范围大概在((−maxint,+maxint))((maxint)(int) 类型最大值)。
    用法:

    #include<bits/stdc++.h>
    using namespace std;
    int main() {
        mt19937 mt_rand(time(0));
        cout << mt_rand() << endl;
        return 0;
    }
    

    例题:2019 ICPC Asia-East Continent Final-H

    1.蒙特卡洛方法(Monte-Carlo Simulation)

      蒙特卡洛方法是一种以概率统计理论为指导的一类非常重要的数值计算方法。可以通过随机通过产生随机数的方式来解决计算问题。比如估算 (pi) 和计算不规则图形的面积。

    2.模拟退火

    2018南京区域赛-D
    可以用来求最小圆覆盖个最小球覆盖,二维费马点。

    其他:

    2018南京区域赛-K

  • 相关阅读:
    我们的CPU遭到攻击[LOJ558]
    历史[ZJOI2018]
    字符串[LOJ6517]
    奥运公交[LOJ3255]
    BLO-Blockade[POI2008]
    压力[BJOI2013]
    Earthquake[USACO01OPEN]
    暴力写挂[CTSC2018]
    极简教程:数据结构与算法(二)
    DllRegisterServer的调用失败的问题解决方法
  • 原文地址:https://www.cnblogs.com/1024-xzx/p/12968868.html
Copyright © 2011-2022 走看看