存档

2008年10月 的存档

你能看出几个旋转方向?

2008年10月31日 Slyar 7 条评论

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

据说是美国耶鲁大学研究出来的,什么顺时针用右脑,逆时针用左脑。

不过我倒觉得这就是个视错觉问题。我一开始看就是顺时针,然后怎么也看不出逆时针的。。。大约过了3分钟我才看出来逆时针旋转,之后就可以自由控制旋转方向了,眨一下眼,顺时针;再眨一下眼,逆时针。。。

不知道大家看出来几个旋转方向?

PS.此幅旋转图一共有34帧,每帧是0.03秒,小于人的视觉停留时间(0.05-0.2S)。一个周期是1.02秒,前12帧(0.36S)是顺时针旋转特 征明显,后22帧(0.66S)是逆时针旋转的特征明显。但是每一帧都可以理解为顺转或逆转。秘密就在这里,当你第一眼接触到的几帧图片是前12帧时,知 觉的识别性首先判定为顺转,又由于知觉的滞留性,顺转的感觉会一直持续影响知觉对后面一些帧的判定,因此整幅图片看起来都是顺转。反之,当你第一眼接触到的几帧图片是后22帧时,知觉的识别性首先判定为逆转,又由于知觉的滞留性,逆转的感觉会一直持续影响知觉对后面一些帧的判定,因此整幅图片看起来都是逆 转。调整自己的注意力,你还可以控制舞女旋转的方向。

分类: 网络生活 标签:

碾转相除法求最大公约数不用比较两数大小

2008年10月30日 Slyar 4 条评论

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

辗转相除,又名欧几里德算法(Euclidean algorithm),是求两个正整数之最大公因子的算法。它是已知最古老的算法, 其可追溯至前300年。它首次出现于欧几里德的《几何原本》中,而在中国则可以追溯至东汉出现的《九章算术》。

以前学碾转相除的时候也没怎么考虑,看到书上说要先比较两个数的大小再碾转相除我就习惯性地先比较大小了,可是今天发现碾转相除法是不用比较两个数的大小的。。。

设我们有两个数m、n

1、用m除以n,得余数r

2、使m=n ,n=r

3、若r=0,则m就是最大公约数;若r不等于0,返回第1步

我们可以看到,如果m>n,那么没说的;如果m<n,在第一次m除以n后,余数恰好为m,这样一交换,最后还会变成m>n的情况。

C语言实现代码为:

#include <stdio.h>

int main()
{
int m, n, r = 1;
scanf("%d%d", &m, &n);
while (r != 0)
{
r = m % n;
m = n;
n = r;
}
printf("%d", m);
return 0;
}

还有一个利用条件运算符写的求最大公约数程序代码

#include<stdio.h>

int main()
{
int m, n;
scanf("%d%d", &m, &n);
while(m > n ? (m = m % n) : (n = n % m));
printf("%d", m + n);
return 0;
}

分类: 编程相关 标签: ,

八皇后问题 回溯递归 C语言版

2008年10月29日 Slyar 7 条评论

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。

今天听陈星火老师(火爷)的讲座提到了八皇后问题,正好今天没写的,于是晚上上完课回来就写了一段回溯递归解决八皇后问题的代码,当然也可以解决N皇后问题。运行后得到解为92组。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/* Code by Slyar */ 
#include <stdio.h>
#include <stdlib.h>
 
#define max 8
 
 
int queen[max], sum=0; /* max为棋盘最大坐标 */
 
void show() /* 输出所有皇后的坐标 */
{
    int i;
    for(i = 0; i < max; i++)
    {
         printf("(%d,%d) ", i, queen[i]);
    }
    printf("\n");
    sum++;
}
 
int check(int n) /* 检查当前列能否放置皇后 */
{
    int i;
    for(i = 0; i < n; i++) /* 检查横排和对角线上是否可以放置皇后 */
    {
        if(queen[i] == queen[n] || abs(queen[i] - queen[n]) == (n - i))
        {
            return 1;
        }
    }
    return 0;
}
 
void put(int n) /* 回溯尝试皇后位置,n为横坐标 */
{
    int i;
    for(i = 0; i < max; i++)
    {       
        queen[n] = i; /* 将皇后摆到当前循环到的位置 */
        if(!check(n))
        {           
            if(n == max - 1)
            {
                show(); /* 如果全部摆好,则输出所有皇后的坐标 */
            }         
            else
            {
                put(n + 1); /* 否则继续摆放下一个皇后 */
            }
        }
    }
}
 
