G*****7 发帖数: 1759 | 1 【 以下文字转载自 CS 讨论区 】
发信人: PharmD (夜里发呆), 信区: CS
标 题: 【灌水】数学大帝小时候
发信站: BBS 未名空间站 (Wed Sep 19 10:26:28 2012, 美东)
1785年,8岁的高斯在德国农村的一所小学里念一年级。
学校的老师是城里来的。他有一个偏见,总觉得农村的孩子不如城市的孩子聪明伶俐。
不过,他对孩子们的学习,还是严格要求的。他最讨厌在课堂上不专心听讲、爱做小动
作的学生,常常用鞭子敲打他们。孩子们倒爱听他的课,因为他经常讲一些非常有趣的
东西。
有一天,他出了一道算术题。他说:“你们算一算,1加2加3,一直加到100等于多少?
谁算不出来,就不准回家吃饭。” 说完,他就坐在椅子上,用目光巡视着趴在桌上演
算的学生。
不到一分钟的工夫,小高斯站了起来,手里举着小石板,说:“老师,我算出来了....
..”
没等小高斯说完,老师就不耐烦的说:“不对!重新再算!”
小高斯很快的检查了一遍,高声说:“老师,没错!”说着走下座位,把小石板伸到老
师面前。
老师低头一看,只见上面端端正正的写着正确答案,不禁大吃一惊。他简直不敢相信,
这样复杂的数学题,一个8岁的孩子,用不到一分钟的时间就算出了正确的得数。要知
道,他自己算了一个多小时,算了三遍才把这道题算对的。
只见小高斯的石板上工工整整地写着:
#include
using namespace std;
void main() {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
cout << sum << endl;
}
老师抡圆了就给了小高斯一个大嘴巴。
“又他妈的void,谁他妈的教你main()返回void的!这么小就不学好!” |
m*******r 发帖数: 13263 | |
z****9 发帖数: 2484 | 3 最后
【在 m*******r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : J点?
|
h*****4 发帖数: 4219 | 4 高斯大神肿么可以写i++呢 一定是假的
【在 G*****7 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 【 以下文字转载自 CS 讨论区 】 : 发信人: PharmD (夜里发呆), 信区: CS : 标 题: 【灌水】数学大帝小时候 : 发信站: BBS 未名空间站 (Wed Sep 19 10:26:28 2012, 美东) : 1785年,8岁的高斯在德国农村的一所小学里念一年级。 : 学校的老师是城里来的。他有一个偏见,总觉得农村的孩子不如城市的孩子聪明伶俐。 : 不过,他对孩子们的学习,还是严格要求的。他最讨厌在课堂上不专心听讲、爱做小动 : 作的学生,常常用鞭子敲打他们。孩子们倒爱听他的课,因为他经常讲一些非常有趣的 : 东西。 : 有一天,他出了一道算术题。他说:“你们算一算,1加2加3,一直加到100等于多少?
|
C****g 发帖数: 2220 | |
a*w 发帖数: 4495 | 6 楼主不知道高斯是用乘法算的。
【在 m*******r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : J点?
|
g******n 发帖数: 53185 | 7 码工都不会乘法吧,天天用i++,++i.
【在 a*w 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 楼主不知道高斯是用乘法算的。
|
a*w 发帖数: 4495 | 8 毕业了去墙街的叫矿工,去编程的叫码农。
FarmD是generic的,还没找到工作。
PharmD是药学博士。
【在 C****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : FarmD是什么?农业博士?
|
a*w 发帖数: 4495 | 9 码农用 i++,码工用 ++i。
【在 g******n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 码工都不会乘法吧,天天用i++,++i.
|
g******n 发帖数: 53185 | 10 反正会掰着手指头脚趾头数数就行了。
【在 a*w 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 码农用 i++,码工用 ++i。
|
|
|
p*********w 发帖数: 23432 | 11 for 循环里面无所谓的
【在 a*w 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 码农用 i++,码工用 ++i。
|
c*******y 发帖数: 1630 | 12 呵呵。
【在 p*********w 的大作中提到】![](/moin_static193/solenoid/img/up.png) : for 循环里面无所谓的
|
d*****e 发帖数: 7368 | 13 I think this is old case. Today's compiler will optimise this.
【在 a*w 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 码农用 i++,码工用 ++i。
|
G*****7 发帖数: 1759 | 14 码农用 i++,
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
};
码工用
std::accumulate(boost::counting_iterator(1),
boost::counting_iterator(101),
0); |
a*w 发帖数: 4495 | 15 perl: eval join '+', (1..100)
python: sum(range(1, 100))
ruby: (1..100).inject(:+)
scale: (1 to 100).sum
【在 G*****7 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 码农用 i++, : int sum = 0; : for (int i = 1; i <= 100; i++) { : sum += i; : }; : 码工用 : std::accumulate(boost::counting_iterator(1), : boost::counting_iterator(101), : 0);
|
G*****7 发帖数: 1759 | 16 sum(1:100)
Cordially,
MATLAB
【在 a*w 的大作中提到】![](/moin_static193/solenoid/img/up.png) : perl: eval join '+', (1..100) : python: sum(range(1, 100)) : ruby: (1..100).inject(:+) : scale: (1 to 100).sum
|
H********g 发帖数: 1107 | |
w********e 发帖数: 8594 | 18 大家小时候都是怎么算的?我小时候的算法是先算1+2+3+..9,然后用这个结果来简化
尾数的相加。比如11+12+13+...19=10*10+1+2+3+...9 |
R***a 发帖数: 41892 | 19 第一看到这个问题就是高斯的解
【在 w********e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 大家小时候都是怎么算的?我小时候的算法是先算1+2+3+..9,然后用这个结果来简化 : 尾数的相加。比如11+12+13+...19=10*10+1+2+3+...9
|
k*******2 发帖数: 4163 | 20 C++的创始人算啥?估计整个mitbbs没有一个人敢说比他C++编程更牛吧。
我只知道他的for loop里i++和++i混着用,
【在 a*w 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 码农用 i++,码工用 ++i。
|
|
|
z*********n 发帖数: 94654 | 21 不一定啊,就好比做砖的人未必盖房子就厉害啊
【在 k*******2 的大作中提到】![](/moin_static193/solenoid/img/up.png) : C++的创始人算啥?估计整个mitbbs没有一个人敢说比他C++编程更牛吧。 : 我只知道他的for loop里i++和++i混着用,
|
k*******2 发帖数: 4163 | 22 呵呵,你肯定是没看过他写的那本C++的书才这么说
【在 z*********n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 不一定啊,就好比做砖的人未必盖房子就厉害啊
|
a****a 发帖数: 5763 | 23 c++ 做成现在这个鸟样子,他罪过可不轻
其实带类的c足够了,剩下的都是over design,尤其是什么新的lambda 算子特性之类的
【在 k*******2 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 呵呵,你肯定是没看过他写的那本C++的书才这么说
|
z*********n 发帖数: 94654 | 24 我只是从原理上说不一定,没说事实上他是不是c++最牛的
【在 k*******2 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 呵呵,你肯定是没看过他写的那本C++的书才这么说
|
N***m 发帖数: 4460 | 25 那当你什么都没说!
【在 z*********n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我只是从原理上说不一定,没说事实上他是不是c++最牛的
|
N***m 发帖数: 4460 | 26 这叫与世俱进!
【在 a****a 的大作中提到】![](/moin_static193/solenoid/img/up.png) : c++ 做成现在这个鸟样子,他罪过可不轻 : 其实带类的c足够了,剩下的都是over design,尤其是什么新的lambda 算子特性之类的
|
G*****7 发帖数: 1759 | 27 one could specialize std::accumulate for boost::counting_iter
and teach the compiler to do this.
【在 H********g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : (1+100)*100/2 : 谢谢
|
k*******2 发帖数: 4163 | 28 原理上你是对的。。。
【在 z*********n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我只是从原理上说不一定,没说事实上他是不是c++最牛的
|
k*******2 发帖数: 4163 | 29 恩,lambda是有点儿蛋疼。。。
【在 a****a 的大作中提到】![](/moin_static193/solenoid/img/up.png) : c++ 做成现在这个鸟样子,他罪过可不轻 : 其实带类的c足够了,剩下的都是over design,尤其是什么新的lambda 算子特性之类的
|
G*****7 发帖数: 1759 | 30 in what way? don't you find lambda better than functors?
【在 k*******2 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 恩,lambda是有点儿蛋疼。。。
|
|
|
s******y 发帖数: 28562 | 31 当成一个梯形,直接把首尾相加,然后除于高度。
【在 w********e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 大家小时候都是怎么算的?我小时候的算法是先算1+2+3+..9,然后用这个结果来简化 : 尾数的相加。比如11+12+13+...19=10*10+1+2+3+...9
|
k**********i 发帖数: 8706 | |
t****a 发帖数: 1212 | 33 高斯大神当然上LISP, HASKELL或者FACTOR之类
(apply + (range 1 101)) |
v******n 发帖数: 421 | 34 这个我不得不Re一下了。。。
【在 G*****7 的大作中提到】![](/moin_static193/solenoid/img/up.png) : in what way? don't you find lambda better than functors?
|
h*******s 发帖数: 8454 | 35 haha nb~~
【在 v******n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这个我不得不Re一下了。。。
|
a9 发帖数: 21638 | 36 码神用
printf("=%d",5050);
【在 G*****7 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 码农用 i++, : int sum = 0; : for (int i = 1; i <= 100; i++) { : sum += i; : }; : 码工用 : std::accumulate(boost::counting_iterator(1), : boost::counting_iterator(101), : 0);
|
w********e 发帖数: 8594 | 37 看来码神真够真够纡的。直接朝老师吼一声“5050”不就得了?还用得着找电脑,打开
编辑器,写码,编译,执行?
【在 a9 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 码神用 : printf("=%d",5050);
|
G*****7 发帖数: 1759 | 38 your 码神 is not generic, which is the holly grail for both mathematicians
and devs.
the 码神 in my mind
would write a generic, lazy-evaluation based, expression template version of
sum, such that the sum of any arithmetic sequence would be evaluated using
the shortcut (first+last)*num_elem/2, while the sum over any other sequence
is performed through vectorized (and possibly OpenMP paralleled) element-by-
element summation.
this possibly involved overloaded comma operator and boost::counting
iterator.
cout << 1+,_arithmatic,+100 << endl; // prints 5050 by (1+100)*100/2
【在 a9 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 码神用 : printf("=%d",5050);
|
k**********i 发帖数: 8706 | 39 Nice!
of
using
sequence
by-
【在 G*****7 的大作中提到】![](/moin_static193/solenoid/img/up.png) : your 码神 is not generic, which is the holly grail for both mathematicians : and devs. : the 码神 in my mind : would write a generic, lazy-evaluation based, expression template version of : sum, such that the sum of any arithmetic sequence would be evaluated using : the shortcut (first+last)*num_elem/2, while the sum over any other sequence : is performed through vectorized (and possibly OpenMP paralleled) element-by- : element summation. : this possibly involved overloaded comma operator and boost::counting : iterator.
|
m****n 发帖数: 1104 | 40
sum(xrange(1, 101))
【在 a*w 的大作中提到】![](/moin_static193/solenoid/img/up.png) : perl: eval join '+', (1..100) : python: sum(range(1, 100)) : ruby: (1..100).inject(:+) : scale: (1 to 100).sum
|
|
|
b*****n 发帖数: 17570 | |