Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

另外几个优化 #53

Open
HuntingBot opened this issue Apr 7, 2021 · 10 comments
Open

另外几个优化 #53

HuntingBot opened this issue Apr 7, 2021 · 10 comments
Labels
enhancement New feature or request

Comments

@HuntingBot
Copy link

@AlephAlpha 1. 如果空行的数量超过period就直接出结果
2. 如果当前已经是结果就不要搜了

@AlephAlpha AlephAlpha added the enhancement New feature or request label Apr 7, 2021
@AlephAlpha
Copy link
Owner

还是那个问题,rlifesrc 不知道什么是行。

可以试试 Choice of state for unknown cells 选 Dead,不一定有效。

@HuntingBot
Copy link
Author

@AlephAlpha

从最左边开始一个一个的访问

@AlephAlpha
Copy link
Owner

@AlephAlpha

从最左边开始一个一个的访问

每走一步就检查一次吗?很慢的,一次搜索可能有几亿步……

@AlephAlpha
Copy link
Owner

想到一种 可能 对空行有用的改进:增加一种 Choice of state for unknown cells 的选项,默认为 Alive,但细胞的邻域中没有活细胞时为 Dead。

不过有三个问题:

  1. 如果没有 Known cells,开始搜时的第一个细胞的邻域中肯定没有活细胞。所以开始搜索时会和选 Dead 没有区别。一种可能的解决方案时对第一排的细胞忽略此条件。
  2. B0 的规则不好处理。要不干脆禁止在 B0 规则选择此选项?
  3. 和直接选 Dead 相比,可能没有任何优势。

还没试过,不知效果如何。

@HuntingBot
Copy link
Author

@AlephAlpha 我强调,重点是空行时终止搜索,不然还不如用 Dead。

@AlephAlpha
Copy link
Owner

好吧,那这个功能我就不加了。

@HuntingBot
Copy link
Author

@AlephAlpha 不过你说到邻域,倒是让我想到了一些可能的改进。我打算学 Rust,然后自己搞一个不公开的版本,假装自己是 AbhpzTa。有什么建议吗?

@AlephAlpha
Copy link
Owner

@AlephAlpha 不过你说到邻域,倒是让我想到了一些可能的改进。我打算学 Rust,然后自己搞一个不公开的版本,假装自己是 AbhpzTa。有什么建议吗?

Rust 官方教程见 https://doc.rust-lang.org/book/ 中文翻译见 https://kaisery.github.io/trpl-zh-cn/

不过 Rust 难度有点大,如果有点 C 的基础会好学一些。

我的代码很乱,有时还会作一些无意义的更改以维持努力更新的假象,导致代码变得更乱。可以先看看原版 lifesrc 或者 WLS 的代码。

和原版相比,我在算法上主要的改进是直接把邻域的状态记录/缓存到了细胞的信息当中,而非需要用到时才当场算。于是比原版快了不少。

此外又从 WLS 抄了不少改进。但没抄全,一些比较复杂的(主要涉及到搜索顺序)懒得抄了,所以很多情况下还是比 WLS 慢。在搜索顺序相同时,命令行版的 rlifesrc 还是比 WLS 快一些的;网页版用时则常在命令行版的两倍左右甚至更慢。

@HuntingBot
Copy link
Author

HuntingBot commented Jun 9, 2021 via email

@HuntingBot
Copy link
Author

HuntingBot commented Jun 18, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants