ctf/IERAE CTF 2024 writeup.md
... ...
@@ -249,6 +249,13 @@ if __name__ == '__main__':
249 249
250 250
## derangement
251 251
252
+```
253
+def is_derangement(perm, original):
254
+ return all(p != o for p, o in zip(perm, original))
255
+```
256
+によって、`deranged`のi文字目と`magic_word`のi文字目と一致しない。
257
+つまり、1度でも出現した文字は除外することができる。
258
+
252 259
- `candidate_char_set`: ヒント文字列で出現した全ての文字の集合
253 260
- `appeared_char_set_dict[i]`: ヒント文字列のi文字目に出現した全ての文字の集合
254 261