你要死灭吗

今天洗澡的时候反刍社会政治新闻,脑子里冒出一句质问的话,“你要死灭吗?”。我想了许久没有想到出处,查阅才想起来是萧红《生死场》一章的标题,这一章里历经苦难的村民们决定置生死于不顾而投入抗日。标题并没有出现在文中对话里,而更像是作者对人物命运的质问,如果不这么做,你要死灭吗?读生死场的时候,我被这段时期东北农村的苦难深深地触动,但是对于民众参与救亡运动的言语觉悟一直感到一丝理想化的雕琢痕迹。但是后来单独拆开这一章读,结合其发表的时代背景,越来越理解这个标题的意味,命运是忙着生忙着死,而改变需要来自于这样的逼问。这让我想起另一处关于“死灭”的问题,是鲁迅的《呐喊》自序里铁房子的比喻,“不久要闷死了,然而是从昏睡入死灭,并不感到死的悲哀”。唉。

Wordle 提示器

心血来潮写的Wordle提示器,思路大概如下

  • 把谜题中已经暴露的信息转换为正则表达式
    • 绿色=固定字母,黄色=含有字母&位置错误,黑色=不含字母
  • 从词表(*)里筛选出符合规范的词,即所有的“可能答案”
  • 计算所有可能答案的mutual information,找到之中mutual information最大的(几个)词(**)
    • 这里使用了简单的计数法:绿色=2分,黄色=1分,黑色=0分

注:

词表:我用了github上的这个词表derekchuank/high-frequency-vocabulary。经嘟友@[email protected] 提醒,其实wordle有dump出的词表,词库大约2.3k,允许输入大约10.6k,来源自这个reddit讨论串 a_note_on_wordles_word_list/。可以自行替换。

答案表:reddit的讨论指出每期问题的答案是人工挑选的而非随机抽取,这意味着信息分布与默认的平均分布不符。Well,既然答案表有2.3k词,就算是人工挑选也足够多词了。

有趣的发现:

  • 从词表上来看,最好的“起始词”并不是adieu而是rates, aries, cares, lanes这几个,因为u这个原因出现次数其实不如辅音r和s高
  • 就算用词表作弊,也挺需要运气的,比如Wordle 243,最后需要从4个合法词里随机尝试,我的这个策略的步数期望值是4.

代码大概这样

import numpy as np
import re

# # create 5-letter word list
# with open("30k.txt") as file:
#     for line in file:
#     	w = line.rstrip()
#     	if len(w)==5:
#     		with open('5letterwords.txt', 'a') as fnew:
#     			fnew.write(w+'\n')


def info_score(target,current,matchscore=2,containscore=1):
	"""
    compute information score
    target: target word
    current: current try
    change the scores to optimize the searching process
    """
	s = 0
	for i in range(5):
		if current[i]==target[i]:
			s+=matchscore
		elif current[i] in target:
			s+=containscore
	return s



def main():
	# run hinter

	# get word list
	with open("5letterwords.txt") as f: 
		words=[line.strip() for line in f]

	# initialize masks
	letters_contain = []
	pattern = ["[^0]"]*5
	done = [False]*5

	while not all(done):

		# new inpt from user
		w = input("Please enter your first try word: ")
		m = input("Please enter your result (black=0,yellow=1,green=2): ")

		# loop through new input
		for i in range(5):
			if m[i]=='2':
				# correct, remove regax mask and mark as done
				pattern[i]=w[i]
				done[i]=True
			elif m[i]=='1':
				# semi-correct, add to contain list and mask this index
				letters_contain+=w[i]
				pattern[i]=pattern[i][:-1]+w[i]+']'
			elif m[i]=='0':
				# wrong guess, add to all regax mask
				for j in range(5):
					if not done[j]:
						pattern[j]=pattern[j][:-1]+w[i]+']'
		# exit if done
		if all(done): 
			print("You solved it. Bye.")
			exit()
		# apply regax and contain list
		words_new = [wd for wd in words if 
				re.match('^'+("").join(pattern)+'$',wd) 
				is not None and all([l in wd for l in letters_contain])]
		# exit if funny problem happened
		if not words_new:
			print("out of words, maybe something wrong?")
			exit()
		# compute similarity matrix
		sim_matrix =[[info_score(x,y) for y in words_new] for x in words_new]
		# zip and sort and print results
		mutural_info_sums = list(zip(words_new, [sum(x) for x in sim_matrix]))
		best_guess = [x[0] for x in sorted(mutural_info_sums, key=lambda x: x[1],
			reverse=True)[:5]]
		print("Best next guesses are "+(", ").join(best_guess)+".")


