2

Comments

因为在校内上看到一篇写学生会的文章:学生会?可别骗人了……大陆现在压根就没有学生会!作为学生会的一员还是多少有些不满的,因此特撰文做出一点小小的反驳。
Read the rest of this entry »

< ,, >

回望2009

0

Comments

不知不觉间,2009就这么飘走了,悄无声息。突然有点感叹,时间飘的太快了,又飘的太轻了,以至于往往只有到了回头去看的时候,才会感到它的珍贵。

2009 年于我是重要的一年,从一年前的明天开始就是这样。保送考试,1月2日-1月3日,同济,浙大。其实对于我来说,这两个考不考的上,也都是无所谓的,因为厦大那边是没什么问题的了,按照彬哥哥的说法就是,我们有大学上了。至于浙大,其实本来就不抱什么很大的希望的,因为录取太少了。09的上半年,大约也就忙那么一两天了,反正有大学上了,高考我是肯定不屈的,去了大抵也好不了,至少以我的语文成绩来说是这样。保送这件事情,说起来我是有些后悔的,第一个后悔的便是没有去报交大,因为据说今年由于与北清时间冲了,报的人少,录取率很高;而第二个,便是放弃了厦大。待在福建气候好,有神灵庇护,而且某位同学去了厦大……(要淡定……)不过既然来到了同济,就不想那么多了,毕竟没去高考总是万幸的。

如围观社物语所说,一中着实是一个人间天堂,如果不用上课,不用参加各种考试,还能天天泡图书馆或机房,那就更是这样了。那些惬意日子的伊始,是在机房里度过的。其实我也不大清楚当时在做些什么,大抵写写网页,做点程序什么的吧。尔后,在教师的电子备课室里有了一席之地。再后来,看到其他保送生都开始为大学的学习做起了准备,弄得我都不好意思地也开始先学些东西……在那段时间里,每天在一起的,便是图书馆党的众位。有这么些有趣的孩子们在一起,必然比一个人宅在家里要更好的多了。那些日子的作息时间也从每天6点半准时起床到睡到7点多8点,午饭永远在放学前5分钟在食堂解决。吃完饭回机房的路上,便会逆着人流走,不时地遇到几个熟识的同学,对我表示出轻微的不满和羡慕之情。保送生绝对是不能回到班上去的,这是我们达成的一致共识,回去会被diao翻的……不过我倒是每次体育课都去上,因为每天宅着也不好,偶尔运动运动,顺便见见班上久违的同学们~记得有一段时间我还每天下去一起做广播操来着~幸福的时光~

还有那时想筹备的计算机社,也就是如今的 SCAN 社,在不知道费了多少功夫之后终于弄成了,可那时我也要走了……

随着高考的临近,惬意的日子也总是会有一些变化的。虽然我们不需要参加高考,但并不代表我们不忙,只不过没什么压力罢了。各种神奇的活,如各种盖章、搬运或者值班、买票等等等等。那时候的图书馆党在一起干活,有说有笑的,欢乐呀~

记得高考前的那天,我回家了,理由是三年前黄群大牛给的:如果别人早上起来都去高考了,看你一个人还在那里睡觉,心里会怎么想。接着,在高考最后一科的那天下午再次回到了学校,又是各种忙碌,以及,毕业典礼。虽然出了各种情况,但或许总体上还是不错的,倒是很欣慰……记得毕业典礼上校长为每个人发毕业证书时,看到我,很高兴地和我握了握手。我接过毕业证书的照片在一中的新闻里还可以找到囧……那个新闻和照片是森辰弄的吧,太猥琐了!

六月,这个月,高考的结束伴随着和一中和高考有关的大悲大喜。先是高分段的缺失,后又得知本一率和平均分的惊人。

接下去的七月和八月永远是最模糊的月份,日子长得总感觉到不了尽头,各种宅和各种聚会混杂其中。但今年的八月却有了一丝新意——美国。7月的最后一天离开中国,在美国待了20天上下,踏遍了美国东西海岸,第一次出国去见了见世面,也算是一个突破吧。在美国的见闻前面写过东西了,这里就不再详述了。不过在那里我却有一件事还记得很清楚,一个热心的美国人告诉我(用英文),他18岁那年一个人出去旅游,没有和妈妈一起,然后走到哪里都有人帮助他,所以让我不要怕。我觉得他说的很对,没什么好怕的,这世上总归好人要多于坏人的嘛。

九月就是来到同济的日子了。同济,我觉得是在不太大,跟一中比起来。大学的生活一点也没有想象中的轻松,不小心加入了学生会,又在半期考前终于完成了一中音乐征集的推荐平台,然后半期考英语挂了,高数堪忧,这让我顿感压力很大……又看到部门中有如王佳晟、王一行等众牛人,突然觉得自己就是个垃圾……

大学的时光更是混沌不清的,于是我也不知道做了些什么。然后日子就一下子没了,到了现在。

胡乱写了些无聊的东西,谨以此来纪念即将逝去的2009……

