热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

我怎么样识破罗永浩的(锤子手机)业绩做假地?!--用C#与数据挖掘

教罗永浩的工程师,如何在业绩--销量(预售量)上面做假(才能不被群众识破)。换个说法是:从算法(和数据挖掘)角度讲,怎样的业绩(销量)才是正常的……而怎样的数据形态,就是在业绩上做假……usingSystem;usingSystem.Collections.Generic;us

//教 罗永浩的工程师,如何在业绩--销量(预售量)上面做假(才能不被群众识破)。 换个说法是:从算法(和数据挖掘)角度讲,怎样的业绩(销量)才是正常的……而怎样的数据形态,就是在业绩上做假…… using System; using System.Collections.Generic; us

//教 罗永浩的工程师,如何在业绩--销量(预售量)上面做假(才能不被群众识破)。

换个说法是:从算法(和数据挖掘)角度讲,怎样的业绩(销量)才是正常的……而怎样的数据形态,就是在业绩上做假……


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WinFA1LuoYongHao02
{//
public partial class Form1 : Form
{//
public Form1()
{
InitializeComponent();
}

//


protected override void OnPaint(PaintEventArgs e)
{//protected override void OnPaint(PaintEventArgs e
Graphics g = e.Graphics;
this.Width = 1224;// 1024;// 600; // 800;
this.Height = 700; // 800; //1024; // 800;

Pen pnBlue = new Pen(Color.Blue);
Pen pnG = new Pen(Color.Green);
Pen pnBlack = new Pen(Color.Black);
Pen pnR = new Pen(Color.Red);
int starx = 0;
int starxy = 0;
int endx = 1100;
int endy = 600;

int highY = 700;
//画 x轴
Point pt01x = new Point(100, endy-100);
Point pt02x = new Point(endx, endy-100);
g.DrawLine(pnBlue, pt01x, pt02x);

Font font01 = new Font("宋体", 10f);
Brush brush01 = Brushes.Blue;
for (int i = 0; i <1100; &#43;&#43;i) //循环画坐标
{
if (0 == (i % 50) ) {
Point pt001x = new Point(100 &#43; i, endy - 100);
string istr = i.ToString();
g.DrawString(istr, font01, brush01, pt001x);
} //if11
}//for11

string str1 = "X坐标为时间轴";
Font fOnt= new Font("宋体", 30f);
Brush brush = Brushes.Red;
PointF point = new PointF(100 &#43;800, 100&#43;400);
//横着写还是竖着写呢?
System.Drawing.StringFormat sf = new System.Drawing.StringFormat();
//还是竖着写吧
sf.FormatFlags = StringFormatFlags.DirectionVertical;
g.DrawString(str1, font, brush, point); //, sf);


//画 y轴
Point pt11y = new Point(100, 100);
Point pt12y = new Point(100, endy-100);
g.DrawLine(pnBlue, pt11y, pt12y);

font01 = new Font("宋体", 10f);
brush01 = Brushes.Blue;
for (int i = 0; i <900; &#43;&#43;i)
{
if (0 == (i % 20))
{
Point pt001x = new Point(100-30 , endy - (100 &#43;i) );
string istr = i.ToString();
g.DrawString(istr, font01, brush01, pt001x);
} //if11
}//for11


str1 = "y轴-业绩(销量)";
fOnt= new Font("宋体", 30f);
brush = Brushes.Red;
point = new PointF(100, 100);
//横着写还是竖着写呢?
sf = new System.Drawing.StringFormat();
//还是竖着写吧
sf.FormatFlags = StringFormatFlags.DirectionVertical;

g.DrawString(str1, font, brush, point, sf);


//模拟真实算法;
int trueY = 0;
Point pt1 = new Point(100 &#43; 0, endy - (trueY &#43; 100));
Point pt2 = pt1;
int trueXlast = 0;
int trueYlast = 0;
int gz = 2;// 5;// 10;
for (int i = 0; i <799; i&#43;=gz)
{
int trueX = i ;
Random rd = new Random(Guid.NewGuid().GetHashCode());
int buyy = rd.Next(0, 10);
Point pt3;
if (buyy > 8) // 8/10的时间用户不买, 2/10的用户买,用随机数模仿 客户购买习惯
{
trueY &#43;= gz;
pt2 = new Point(100&#43;trueXlast, endy - trueY - 100);
g.DrawLine(pnBlack, pt1, pt2); //从 ptt1上次点, 画到 上次的 x点不变,y轴点 变化(蜡烛图 画蜡烛)
//ptt2 = new Point(100 &#43; trueX , endy - trueY - 100);
}
else { pt2 = new Point(100&#43;trueXlast, endy - trueY - 100);

}
pt3 = new Point(100 &#43; trueX, endy - trueY - 100);
g.DrawLine(pnBlack, pt2, pt3); //从 上支蜡烛的终点,画到 下支蜡烛的起点

pt1 = pt3;
trueXlast = trueX;
trueYlast = trueY;

}
string str12 = "模拟真实(正常)销售率的销售线";
fOnt= new Font("宋体", 20f);
brush = Brushes.Red;
point = new PointF(trueXlast, trueYlast &#43;100&#43;100&#43; 150);
//横着写还是竖着写呢?
System.Drawing.StringFormat sf12 = new System.Drawing.StringFormat();
//还是横着写吧
sf.FormatFlags = StringFormatFlags.DirectionVertical;
g.DrawString(str12, font, brush, point); //, sf);



//高销售率算法

trueY = 0;
pt1 = new Point(100 &#43; 0, endy - (trueY &#43; 100));
pt2 = pt1;
for (int i = 0; i <799; i &#43;= gz)
{//for22
int trueX = i ;
Random rd = new Random(Guid.NewGuid().GetHashCode());
int buyy = rd.Next(0, 900);
Point pt3;
if (buyy <300) // 6/9的时间用户不买, 3/9的用户买,用随机数模仿 客户购买习惯
{
trueY &#43;= gz;
pt2 = new Point(100 &#43; trueXlast, endy - trueY - 100);
g.DrawLine(pnR, pt1, pt2); //从 ptt1上次点, 画到 上次的 x点不变,y轴点 变化(蜡烛图 画蜡烛)

}
else
{
pt2 = new Point(100 &#43; trueXlast, endy - trueY - 100);

}
pt3 = new Point(100 &#43; trueX, endy - trueY - 100);
g.DrawLine(pnBlack, pt2, pt3); //从 上支蜡烛的终点,画到 下支蜡烛的起点

pt1 = pt3;
trueXlast = trueX;
trueYlast = trueY;

}//for22


str12 = "黑色为模拟正常的高销售率的销售线(业绩)";
fOnt= new Font("宋体", 20f);
brush = Brushes.Red;
point = new PointF(trueXlast-100, trueYlast-100);
//横着写还是竖着写呢?
sf12 = new System.Drawing.StringFormat();
//还是横着写吧
sf.FormatFlags = StringFormatFlags.DirectionVertical;
g.DrawString(str12, font, brush, point); //, sf);

//
//------------------------------------------------------------------------------
//罗永浩算法
trueXlast = 0;
trueYlast = 0;
trueY = 0;
pt1 = new Point(100 &#43; 0, endy - (trueY &#43; 100));
pt2 = pt1;
for (int i = 0; i <799; i &#43;= gz)
{//for22
int trueX = i;
Random rd = new Random(Guid.NewGuid().GetHashCode());
int buyy = rd.Next(0, 900);
Point pt3;
if (buyy <100) // 8/9的时间用户不买, 1/9的用户买,用随机数模仿 客户购买习惯
{
trueY &#43;= 3* gz;
pt2 = new Point(100 &#43; trueXlast, endy - trueY - 100);
g.DrawLine(pnR, pt1, pt2); //从 ptt1上次点, 画到 上次的 x点不变,y轴点 变化(蜡烛图 画蜡烛)

}
else
{
pt2 = new Point(100 &#43; trueXlast, endy - trueY - 100);

}
pt3 = new Point(100 &#43; trueX, endy - trueY - 100);
g.DrawLine(pnG, pt2, pt3); //从 上支蜡烛的终点,画到 下支蜡烛的起点

pt1 = pt3;
trueXlast = trueX;
trueYlast = trueY;

}//for22


str12 = "蓝色为“罗永浩”销售曲线:";
fOnt= new Font("宋体", 20f);
brush = Brushes.Red;
point = new PointF(800, 400-100); //(trueXlast, trueYlast - 100);
//横着写还是竖着写呢?
sf12 = new System.Drawing.StringFormat();
//还是横着写吧
sf.FormatFlags = StringFormatFlags.DirectionVertical;
g.DrawString(str12, font, brush, point); //, sf);
//===========================================================


//------------------------------------------------------------------------------
//改进罗永浩算法!!
trueXlast = 0;
trueYlast = 0;
trueY = 0;
pt1 = new Point(100 &#43; 0, endy - (trueY &#43; 100));
pt2 = pt1;
for (int i = 0; i <799; i &#43;= gz)
{//for22
int trueX = i;
Random rd = new Random(Guid.NewGuid().GetHashCode());
int buyy = rd.Next(0, 900);
Point pt3;
if (buyy <100) // 8/9的时间用户不买, 1/9的用户买,用随机数模仿 客户购买习惯
{
Random rd01 = new Random(Guid.NewGuid().GetHashCode());
int buyy01 = rd01.Next(1,5);

trueY &#43;= buyy01 * gz;

pt2 = new Point(100 &#43; trueXlast, endy - trueY - 100);
g.DrawLine(pnR, pt1, pt2); //从 ptt1上次点, 画到 上次的 x点不变,y轴点 变化(蜡烛图 画蜡烛)

}
else
{
pt2 = new Point(100 &#43; trueXlast, endy - trueY - 100);

}
pt3 = new Point(100 &#43; trueX, endy - trueY - 100);
g.DrawLine(pnBlue, pt2, pt3); //从 上支蜡烛的终点,画到 下支蜡烛的起点

pt1 = pt3;
trueXlast = trueX;
trueYlast = trueY;

}//for22


str12 = "绿色为“罗永浩”(放大3倍)销售曲线:";
fOnt= new Font("宋体", 20f);
brush = Brushes.Red;
point = new PointF(300-100, 400 - 100); //(trueXlast, trueYlast - 100);

sf12 = new System.Drawing.StringFormat();
sf.FormatFlags = StringFormatFlags.DirectionVertical; //横着写
g.DrawString(str12, font, brush, point); //, sf);
//===========================================================
//
} //protected override void OnPaint(PaintEventArgs e
//
}//public partial class Form1 : Form
}//namespace WinFA1LuoYongHao02



推荐阅读
  • 如何使用Ping命令来测试网络连接?当网卡安装和有关参数配置完成后,可以使用ping命令来测试一下网络是否连接成功。以winXP为例1、打开XP下DOS窗口具体操作是点击“开始”菜 ... [详细]
  • 深入理解Java多线程并发处理:基础与实践
    本文探讨了Java中的多线程并发处理机制,从基本概念到实际应用,帮助读者全面理解并掌握多线程编程技巧。通过实例解析和理论阐述,确保初学者也能轻松入门。 ... [详细]
  • 本文详细介绍了如何解决 Microsoft SQL Server 中用户 'sa' 登录失败的问题。错误代码为 18470,提示该帐户已被禁用。我们将通过 Windows 身份验证方式登录,并启用 'sa' 帐户以恢复其访问权限。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • 远程过程调用(RPC)是一种允许客户端通过网络请求服务器执行特定功能的技术。它简化了分布式系统的交互,使开发者可以像调用本地函数一样调用远程服务,并获得返回结果。本文将深入探讨RPC的工作原理、发展历程及其在现代技术中的应用。 ... [详细]
  • 本文档介绍了如何在Visual Studio 2010环境下,利用C#语言连接SQL Server 2008数据库,并实现基本的数据操作,如增删改查等功能。通过构建一个面向对象的数据库工具类,简化了数据库操作流程。 ... [详细]
  • 解决getallheaders函数导致的500错误及8种服务器性能优化策略
    本文探讨了解决getallheaders函数引起的服务器500错误的方法,并介绍八种有效的服务器性能优化技术,包括内存数据库的应用、Spark RDD的使用、缓存策略的实施、SSD的引入、数据库优化、IO模型的选择、多核处理策略以及分布式部署方案。 ... [详细]
  • 大数据核心技术解析
    本文深入探讨了大数据技术的关键领域,包括数据的收集、预处理、存储管理、以及分析挖掘等方面,旨在提供一个全面的技术框架理解。 ... [详细]
  • 使用R语言进行Foodmart数据的关联规则分析与可视化
    本文探讨了如何利用R语言中的arules和arulesViz包对Foodmart数据集进行关联规则的挖掘与可视化。文章首先介绍了数据集的基本情况,然后逐步展示了如何进行数据预处理、规则挖掘及结果的图形化呈现。 ... [详细]
  • 知识图谱与图神经网络在金融科技中的应用探讨
    本文详细介绍了融慧金科AI Lab负责人张凯博士在2020爱分析·中国人工智能高峰论坛上的演讲,探讨了知识图谱与图神经网络模型如何在金融科技领域发挥重要作用。 ... [详细]
  • 【转】强大的矩阵奇异值分解(SVD)及其应用
    在工程实践中,经常要对大矩阵进行计算,除了使用分布式处理方法以外,就是通过理论方法,对矩阵降维。一下文章,我在 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • K-均值聚类算法是一种经典的划分方法,广泛应用于数据挖掘和机器学习领域。该算法通过将数据集划分为多个互斥的簇,确保每个对象仅归属于一个簇。然而,这种严格的归属要求忽略了潜在的离群点和数据的复杂性,限制了其在某些场景下的适用性。为了提高算法的鲁棒性和灵活性,研究者们提出了多种改进方法,如引入模糊隶属度和基于密度的聚类技术。这些改进不仅提升了算法的性能,还扩展了其在实际问题中的应用范围。 ... [详细]
  • 在众多市场调研公司中,如何选择一家值得信赖的合作伙伴至关重要。基于我在市场调查行业近二十年的经验,我将推荐几家国内知名的市场调研机构,供您参考:1. 开元研究——专注于零售报刊发行研究、媒体广告价值评估及网络营销分析等领域,以其专业性和准确性赢得了广泛认可。 ... [详细]
  • 在Windows 10系统中安装TortoiseSVN 1.11.1时,可能会遇到错误代码2503。此问题通常与系统权限设置或安装程序的执行环境有关。本文将详细介绍导致该错误的原因,并提供有效的解决方案。 ... [详细]
author-avatar
明天会更好--好过_652
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有