Category: 程序设计

回顾20年前时高中参加信息学奥赛(NOIP)的经历

高中生活已经过去20年了, 对于我来说, 其中最为宝贵的一段经历就是在高三的时候参加了信息学奥林匹克(也就是计算机算法编程)竞赛, 并拿到了NOIP (National Olympiad Informatics in Province) 全国三等奖. 现在看来这个证书奖状的可比我高中毕业证的含金量高多了. (找工作的时候能加点分) 其实高一的时候我就参加初赛了, 可是失败了, 高二高三连续两年参加都进入复赛, 高二的时候获得省三等奖, 高三是全国三等奖, 也算每年都有进步了. 竞赛编程语言和环境 操作系统是DOS, 编程语言可以选 Turbo Pascal 7.0 还有 MS Basic. 这两种语言都没有可以现成可以用的哈希表, 对于有的题型竞赛难度比现在可谓是大了一些. …

通过BASH脚本显示树莓PI的温度和频率

我们很容易可以通过以下BASH脚本来显示当前树莓PI的温度和频率. #pi@raspberrypi:~ $ cat ./cpu_freq.sh #!/bin/bash temp=`head -n 1 /sys/class/thermal/thermal_zone0/temp | xargs -I{} awk "BEGIN {printf \"%.2f\n\", {}/1000}"` echo $((`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq`/1000)) MHz, $temp degrees 然后, 我们可以每3秒来显示这个信息: # 每3秒显示 while …

在竞赛中通过向标准输出stdout打印数据来调试leetcode程序

leetcode 网页的代码编辑器很好用, 有一个远程调试 Debugger 的功能, 只不过这个功能是需要付费才能使用的. 而且这个调试功能在比赛中是无法使用的. 其实我们只需要在代码里向 stdout 打印(变量), 运行代码就能在网页中看到值了 – 这样一来就可以很方便的调试程序了. 当您手边没有IDE时, 这是一种调试代码的好方法-有时我在iPad上参加每周的竞赛, 而我没有IDE, 也无法使用内置的leetcode调试器- 在这种情况下, 打印到标准输出是调试打印变量的唯一实用方法. 在此之前, 我只能更改代码并将变量作为调试技术返回-这种方式效率很低. 英文: Using the stdout to debug print the …

模拟算法解决小时候的疑问: 空瓶子换啤酒问题

记得小时候一直在琢磨的问题, 拿空酒瓶(也有可能是可乐)换酒瓶, 最后面一共可以喝几瓶. 今天在 leetcode 看到了这题, 1518. 这题是简单题, 我们通过模拟就能解决. 需要的定义的变量就是总喝的瓶数, 还有就是当前空瓶数. 只要空瓶子够换新酒瓶, 我们就不停的循环这个过程. 需要注意的是新的空瓶数得把原来不够换的那部分也加上. 比如3个空瓶可以换一个新瓶, 现在有5个空瓶, 只够换1个, 然后新的空瓶就是(5-3+1=3)还够换1瓶. 不啰嗦了, 以下就是 Python代码. class Solution: def numWaterBottles(self, numBottles: int, numExchange: int) …

在树莓派上通过Python脚本来查看CPU的温度

树莓派 (Raspberry PI) 主机就只有一块板, 并没有风扇. 但是一般我们可以给它安装CPU风扇或者散热金属片. 树莓派的最高温度大概是80度, 如果太热的势必会影响树莓派的寿命, 所以我们要监控树莓派的温度, 如果过高就提醒我们. 我们可以通过下面的一个PYTHON脚本在控制台持续的输出树莓派的CPU温度: import os import time def temperature_of_raspberry_pi(): cpu_temp = os.popen("vcgencmd measure_temp").readline() return cpu_temp.replace("temp=", "") while True: print(temperature_of_raspberry_pi()) time.sleep(1) 我们可以稍微改改, …

美国通用电气(GE) 的Magik编程语言简介

很少人知道 GE (General Electric, 美国通用电气) 是 Magik 编程语言的主人(当今, Google有Go, 甲骨文有 Java, 苹果有 Swift, Object-C, 微软有 C#, TypeScript 等等) 一般来说, 一个公司要能创造出一门编程语言, 就一定程度说明这个公司的技术实力还是挺牛逼的. Magik语言的历史 Magik语言最早是1989年由Arthur Chance领头设计的, 已经30年了. Magik语言是面向对象动态类型的语言. 该语言在版本5之前, 是由C语言编写, 源代码(扩展名 …