kouzukek.info

雑記

グラブル

  • 四象終了。印符全取得。討伐賞完走。「四象瑞神」土で5~6分。
  • アーク2本目ダマ悩む。

プリコネ

  • 日課。
  • 正月ペコランク18全装備。

アークナイツ

  • 金策。

デレステ

  • スシロー2日目。
Continue

スターリンソート

import random

def sort(l):
    return [(max_n := n) for max_n in [l[0]] for n in l if n >= max_n]

def proc(s):
    l = list(eval(s))
    print(s)
    print("Origin:", l)
    print("Sorted:", sort(l))
    print()

proc("range(10)")
proc("reversed(range(10))")
proc("random.sample(range(10), 10)")
Continue

adiaryの標準datファイルをソートする

動作保証はありません。
#!/usr/bin/env python3

from pathlib import Path
import re

re_terminate = re.compile("<<(.*)$")

def sortdat(f):
    with f.open() as fin:
        s = fin.read()

    kvs = []

    lines = s.split("\n")

    cur = 0

    while cur < len(lines):
        if len(lines[cur]) == 0:
            cur += 1
            continue
        if not "=" in lines[cur]:
            return
        if lines[cur].startswith("*"):
            line = lines[cur]
            terminate = re_terminate.search(line).group(1)
            i = cur + 1
            while not terminate in lines[i]:
                i += 1
            kvs.append("\n".join(lines[cur:i+1]))
            cur = i
        else:
            kvs.append(lines[cur])
        cur += 1

    with f.open("w", encoding="utf8") as fout:
        fout.write("\n".join(sorted(kvs)) + "\n")

if __name__ == "__main__":
    for f in Path("/usr/local/apache2/htdocs").glob("**/*.dat"):
        sortdat(f)
Continue

素数日

#!/usr/bin/env python3

from datetime import date, timedelta
from math import sqrt

def daterange(begin, end):
    cursor = begin
    oneday = timedelta(days=1)

    while True:
        yield cursor
        if cursor == end:
            return
        cursor += oneday

def primedates(begin, end):
    remove_composite = lambda l, k:[n for n in l if n % k != 0]

    days = (d.year * 10000 + d.month * 100 + d.day
                for d in daterange(begin, end))
    l = remove_composite(days, 2)

    limit = int( sqrt( max(l) ))

    searchlist = remove_composite(range(3, limit + 1), 2)

    while searchlist:
        n = searchlist[0]
        searchlist = remove_composite(searchlist, n)
        l = remove_composite(l, n)
        
    print(list(l))

import cProfile
#cProfile.run("primedate(date(1,1,1), date(9999, 12, 31))")
cProfile.run("primedates(date(1970,1,1), date(2038, 1, 19))")
Continue

十天衆&十賢者

十天衆

番号名前取得最終
1ウーノ⑩ 2019/10/23
2ソーン② 2018/09/03⑤ 2020/05/10
3サラーサ① 2018/07/12① 2019/04/26
4カトル⑧ 2019/08/14
5フュンフ⑦ 2019/06/25③ 2019/12/25
6シス⑨ 2019/10/01④ 2020/03/26
7シエテ③ 2018/10/10⑥ 2021/10/01
8オクトー⑥ 2019/04/29⑦ 2022/02/02
9ニオ④ 2019/03/11② 2019/10/08
10エッセル⑤ 2019/04/15
1 人目10 人目
取得2018/07/122019/10/23
最終2019/04/26

十賢者

番号名前取得最終
1マリアテレサ⑨ 2021/07/28
2カイム② 2019/12/25
3ニーア③ 2020/03/22
4エスタリオラ⑩ 2021/09/17
5フラウ⑥ 2021/01/01
6ロベリア④ 2020/08/24
7ガイゼンボーガ⑤ 2020/11/21
8ハーゼリーラ① 2019/12/21① 2024/01/14
9アラナン⑦ 2021/04/25
10カッツェリーラ⑧ 2021/05/21
1 人目10 人目
取得2019/12/212021/09/17
最終2024/01/14
Continue
8/8
>
>>