最后,祝大家新年快乐,考试顺利~新的一年,加油!

< ,,, >
4

Comments

非常无语的,同济大一什么物理理论都没学,需要的高数基础也都没有学过,竟然要我们先学物理实验,而且要处理数据,计算平均值和标准误差什么的,十分麻烦……

上次处理数据弄了个零碎的小程序来,很麻烦,这次就把他统一编为一个模块,方便以后使用……这个模块里面的说有公式依据是同济大学出版社《物理实验教程》第1版第二章的内容。

如何使用这个模块呢?首先,作为一个 Python 模块,肯定要用 Python……

然后我用我第一次做实验的部分数据演示一下:
Screenshot-upsuper@upsuper-netbook: ~-external-tju

直接输入数据,标准格式输出~

最后是代码:

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import math
sqrt = math.sqrt
 
def gen_imet(func):
  def retfunc(self, other):
    ret = func(self, other)
    self.ave = ret.ave
    self.u = ret.u
    self.digs = ret.digs
    return self
  return retfunc
 
def get_digs(a, b):
  if a == 0: return b
  elif b == 0: return a
  else: return min(a, b)
 
class PhyStat:
  """
  物理实验数据
 
  PhyStat(ave, u = 0.0, digs = 0)
  ave   表示平均值,如果传入一列数则自动计算平均值及其标准误差
  u     表示标准误差,如果 ave 传入数据列表则此处表示仪器精度
  digs  表示有效数字个数,0 表示不限制
  """
 
  def __init__(self, ave, u = 0.0, digs = 0):
    """
    对于 ave 为数据列表的情况,使用下面公式计算平均值:
    ave = Σx[i] / n
    根据下面公式计算标准误差:
    S = Sqrt(Σ(x[i]-ave)^2 / (n - 1))
    u = Δinst / Sqrt(3)
    U = Sqrt(S^2 + u^2)
    """
    self.digs = digs
 
    if isinstance(ave, tuple) or isinstance(ave, list):
      data = ave
      n = len(data)
      ave = math.fsum(ave) / n
      self.ave = ave
 
      s = 0.0
      for i in data:
        s += (i - ave) ** 2
      s = sqrt(s / (n - 1))
      u /= sqrt(3)
      self.u = sqrt(s ** 2 + u ** 2)
    else:
      self.ave = float(ave)
      self.u = abs(float(u))
 
  def __repr__(self):
    ave = self.ave
    exp = int(math.floor(math.log10(ave)))
    exp10 = 10 ** exp
    ave = ave / exp10
    u = self.u / exp10
    digs = self.digs
    if digs == 0:
      ret = '%f ±%f'
    else:
      ret = '%%.%df ±%%.%df' % (digs, digs)
    if exp:
      ret = '(%s) E %d' % (ret, exp)
    return ret % (ave, u)
 
  __neg__ = lambda self: PhyStat(-self.ave, self.u, self.digs)
  __pos__ = lambda self: self
  __abs__ = lambda self: PhyStat(abs(self.ave), self.u, self.digs)
 
  def __add__(self, other):
    if isinstance(other, PhyStat):
      ave = self.ave + other.ave
      u = sqrt(self.u ** 2 + other.u ** 2)
      digs = get_digs(self.digs, other.digs)
      return PhyStat(ave, u, digs)
    else:
      ave = self.ave + other
      return PhyStat(ave, self.u, self.digs)
 
  __radd__ = __add__
  __sub__ = lambda self, other: self + (-other)
  __rsub__ = lambda self, other: other + (-self)
 
  def __mul__(self, other):
    if isinstance(other, PhyStat):
      a = self.ave
      b = other.ave
      ave = a * b
      u = ave * sqrt((self.u / a) ** 2 + (other.u / b) ** 2)
      digs = get_digs(self.digs, other.digs)
      return PhyStat(ave, u, digs)
    else:
      ave = self.ave * other
      u = self.u * other
      return PhyStat(ave, u, self.digs)
 
  __rmul__ = __mul__
 
  def __div__(self, other):
    if isinstance(other, PhyStat):
      return self * other ** -1
    else:
      return (1.0 / other) * self
 
  __rdiv__ = lambda self, other: other * self ** -1
 
  def __pow__(self, other):
    a = self.ave
    ave = a ** other
    u = abs(other * self.u / a * ave)
    return PhyStat(ave, u, self.digs)
 
  __iadd__ = gen_imet(lambda self, other: self + other)
  __isub__ = gen_imet(lambda self, other: self - other)
  __imul__ = gen_imet(lambda self, other: self * other)
  __idiv__ = gen_imet(lambda self, other: self / other)
  __ipow__ = gen_imet(lambda self, other: self ** other)
 
  __int__ = lambda self: int(self.ave)
  __long__ = lambda self: long(self.ave)
  __float__ = lambda self: self.ave

如果大家发现什么 bug,或者有什么改进建议,欢迎提哈~ Read the rest of this entry »

< ,, >