if __name__ == "__main__":
    main()

效果大概是这样

答案是robin

答案是slime:

答案是abbey:

答案是aloft: 很奇怪这个词不在30k list里

塞尔达传说-织梦岛

四舍五入我就是吕游

因为几个月前才打完众神的三角力量A link to the past(我知道英文翻译不重要但是我就是特别喜欢这个翻译),织梦岛这一作上手感觉很舒服且熟悉,地图和怪都很像。查了一下这一作本来是作为三角力量的掌机版在业余时间开发的,也难怪有这么多好玩的对话和搞笑的客串

我海拉鲁破坏王又回来了。不知道是不是因为刚打完三角力量,这作一开始两个地牢的boss都是基本上无损过的嘿嘿。目前感觉很好玩!

我发现我心中的林克形象就和游戏里一样地有点木木讷讷的,人形探险机器。这段之后和玛琳一起走的时候可以触发各种对话,我走了一圈忘了带她抓娃娃机,看了网上视频发现这段还挺逗的(玛琳是娃娃机达人)。就是我觉得我的林克好像也不太会想到去抓娃娃

想了想还是心里过意不去,读档回去继续带玛林转悠了。玛林对话都挺逗的,挺喜欢这个角色

通关了!一场美丽的梦,很喜欢这个有些meta的结局,最后风鱼的话就像对玩家说的,谢谢你和我们一起探险,希望这也成为了你的美好回忆。打通游戏之后有些失落的滋味,和林克一起共享了

还有一个很喜欢的地方是收集八种乐器,一起合奏风鱼之歌。这作游戏里,林克是彻头彻尾的外乡人,随波涛漂流到岛上,串联起世界的秘密的过程也其实是瓦解世界的冲突过程,风鱼之歌有一种古老的味道,像是给远去的旅人的呼唤……

……我应该把它设成手机闹铃!

奶油蘑菇汤

晚饭做了炖排骨和奶油蘑菇汤。奶油蘑菇汤主要用来消耗冰箱里剩下的奶油,按照菜谱把洋葱蘑菇炒香用鸡汤煮,之后打碎成泥,黄油炒面粉之后加奶油和蘑菇泥一起煮。虽然挺香,但是法式汤太……太实在了,过于浓厚,我还是喜欢喝中式排骨汤鸡汤和日式菜汤鱼汤这种。

听歌 (2022.1月)

This will be our year (Zombies) 1.1

新年第一天有幸看到了Zombies新发布的live演出This will be our year视频。很符合新年第一天!好像今年可以再看到线下的现场了

The warmth of your love
Is like the warmth of the sun
And this will be our year
Took a long time to come

don’t let go of my hand
Now darkness has gone
And this will be our year
Took a long time to come

and I won’t forget
The way you held me up when I was down
And I won’t forget the way you said,
“Darling I love you”
You gave me faith to go on
Now we’re there and we’ve only just begun
This will be our year
Took a long time to come

告别的摇滚 1.2

可能是早上听了听滚石40年经典这个歌单的缘故,今天脑子里一直在放另外一些乐队的致敬歌曲。准确地说是唐朝乐队唱的“独上西楼”。这是1995年邓丽君去世后,一些国内的摇滚乐手一起录制的致敬专辑,《告别的摇滚》,还包括郑钧录的“船歌”和“甜蜜蜜”,臧天朔录的“路边的野花不要采”和“再见我的爱人”,轮回乐队录的“在水一方”和“酒醉的探戈”,黑豹录“爱的箴言”和“爱人”。以及一起合唱的一曲“夜色”。这些乐队的许多自己的歌在我脑子里已经许久不听有些模糊了,这张致敬碟里的献唱却还铭记。大概是因为能听出那种真诚的情绪,可以从这面镜子里折射出邓丽君对那一代人的音乐和精神启蒙。

有一年暑假学了几天吉他,老师传给我这张专辑的mp3。可惜我的苹果音乐并不能网盘同步这张专辑,现在想听只能去Youtube了

继续阅读“听歌 (2022.1月)”