int main()
{
    put(0); /* 从横坐标为0开始依次尝试 */
    printf("%d", sum);
    system("pause");
    return 0;
}
分类: 编程相关 标签: ,

突然发现宵夜是会越吃越饿的

2008年10月28日 Slyar 11 条评论

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

今天课多,事情也多。刚才上完选修课陪同学去吃宵夜,既然是"陪",我就没打算多吃,而且我本来也就不是很习惯吃宵夜,所以我就买了一笼蒸饺,结果这不吃没事,一吃可就不得了了......吃完那笼蒸饺我惊愕地发现我居然饿了......既然饿了,那就再吃吧,于是我就又买了一笼蒸饺,我心说这下吃完不会饿了,结果......我又吃了一碗炒河粉才解决问题......

结论:宵夜不能随便吃,因为宵夜是会越吃越饿的......

今天事情超级多,多到我都一天没时间开电脑。下午骑车去上课的时候来了一个急刹车,结果车是刹住了,不过车闸也英勇就义了......没辙,叫上Jet跟我去北理工那边换车闸,叫Jet是去是因为那车行老板是潮汕人,咱没法交流......

明天要上台讲高数,题咱还没做;下星期考英语,单词咱还没背;形式与政策的课,咱还没去听;饭卡快没钱了,咱还没去充值......

结论:所有的事情堆在一起是会忙死人的......

分类: 大学生活 标签: ,

大学啥都好,除了得自己洗衣服...囧

2008年10月27日 Slyar 9 条评论

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

刚刚上完选修课回来,打开柜子的时候突然发现如果今天再不洗衣服明天就没穿的了。。。

哎,来了大学感觉其他的一切都好,但自己洗衣服真是一件最痛苦的事情,每次洗完衣服都是一身汗。最不能忍的是那个水池,修的那么低,而我个子高,洗衣服的时候身体几乎就成直角了。。。每次洗那么几分钟就得直起来休息一会。。。痛苦。。。

貌似我最近越来越懒了,干什么事情都要算最短路径和最优计划。。。我已经不想做任何多余的动作了,准确地说,是我懒得做一切无意义地动作。。。

PS.刚才妹子在QQ上说我不洗衣服懒,但是发日志很勤快。。。最后她得出的结论是电脑对于我就像菠菜对于大力水手。。。囧

I hate washing clothes......

分类: 大学生活 标签: ,

Slyar的珠海一日行

2008年10月26日 Slyar 7 条评论

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

呼,刚刚回到宿舍,有点累的感觉。早晨就和Jet坐车去市区了,要问我这个懒仙为什么会出门?~嘿嘿,当然是我带着某个神秘的任务啦~~

因为今天是星期天,所以市区里是万人空巷;又因为坐车花了很久的时间,所以上午在吉之岛转了转就到了吃午饭的时间;再因为不知道吃什么,所以我们选择了KFC。。。貌似我也有2个月没吃过“垃圾食品”了,令我惊讶的是KFC居然价格上涨了,难道就因为我2个月没吃他就......(打雷了)

吃过饭后我们又跑去了拱北。为什么是"又"呢,因为刚来珠海的时候我也到拱北玩过,不过那时时间比较紧张,所以没怎么玩。今天就好好地转了转拱北的地下商场,转过后才发现原来这个商场是有2层的,而且超级大,居然还有一个设备很好的电玩场和一个碰碰车场。。。汗,以前一直以为那里很小的......

在拱北地下商场,我真真切切地领教了一回“砍价”的威力:我走到一个摊位前,发现了一把我也有的多功能军刀,于是我就向摊主询问军刀的价格......

"老板,这个多少钱?"

"30",摊主冷冷地回答。

"......",我被雷了一下,然后转身,走了一步。

"20给你",摊主急忙改口。

"......",我又走了一步。

"15要不要,靓仔!",摊主急切地说。

"我有一个一样的,2元",我头也不回地丢下一句话,继续迈步......

结论:砍价的威力是无穷的,地摊太危险了,我们还是选择品牌店吧......

出了地下商场,我们继续漫无目标地瞎逛,途中我是见了世面了。看到一部近一米长、半米高的摩托车,起初我还以为是模型,结果被告知那是真的,我汗......在某宾馆门口看到一排珠海车和方向盘右置的黑牌澳门车:路虎、奔驰、宝马、奥迪、保时捷、本田、丰田......另外插一句,市区里的美女密度大大低于我们学校......

