存档

2011年6月 的存档

Python和C++中洗牌算法Shuffle的实现

2011年6月24日  10,340 views 3 条评论

洗牌,就是将有序的集合中的元素以随机的顺序重新排列。

今天本来是想复习一下几种排序算法的……因为没有随机样本,所以才想着要弄洗牌算法的。以前从来就没有想到过这个问题,今天是头一次接触到打乱顺序的算法。

本文的洗牌算法参考了fuqcool的文章

首先是Python

python语言非常高级,它的标准库已经实现了洗牌函数,在Random模块下有个Shuffle函数。
这是在Random.py中的函数原型。

def shuffle(self, x, random=None, int=int):
	"""x, random=random.random -> shuffle list x in place; return None.

	Optional arg random is a 0-argument function returning a random
	float in [0.0, 1.0); by default, the standard random.random.
	"""

	if random is None:
		random = self.random
	for i in reversed(xrange(1, len(x))):
		# pick an element in x[:i+1] with which to exchange x[i]
		j = int(random() * (i+1))
		x[i], x[j] = x[j], x[i]

阅读全文…

[转载]VS2005无法进行DEBUG:Binary was not build with debug information.

2011年6月24日  8,353 views 没有评论

今天遇到了VS2005无法进行DEBUG:Binary was not build with debug information.的问题,无法对编写的C++程序调试,每次调试都会提示No Debugging Information。在网上查找相关资料后得以解决,以下为参考文章全文,格式略作修改。

转载自smilelance

Its not an installation issue, the problem is, as the error message suggests, that you have not built your project with debug information.

To do this:

  1. Goto Project->Properties
  2. Make sure “Configuration” at the top is “Debug”
  3. On the left, select “C/C++”, then “General”
  4. On the right, change “Debug information format” to “Program Database for edit and continue (/ZI)”
  5. On the left, Select “Optimization”
  6. On the right, Change “Optimization” to “Disabled (/Od)”
  7. On the left, select “Code Generation”
  8. On the right, change “Runtime library” to “Multi-Threaded Debug (/MTd)”
  9. On the left, expand “Linker” and select “Debugging”
  10. On the right, change “Generate Debug info” to “Yes (/DEBUG)”
  11. Rebuild your project.
分类: 转载文章 标签: ,

为WordPress博客添加版权声明

2011年6月20日  7,733 views 11 条评论

不做站长不知道,写一篇博文真得挺辛苦的,从构思到码字,还要关心排版等等。我自认为做的不够好,很多篇文章都不是很精美,尤其是语言用词很不好,语文都还给高中老师了……从这篇文章开头写到现在,我已经好几次停下来想怎么用词了……

前面那段就当我胡扯了,大家看看就算了……反正意思就是作者写博文不容易,尤其是工科男T_T。但是在网上,很多博客都是转载别的劳动成果,转载就罢了,你还不说是转载自某某某,这就很不地道了。大家可以看到我的博客里有很多参考了别人的文章,这样的日志我都会在文章末尾附上参考的文章链接。博客里还有一些文章是完全转载了别人的我文章,这样的日志我都会在标题中添加转载字样,而且在文章开头就附上原始链接。

我个人认为我的这种注释参考的方式很不错,既体现了自己的劳动,也点出了原作者的贡献。大家如果也觉得合适的话可以跟我一样做。

不过在转载别人文章的时候我们并不能确定原作者是否同意我们转载,因为文章中并没有说明此文是否可以转载使用,如果转载的话是否可以修改原文,如果每次都Email联系的话也确实很麻烦,所以在文章中直接写上版权信息是个不错的选择。

大家可以到这篇文章的末尾看一下,有一段声明信息,本博客的每一篇日志都有这么一段声明。现在我就把如何实现的写在下面,大家想用的话可以直接拿去,不过我建议还是做一下修改,换换用词什么的,我写的太差了……

首先,这段版权声明的实现是通过修改WordPress主题文件实现的,纯手工完成,主要修改的是主题中的single.php文件。一般的主题都会包含此文件的,在合适的位置添加如下代码:

<!-- 版权声明开始 -->
	<?php include(TEMPLATEPATH."/copyright.php");?>
<!-- 版权声明结束 -->

阅读全文…

使用手机浏览WordPress – 创建Wap页面

2011年6月17日  8,180 views 4 条评论

互联网是强大的,移动互联网更是强大的!现在的移动终端和PC比起来一点都不逊色,能在PC上干的事情,基本上都可以在手机上实现了。越来越多的人直接使用手机移动终端来访问互联网了。但是移动终端与PC相比一个最大的缺点就是屏幕太小,盛放不下www页面那么多的元素。

实际上使用手机浏览万维网网页是很不方便的,花费的流量还会非常大,手机流量的价格和PC流量可不是一个等级的~所以现在才有了像UC、Opera Mini等这样的压缩网页浏览器,这些浏览器通过自己的服务器先将万维网网页压缩、重新排版,然后再发送到用户手机上的浏览器程序。这样做的好处是可以大大减少花费的手机流量,但是因为要经过浏览器自己的服务器处理,所以会有较大的效率代价。所访问网站的访问量比较大的话可能还会快一点,因为服务器端会有缓存,但是像本博客这种没有什么流量的小站来说,访问速度就变得非常慢了。

想要解决这个问题,我们可以让网站本身就支持手机Wap访问,制作Wap版本的网站页面。Wap是手无线应用通用协议,Wap版本的网页非常适合在手机上浏览。Wap页面保留了www页面的主要信息,精简了一些视频、图片等体积较大,影响加载速度的元素,重新排版以适应手机屏幕。

WordPress原生好像还不支持Wap页面,所以我们要通过插件来实现此目的。在这里我使用的是一款非常流行的非常简单易用的插件——WP-T-WAP

阅读全文…

分类: 心得笔记 标签: , , ,

Google 电吉他Doodle源码[11日更新可录音版]

2011年6月10日  5,963 views 没有评论

6月11日更新可录音版本

因为前两天这个电吉他Doodle实在是太High了,Google现在已经把这个Doodle永久保存了,
同学们可以通过一个永久链接访问

大家都知道在10日的时候Google还是保留着这个电吉他Doodle的,但是和9日的Doodle并不是完全一样,添加了录音功能。它不仅可以用键盘和鼠标演奏,还可以将演奏录下来(最多30秒),同时生成一个在线播放的网址,可将该网址发送给别人,让他也听到你的作品,很赞的设计!不过如果你和我一样弹得不好的话……大家还是听别人的作品吧~

新版的Doodle源码我也已经搞到了,再次感谢扒源码的兄弟,昨天我试了一天也没把代码看明白~

可录音版本的Doodle演示

阅读全文…

Google +1 & Google Buzz分享

2011年6月9日  2,848 views 没有评论

一、Google +1 向 FaceBook 开炮

前几天Google发布了向社交平台发展的一个重大应用Google +1。Google +1是Google用来对付FaceBook的一大利器,虽然我没感觉有啥用……毕竟Google的社交性太低了,或者说我们使用的比较少。

总而言之,像我这种Google控,当然要用一用啦!!!!

Google +1的作用就是为了让Google用户可以向大家表明,我喜欢这个网页,我喜欢这东西,我就是支持Google干掉FaceBook~

言归正传,怎么在Word Press里面添加+1按钮呢。官方的教程在这里

需要贴到网站上的代码有这样两段:

<!-- Place this tag in your head or just before your close body tag -->
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<!-- Place this tag where you want the +1 button to render -->
<g:plusone></g:plusone>

第一段是JS的加载代码,放在需要加载+1按钮的网页的<head>之后</body>之前。个人建议放在</body>之前,因为现在这个JS加载有点慢,如果放在<head></head>之间的话会影响整个网页的加载速度。如果你想在整个网站都添加+1按钮的话,就在你添加Analytics、CNZZ等流量分析代码的地方添加吧,一般的Word Press主题都会有专门放这种代码的地方,视具体主题而异。

阅读全文…