2017/11/26 武汉市城市规划设计院面试情况小记(1)

早上起了个大早,6点35起来洗漱,从宿舍骑小黄车到光谷地铁站,早上F口不开,还得绕到鲁巷后面从E口进,贼坑。坐2号线到循礼门,转1号线往三阳路方向走两站,出地铁过个马路,就到了武汉市城市规划研究院。
8点左右到达,8点半进去上机考试,考试题目是这样的:
2017/11/26 武汉市城市规划设计院面试情况小记(1)_第1张图片
拿到题目比较蛋疼,这是想搞么斯啊,纠结了半天,把它当做一个分类问题考虑了,想使用模糊评判或者C-means分类进行处理,奈何源代码不好找啊,最后用MATLAB自带的分类器做了,真为我的机智感到开心。

x1=rand(1,100)*(3.0-2.0)+2.0;%容积率
x2=0.13+rand(1,100)*(0.2-0.13);%建筑密度
x3=0.5+rand(1,100)*(0.7-0.5);%绿地率

%假定分布
y1=ones(1,60);
y2=zeros(1,40);
y=[y1,y2];

%数据
data = [y;x1;x2;x3];%训练数据
X=[2.5;0.16;0.65];%待预测数据

%调用分类工具箱生成分类预测模型trainedModel,也可以选择SVM,神经网络,甚至深度学习等算法
classificationLearner;

%类别判断
yfit = trainedModel.predictFcn(X);

if(yfit==0)
    disp('非商品住宅');
end
if(yfit==1)
    disp('商品住宅');
end
题目出的有点玄学的感觉,让人摸不着头脑。它是想考察啥?我们要猜测出题人的意图对不对?我猜他是想让面试者都滚蛋。

用MATLAB做了一下之后还想弄个界面啥的,显得专业一点。祭出微软爸爸的VS2012,拉窗体拉控件一顿操作猛如虎,最后分类器他娘的不会写啊不会写。C#结合MATLAB混合编程试试?百度教程到崩溃。最后没辙了,跟人讲解的时候说只实现了数据的输入,暂时还没有实现功能。但我有界面啊,厉害不?两种编程语言无缝对接(呵呵),程序短小精悍通俗易懂,给我Offer给我Offer给我Offer!!!

程序界面
2017/11/26 武汉市城市规划设计院面试情况小记(1)_第2张图片
弄完都12点了,公司给买了盒饭,荤素搭配还有个萝卜汤,赞一个。跟武大的几个交流了一下,人家说用蒙特卡洛模拟做的,出题人说啦,瞬间心态爆炸。100个随机数也算蒙特卡洛啊,100个数掰着手指头也数的过来啊,顶多多数几遍啊,真的气。午休时间加班把程序重新弄了一下,运行结果是这样的了:
2017/11/26 武汉市城市规划设计院面试情况小记(1)_第3张图片

打开按钮为打开EXCEL文件,dataGridView1接受EXCEL文件。第一列为标签列,第二到第四列为随机生成的属性列。文本框输入待处理数据值。
计算按钮实现代码:

        private void button1_Click(object sender, EventArgs e)
        {
            double[,] data = new double[100,4];

            for (int i = 0; i < 100; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    data[i, j] = double.Parse(dataGridView1.Rows[i].Cells[j].Value.ToString());
                }
            }


            int sum_v1 = 0;
            int sum_p1 = 0;
            int sum_grass1 = 0;

            int sum_v2 = 0;
            int sum_p2 = 0;
            int sum_grass2 = 0;

            for (int i = 0; i < 100; i++)
            {
                if (data[i, 0] == 1 && data[i, 1] == double.Parse(txtV.Text.ToString())) sum_v1++;
                if (data[i, 0] == 1 && data[i, 2] == double.Parse(txtP.Text.ToString())) sum_p1++;
                if (data[i, 0] == 1 && data[i, 3] == double.Parse(txtV.Text.ToString())) sum_grass1++;

                if (data[i, 0] == 0 && data[i, 1] == double.Parse(txtV.Text.ToString())) sum_v2++;
                if (data[i, 0] == 0 && data[i, 2] == double.Parse(txtP.Text.ToString())) sum_p2++;
                if (data[i, 0] == 0 && data[i, 3] == double.Parse(txtGrass.Text.ToString())) sum_grass2++;
            }
            double Prob1 = (double)(sum_v1) / (double)100 * (double)sum_p1 / (double)100 * (double)sum_grass1 / (double)100;
            double Prob2 = (double)(sum_v2) / (double)100 * (double)sum_p2 / (double)100 * (double)sum_grass2 / (double)100;

            if (Prob1 > Prob2) result = 1;
            if (Prob1 <= Prob2) result = 0;

            if (result == 1)
            {
                MessageBox.Show("该房屋属于商品住宅 ","系统提示!");
            }

            else if (result == 0)
            {
                MessageBox.Show("该房屋属于非商品住宅" , "系统提示!");
            }
            else
            {
                MessageBox.Show("条件那么好,我猜应该是商品住宅", "系统提示");
            }
        }
    }

这样计算概率并比较是不是有问题,谁爱纠结就去纠结吧。

下午面试,本来我是第一个,结果我的电脑是HDMI接口,又没有带转接线,真的坑。
第二个进去,借个U盘插演示的电脑上居然没有反应,真的坑。
面试问我都博士了,还来我们这面试,你是什么心态,唉,这叫我怎么回答,真的坑。
问完撤退,地铁上又挤又热,到杨家湾了才有个座,真的坑。
昨晚3点多才睡,精神又亢奋又神经衰弱,下棋一盘接一盘的输,真的坑。。。。。。
当然收获也不小,如随机数如何归化到指定范围啊,MATLAB工具箱的调用啊,EXCEL函数的使用啊,如ROUND,RAND,话说EXCEL真的6,想想自己写得那些所谓的软件,那些功能,都可以使用EXCEL实现,那种心情,怎么说来着,我的内心毫无波澜,甚至还有点小雀跃。

你可能感兴趣的:(面试题)