加载中…
博文
标签:

it

校园

题目:

给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。
要求:空间复杂度O(1),时间复杂度为O(n)。

解答:

刚看到这个题目的时候, 我的第一反应就是,这不就是一趟快速排序的思想吗? 整理下思路,果然如此。

果断写出代码:

#include <stdio.h>

void left_odd(int *a, int n){
 int tmp;
 int low, high;
 tmp = a[0];
 low = 0;
 high = n -1;
 while(low < high){
  while((low < high) && (a[high] % 2 == 0)) {
   high -- ;
  }
  a[low] = a[high];
  while((low < high) && (a[low] %2 != 0)){
   low ++;
  }
  a[high] = a[low];
 }
 a[low] = tmp;
 
}
int main()
{
 int a[]={2,4,6,9,7,10,3,8,15,17};
 int i;
 left_odd(a, 10);

(2012-08-29 18:50)
标签:

it

校园

之前腾讯实习笔试上有这道题,当时要手算出函数值。因为递归步数太多,就放弃了。就从程序实现来说,这个算法很简单实现,递归就可以了。这里搜集了wiki上总结的数学解法。

wiki: http://zh.wikipedia.org/wiki/阿克曼函數

定义

http://upload.wikimedia.org/wikipedia/zh/math/b/f/6/bf69ddd17e4b0e08fd306fc1009229b1.png 若m=0
若m>0且n=0
若m>0且n>0

 

A(m, n) 的值
m\n 0 1 2 3 4 n
0 1 2 3 4 5
标签:

杂谈

最近几天,重新看了下Logistic Regression 。想通过 SGD(随机梯度下降)来优化LR里面的参数。这是一个on-line 学习的一个好的方法。里面主要涉及那个代价函数,这个我之前没有系统学习过。走了些弯路,因为学习结果,受这个代价函数影响很大。

方法如下:

预测函数f(x),从这个函数可以看出,预测的值在0-1之间。f(x)正好是样本x归类到正样本的概率。
http://s1/middle/642c9bddgc4d939fc1860&690

这里,我就得想想如何求得这个http://s1/middle/642c9bddgc4d9519bb200&690?里面有很多方法,最大似然等。这里,我主要想想说下随机梯度的方法来优化这个参数。

首先,从优化的角度来看,我们应该建立一个代价函数。

代价函数1如下:

标签:

杂谈

注明:没有计数器等工具!

 

36匹马分6个组,分别为A、B、C、D、E、F组。
第一轮,每个组各跑一次,取每组前三名,标识为A1、A2、A3,B1、B2、B3,以此类推。
第二轮,每个组的第一名(A1——F1)拉出来跑一次,假设名次是:A1第一名,B1第二名,C1第三名。
则:1.后三名及其所在组的其余组员均被淘汰(小组头名都没能进前三,当然是全部淘汰啦)
2.两战全胜的A1已经提前夺冠了。
3.由于A1已经占去了一个名额,只剩两个名额了,则C3可以淘汰了。而且由于C1的最好成绩也只能是第三名了,所以C2也可以淘汰了。
第三轮,A2、A3、B1、B2、B3、C1六匹马跑,取前两名。
其中第一轮跑6次,第二轮第三轮都各只跑1次,一共8次。

 

 

偶尔看见,我就分享了!

其实,对于这些问题,都是有数学原型的,只是我们的数学知识贮备不够,老是感觉这是什么考智商的活! 我一直试图在做这样的工作,寻找一种科学的方法来归纳这些,而不是仅仅围绕这个单独问题,因为单个问题不具备可复制性! 而背后的数学方法是具备可复制性的!

  
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有