走一条别人没有走过的路,才能成为一名开拓者

走一条别人没有走过的路,才能成为一名开拓者要想获得成功,就要有一种强烈的创新和开拓意识。怎样才能做到这一点呢?那就是从我们未知的领域入手,向别人没有涉足的地方迈进。只有这样才能在你所涉及的领域中,成为一个开拓者,并会留下闪光的足迹。

        1899年,爱因斯坦在瑞士苏黎世联邦工业大学就读时,他的导师是数学家明司夫斯基。由于爱因斯坦肯动脑、爱思考,深得明可夫斯基的赏识。师徒二人经常在一起探讨科学、哲学和人生。有一次,爱因斯坦突发奇想,问明可夫斯基:“一个人,比如我吧,究竟怎样才能在科学领域、在人生道路上,留下自己的闪光足迹、做出自己的杰出贡献呢?” 一向才思敏捷的明可夫斯基却被问住了,直到三天后,他才兴冲冲地找到爱因斯坦,非常兴奋地说:“你那天提的问题,我终于有了答案!” “什么答案?”爱因斯坦迫不及待地抱住老师的胳膊,“快告诉我呀!” 明可夫斯基手脚并用地比画了一阵,怎么也说不明白,于是,他拉起爱因斯坦就朝一处建筑工地走去,而且径直踏上了建筑工人刚刚铺平的水泥地面。在建筑工人们的呵斥声中,爱因斯坦被弄得一头雾水,非常不解地问明可夫斯基:“老师,您这不是领我误入歧途吗?” “对、对,歧途!”明可夫斯基顾不得别人的指责,非常专注地说,“看到了吧?只有这样的‘歧途’,才能留下足迹!” 然后,他又解释说:“只有新的领域、只有尚未凝固的地方,才能留下深深的脚印。那些凝固很久的老地面,那些被无数人、无数脚步涉足的地方,别想再踩出脚印来……” 听到这里,爱因斯坦沉思良久,非常感激地对明可夫斯基说:“恩师,我明白您的意思了!”

        从此,一种非常强烈的创新和开拓意识,开始主导着爱因斯坦的思维和行动。他曾经说过这样的话:“我从来不记忆和思考词典、手册里的东西,我的脑袋只用来记忆和思考那些还没载入书本的东西。” 于是,就在爱因斯坦走出校园,初涉世事的几年里,他作为伯尔尼专利局里默默无闻的小职员,利用业余时间进行科学研究,在物理学三个未知领域里,齐头并进,大胆而果断地挑战并突破了牛顿力学。在他刚刚26岁的时候,就提出并建立了狭义相对论,开创了物理学的新纪元,为人类做出了卓越的贡献,在科学史册上留下了深深的闪光的足迹。

如果你想让程序只找到一条,可以使用“深度优先搜索”算法。这个算法会尝试一条到底,直到找到出口或者不下去为止。具体实现方法如下: 1. 用一个二维数组表示迷宫,1代表墙,0代表。 2. 定义一个结构体表示一个位置,包括x和y两个坐标值。 3. 定义一个栈,用来保存已经访问过的位置。 4. 从起点开始,将起点入栈,并标记为已访问。 5. 如果栈非空,则取出栈顶元素,分别尝试向上、下、左、右四个方向一步。 6. 如果新位置是出口,则返回径;如果新位置是,则将其入栈并标记为已访问。 7. 如果四个方向都不通,则将当前位置出栈。 下面是一份简单的示例代码: ```c #include <stdio.h> #include <stdlib.h> #define ROW 10 #define COL 10 int maze[ROW][COL] = { {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 0, 0, 0, 1, 0, 0, 0, 0, 1}, {1, 0, 1, 0, 1, 0, 1, 1, 0, 1}, {1, 0, 1, 0, 0, 0, 0, 1, 0, 1}, {1, 0, 1, 1, 1, 1, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 1, 0, 1, 0, 1}, {1, 0, 1, 1, 0, 0, 0, 1, 0, 1}, {1, 0, 0, 0, 0, 1, 0, 1, 0, 1}, {1, 0, 1, 1, 0, 0, 0, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1} }; typedef struct { int x; int y; } Position; Position stack[ROW * COL]; int top = -1; void push(Position p) { stack[++top] = p; } Position pop() { return stack[top--]; } int is_empty() { return top == -1; } int is_wall(Position p) { return maze[p.x][p.y] == 1; } int is_visited(Position p) { return maze[p.x][p.y] == 2; } void mark_visited(Position p) { maze[p.x][p.y] = 2; } void mark_path(Position p) { maze[p.x][p.y] = 3; } void print_maze() { for (int i = 0; i < ROW; i++) { for (int j = 0; j < COL; j++) { if (maze[i][j] == 0) { printf(" "); } else if (maze[i][j] == 1) { printf("#"); } else if (maze[i][j] == 2) { printf("."); } else if (maze[i][j] == 3) { printf("*"); } } printf("\n"); } } Position find_exit(Position start, Position end) { push(start); mark_visited(start); while (!is_empty()) { Position current = pop(); if (current.x == end.x && current.y == end.y) { return current; } Position next; next.x = current.x - 1; next.y = current.y; if (!is_wall(next) && !is_visited(next)) { push(next); mark_visited(next); } next.x = current.x + 1; next.y = current.y; if (!is_wall(next) && !is_visited(next)) { push(next); mark_visited(next); } next.x = current.x; next.y = current.y - 1; if (!is_wall(next) && !is_visited(next)) { push(next); mark_visited(next); } next.x = current.x; next.y = current.y + 1; if (!is_wall(next) && !is_visited(next)) { push(next); mark_visited(next); } } return start; } int main() { Position start = {1, 1}; Position end = {8, 8}; Position p = find_exit(start, end); mark_path(p); print_maze(); return 0; } ``` 这个程序会输出一张迷宫地图,其中“#”代表墙,“.”代表走过,“*”代表找到的出口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值