精华内容
下载资源
问答
  • 平面上N个,没确定一条直线,求出斜率最大的那条直线所通过的(斜率不存在的情况不考虑)。 先把N个按x排序。 斜率k最大值为max(斜率(point[i],point[i+1])) 1 <=i < n-1。 ...

    平面上N个点,没两个点都确定一条直线,求出斜率最大的那条直线所通过的两个点(斜率不存在的情况不考虑)。

    先把N个点按x排序。
    斜率k最大值为max(斜率(point[i],point[i+1])) 1 <=i < n-1。
    复杂度Nlog(N)。

    下面的例子是求斜率绝对值最大的直线,正常情况下把代码中的绝对值去掉就好了

    #include <bits/stdc++.h>
    #define ll long long
    #define pb push_back
    #define inf 0x3f3f3f3f
    #define pll pair<ll,ll>
    #define rep(i,a,b) for(int i=a;i<=b;i++)
    #define rep1(i,a,b) for(int i=a;i>=b;i--)
    #define rson rt<<1|1,m+1,r
    #define lson rt<<1,l,m
    using namespace std;
    const int N=1e5+100;
    int arr[N],n,pp;
    double mx;
    struct node
    {
      double x,y;
      friend bool operator <(node a,node b)
      {
          return a.x<b.x||a.x==b.x&&a.y<b.y;
      }
    }points[N];
    int GetMaxSlope()
    {
        double fCurSlope = 0;
        double fMaxSlope = 0;
        for (int k=2;k<=n;k++)
        {
            double a=abs(points[k-1].x - points[k].x);
            fCurSlope = abs(points[k-1].y - points[k].y) / a;
            if (fMaxSlope < fCurSlope)
            {
                fMaxSlope = fCurSlope;
            }
        }
        mx=fMaxSlope;
        return 0;
    }
    int main()
    {
        #ifdef LOCAL_DEFINE
            freopen("D:\\rush.txt","r",stdin);
        #endif
        //ios::sync_with_stdio(false),cin.tie(0);
        int t;
        cin>>t;
        while(t--)
        {
            cin>>n;
            pp=0;
            rep(i,1,n)
            {
                scanf("%lf%lf",&points[i].x,&points[i].y);
            }
            sort(points+1,points+1+n);
            rep(i,1,n-1)
            {
                if(points[i].x==points[i+1].x)
                {
                    //cout<<-1<<endl;
                    pp=1;
                    break;
                }
            }
            if(pp)
                cout<<-1<<endl;
            else
            {
                GetMaxSlope();
                cout<<fixed<<setprecision(8)<<mx<<endl;
            }
        }
    }
    
    展开全文
  • 平面上N个,没确定一条直线,求出斜率最大的那条直线所通过的(斜率不存在的情况不考虑)。 先把N个按x排序。 斜率k最大值为max(斜率(point[i],point[i+1])) 1 <=i < n-1。 复杂度Nlog(N...

    平面上N个点,没两个点都确定一条直线,求出斜率最大的那条直线所通过的两个点(斜率不存在的情况不考虑)。

    先把N个点按x排序。
    斜率k最大值为max(斜率(point[i],point[i+1])) 1 <=i < n-1。
    复杂度Nlog(N)。

    下面的例子是求斜率绝对值最大的直线,正常情况下把代码中的绝对值去掉就好了

    #include <bits/stdc++.h>
    #define ll long long
    #define pb push_back
    #define inf 0x3f3f3f3f
    #define pll pair<ll,ll>
    #define rep(i,a,b) for(int i=a;i<=b;i++)
    #define rep1(i,a,b) for(int i=a;i>=b;i--)
    #define rson rt<<1|1,m+1,r
    #define lson rt<<1,l,m
    using namespace std;
    const int N=1e5+100;
    int arr[N],n,pp;
    double mx;
    struct node
    {
      double x,y;
      friend bool operator <(node a,node b)
      {
          return a.x<b.x||a.x==b.x&&a.y<b.y;
      }
    }points[N];
    int GetMaxSlope()
    {
        double fCurSlope = 0;
        double fMaxSlope = 0;
        for (int k=2;k<=n;k++)
        {
            double a=abs(points[k-1].x - points[k].x);
            fCurSlope = abs(points[k-1].y - points[k].y) / a;
            if (fMaxSlope < fCurSlope)
            {
                fMaxSlope = fCurSlope;
            }
        }
        mx=fMaxSlope;
        return 0;
    }
    int main()
    {
        #ifdef LOCAL_DEFINE
            freopen("D:\\rush.txt","r",stdin);
        #endif
        //ios::sync_with_stdio(false),cin.tie(0);
        int t;
        cin>>t;
        while(t--)
        {
            cin>>n;
            pp=0;
            rep(i,1,n)
            {
                scanf("%lf%lf",&points[i].x,&points[i].y);
            }
            sort(points+1,points+1+n);
            rep(i,1,n-1)
            {
                if(points[i].x==points[i+1].x)
                {
                    //cout<<-1<<endl;
                    pp=1;
                    break;
                }
            }
            if(pp)
                cout<<-1<<endl;
            else
            {
                GetMaxSlope();
                cout<<fixed<<setprecision(8)<<mx<<endl;
            }
        }
    }
    

    转载于:https://www.cnblogs.com/ffgcc/p/10546397.html

    展开全文
  • 对于2,直线在Matlab里面是点确定,因此交点如果是段线(无穷个点)的情况,可能只是显示端点为交点; 对于3,很简单的例子,参数方程 x=cos,y=sin 在数学分析(即连续空间)层面上是个圆,但是如果你在...
  • 凸集

    2018-01-08 10:49:41
    简单来说,就是两点确定一条直线的直线        凸集 有 集合C是凸的 简单来说,就是两点间的线段    锥 C为锥 C为凸锥 简单理解,C为射线集合      ...

    仿射:

    集合C是仿射的,

    简单来说,就是两点确定一条直线的直线

     

     

     

       

    凸集

    集合C是凸的

    简单来说,就是两点间的线段

       

    C为锥

    C为凸锥

    简单理解,C为射线集合

       

       

    凸集例子

       

    P 为正定对称证

       

    按定义证即可

       

    范数锥

     

       

    多面体

    定义为有限个线性等式和不等式的集合

       

    仿射独立

       

       

    单纯形

       

    半正定锥

    按照凸锥定义有

       

    广义不等式:

    定义与锥K上的,

       

    进一步的有最小元与极小元

    对于集合D

       

    广义不等式的对偶

       

       

    超平面定理 支撑向量机

       

       

       

    保凸运算

    交集,

    展开全文
  • 线性回归多重共线性优化

    千次阅读 2017-09-12 18:33:49
    最小二乘回归法,但是对于大多数的实际问题,由于我们要用有限的观测值去估计模型的分布,比如在之前讲线性回归中的例子,给出的样例有100对,而我们建立的模型是一条直线,我们都知道两点确定一条直线,这里有100个...

    问题引入

    之前分析了线性回归问题的解法,最小二乘回归法,但是对于大多数的实际问题,由于我们要用有限的观测值去估计模型的分布,比如在之前讲线性回归中的例子,给出的样例有100对,而我们建立的模型是一条直线,我们都知道两点确定一条直线,这里有100个点,这种称作过度确定估计,同时很多样例由于各种原因本身存在误差,另一个方面是特征之间相关性很大,说白了就是两个特征之间存在关系,本身可以用一个变量来表示,这样既简化了模型,同时减少特征意味着减小误差,我们现在在线性回归中去想办法优化这个问题。

    多重共线性:是指多变量线性回归中,变量之间由于存在高度相关关系而使回归估计不准确。比如虚拟变量陷阱即有可能触发多重共线性问题。

    如果样本存在很大误差,那么我们估计到的结果β变化就会非常大,估计到的参数的方差也会很大,导致估计不准确。


    LASSO回归

    LASSO回归的思路是既然会导致β 变化很大,以及方差很大,那么我们在最小二乘估计的时候把 β 也作为损失函数中优化的一项,然后让 β 的值不能过大

    同时在这一项中给一个系数k,就能够调节它的影响,k值越大,则 β 的变化影响很大,然后误差导致共线性的影响减小,我们在不断增大惩罚系数的过程中,画出参数 β 的变化曲线,这个曲线被称为岭迹
    然后如果某个特征参数导致岭迹波动很大,说明这个变量参数有共线性,我们可以考虑剔除这个变量

    步骤
    1. 对数据做标准化,从而方便以后对 βk 的岭迹的比较,否则不同变量的参数大小没有比较性。
    2.构建惩罚函数,对不同的k,画出轨迹图
    3. 根据轨迹图,选择剔除掉哪些变量。


    目标函数
    这里写图片描述

    我们通过不断增大惩罚系数k,然后看看它的参数各个 β 的变化
    这里写图片描述

    上面右图是LASSO回归图像,可以看到从右到左随着k值的增大,很多 β 会出现变为0的情况,这种变量就是导致共线性的变量,我们可以剔除

    为什么出现0的就是导致共线性的变量呢?
    这里写图片描述

    看看上面这个图,假设现在是一个两个参数的直线模型,有两个参数 β1β2 需要估计,而按照LASSO对 β 的约束条件就是上面蓝色正方形, β\^ 使我们的自变量系数,需要估计的结果,可以看到红色的圆形总是先喝举行的角相交,而这个点正好β1=0 ,说明传统的最小二乘回归中β1 是具有共线性的,我们可以剔除,LASSO回归得到的是只有 β2 对模型有用。

    其实除了常用LASSO回归之外,还有一个岭回归,差别在于约束条件是pj=1βj2<=t,对应到上面的图中就是蓝色区域是个圆形,所以他不能直接让β 值为0,应为相交的区域肯定不是在坐标轴上 ,但是它也能通过增大惩罚系数k观察β 轨迹的波动去剔除共线性变量, 但是很明显发现LASSO更简单。

    总结

    岭回归(Ridge回归)能够优化点是通过调整惩罚系数0<k<1的大小,然后抑制过数据误差导致的拟合
    而LASSO回归通过调整惩罚系数观察结果β 先变为0,然后剔除共线性特征,从而达到简化模型作用
    目前最好拟合广义线性模型的是glmnet,是LASSO回归的发明人开发的,它通过一系列不同的惩罚系数 k 值去拟合模型,每次拟合都用上一次拟合的结果,从而达到抑制过拟合以及选择变量的效果,有兴趣可以研究下,有开源的库。
    当然这些优化都可以用在逻辑回归上,逻辑回归只是在线性回归的模型上套了一个logit函数,数据本身误差和共线性的问题同样存在。

    展开全文
  • 特点:两点确定一条直线,存在的唯一两点——即第一个元素和最后一个元素,其他数据元素均有唯一的“直接后继”和“直接前继” 数组是存储多个相同类型的数据的集合。 常见线性数据结构的典型例子有栈、队列、线性表...
  • 从上一课可知,对于给定的线性可分的数据集,离分隔超平面最近的点是支持向量。... 选取一个函数里的两个点,连接两个点成一条直线两点间的函数点都在这条直线下即为凸函数,凸函数的例子有指数函数。
  • 找公切线

    2013-09-24 17:36:45
    换句话说, 一条公切线是一条个多边形都相切的线。 一个例子如下图所示:  个不相交的凸多边形和一条他们的公切线 事实上, 公切线可以通过多边形间的一些确定桥的对来确立。 因此, 给定...
  • 旋转卡壳——找公切线

    千次阅读 2013-05-31 11:48:24
    换句话说, 一条公切线是一条个多边形都相切的线。 一个例子如下图所示:  个不相交的凸多边形和一条他们的公切线 事实上, 公切线可以通过多边形间的一些确定桥的对来
  • 1.思想:给定训练集样例,设法将样例投影到一条直线上,使得同类样例的投影尽可能接近,异类样例的投影尽可能远;在对新的样本进行分类时,将其投影到同样的这条直线上,再根据投影的位置来确定新样本的类别。 2...
  • LDA基本思想:给定带有标签的训练样本集,设法将样本投影到一条直线上,使得同类样本的投影尽可能近,异类样本的投影尽可能远。如果是进行分类,将新样本投影到同样的这条直线上,根据投影的位置来确定新样本...
  • 假如你要在一些打破项链,展开成一条直线,然后从一端开始收集同颜色的珠子直到你遇到一个不同的颜色珠子,在另一端做同样的事(颜色可能与在这之前收集的不同)。 确定应该在哪里打破项链来收集到最大数目的珠子。 ...
  • 一、极点(extreme point) 继续考虑钉子与橡皮筋的例子。...有向直线可以将平面划分确定的左右部分; 可以在图像上表示为: 可以发现,边缘上“有贡献”的钉子,总可以找到一条穿过它的有向...
  • GSP5.exe

    2020-04-01 09:16:40
    通过两点作圆;用圆心与半径画圆(这种方法作的圆定长不变,除非改变定长时,否则半径不变) 圆弧 画圆弧也有3种方法 按一定顺序选定三点然后作弧(按逆时针方向从起点到终点画弧);选取圆及圆上2点作弧(从第点...
  • 空间,正例,负例,直线划分,最宽的街道,找到一条最宽的街道,投影,点乘 确定向量w和常数b,满足正例w·u+b>=1,负例的<=-1 引入一个变量,为了在数学上更便利: yi,正例时yi>=1,负例时yi<=-1 就能满足...
  • arcgis工具

    2012-10-22 22:37:31
    个图斑的边界确定,需要实现个图斑的无缝拼接时,可以把图斑拉伸覆盖确定边界的图斑的部分,然后用下面的图斑剪区上面的图斑。 方法二:图斑之间有小的缝隙,可以先在缝隙上任意补画个图斑,然后合并...
  • QT 绘图函数

    2012-12-21 17:16:03
    一个路径能够确定一个轮廓,由这个轮廓确定的区域可以由刷子来填充。在图8.5(c)中我们没有设置刷子,因此只绘制了轮廓。 以上的三个例子都是使用了默认的刷子(Qt::SolidePattern,Qt::DiagCrossPattern,Qt::...
  • 3.19.1 确定一的可见性 194 3.19.2 线段求交 196 3.19.3 算法 197 3.20 Liang-Barsky多边形裁剪 202 3.20.1 进和出点 203 3.20.2 折 203 3.20.3 算法设计 205 3.20.4 水平边和垂直边 207 3.20.5 ...
  • SQL语法大全

    2014-03-30 11:00:11
    rs.pagesize=N 设置每页为N记录 rs.pagecount 根据 pagesize 的设置返回总页数 rs.recordcount 返回记录总数 rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否 rs.eof 返回记录指针是否超出数据表...
  • 5.双击这一条,可打开它的编辑对话框。我们看到Icon 项,这里可以更改“新 建”菜单的图标。 6.我们点击后面的...号,进入资源选择器,但现在这里面是空的。所以下面我 们需要给该工程添加外部资源。 7.添加资源有...
  • C#(WINFORM)学习 、 C#基础 基础 类型和变量 类型和变量 类型 C# 支持种类型:“值类型”和“引用类型”。值类型包括简单类型(如 char、int 和 float 等)、枚举类型和结构类型。引用类型包括类 (Class)类 ...
  •  《Visual C++开发实战1200例》分为I、II卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以...
  •  《Visual C++开发实战1200例》分为I、II卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以...
  •  《Visual C++开发实战1200例》分为I、II卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以...

空空如也

空空如也

1 2
收藏数 25
精华内容 10
关键字:

两点确定一条直线例子