被雷的差不多的时候,我们跑去华润万家采购,然后坐车回学校,吃饭,走路回宿舍。。。

PS.还有几段行程过几天再说,现在保密,嘿嘿~

分类: 大学生活 标签: ,

突然发现QQ等级明天就到2个太阳了,不好看了

2008年10月25日 Slyar 9 条评论

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

今天登陆的时候突然发现这个QQ还差一天就到2个太阳了,不爽。本来1个太阳3个月亮3个星星多好看,非要整2个太阳出来。。。看看自己其他的QQ,郁闷,貌似都是2个太阳以上的,而且离那种2个太阳3个月亮3个星星的还有好久。。。

俺不挂Q的,费电。。。截个图留个纪念,这个等级多好看~~~下次再截图就得2个太阳3个月亮3个星星了。。。不晓得不挂Q的话大学毕业前能不能达到。。。

今天上午给一个朋友的本本重装了一套系统,感觉还算满意,貌似这是我第7次给别人装吧。这里多说一句废话,以后要是我答应给你重装系统,麻烦把驱动程序先准备好。。。囧

今天Vijos一直上不了,又挂了,所以也没去做题~以后先离线拷贝几道题,免得Vijos挂了的时候不能做题,嘿嘿~

哎~明天出门呀,见见世面。。。

分类: 大学生活 标签: ,

C语言运算符优先级 详细列表

2008年10月24日 Slyar 10 条评论

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

恩,问这个问题的人太多了,懒得继续回答,直接贴上来自己看。。。

优先级

运算符

名称或含义

使用形式

结合方向

说明

1

[]

数组下标

数组名[常量表达式]

左到右

()

圆括号

(表达式)/函数名(形参表)

.

成员选择(对象)

对象.成员名

->

成员选择(指针)

对象指针->成员名

2

-

负号运算符

-表达式

右到左

单目运算符

(类型)

强制类型转换

(数据类型)表达式

++

自增运算符

++变量名/变量名++

单目运算符

--

自减运算符

--变量名/变量名--

单目运算符

*

取值运算符

*指针变量

单目运算符

&

取地址运算符

&变量名

单目运算符

!

逻辑非运算符

!表达式

单目运算符

~

按位取反运算符

~表达式

单目运算符

sizeof

长度运算符

sizeof(表达式)

3

/

表达式/表达式

左到右

双目运算符

*

表达式*表达式

双目运算符

%

余数(取模)

整型表达式/整型表达式

双目运算符

4

+

表达式+表达式

左到右

双目运算符

-

表达式-表达式

双目运算符

5

<<

左移

变量<<表达式

左到右

双目运算符

>>

右移

变量>>表达式

双目运算符

6

>

大于

表达式>表达式

左到右

双目运算符

>=

大于等于

表达式>=表达式

双目运算符

<

小于

表达式<表达式

双目运算符

<=

小于等于

表达式<=表达式

双目运算符

7

==

等于

表达式==表达式

左到右

双目运算符

!=

不等于

表达式!= 表达式

双目运算符

8

&

按位与

表达式&表达式

左到右

双目运算符

9

^

按位异或

表达式^表达式

左到右

双目运算符

10

|

按位或

表达式|表达式

左到右

双目运算符

11

&&

逻辑与

表达式&&表达式

左到右

双目运算符

12

||

逻辑或

表达式||表达式

左到右

双目运算符

13

?:

条件运算符

表达式1? 表达式2: 表达式3

右到左

三目运算符

14

=

赋值运算符

变量=表达式

右到左

/=

除后赋值

变量/=表达式

*=

乘后赋值

变量*=表达式

%=

取模后赋值

变量%=表达式

+=

加后赋值

变量+=表达式

-=

减后赋值

变量-=表达式

<<=

左移后赋值

变量<<=表达式

>>=

右移后赋值

变量>>=表达式

&=

按位与后赋值

变量&=表达式

^=

按位异或后赋值

变量^=表达式

|=

按位或后赋值

变量|=表达式

15

,

逗号运算符

表达式,表达式,…

左到右

从左向右顺序运算

说明:

同一优先级的运算符,运算次序由结合方向所决定。

简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符

分类: 编程相关 标签:
bnuep:0801010047