Closed ishiko732 closed 1 year ago
我用TypeScript写了类似的方法:add retrievability function
好,今晚实现一下
咕了,今晚忙着查bug,明天再弄
咕了,今晚忙着查bug,明天再弄
🤣好吧,要不帮我看看ts-fsrs实现的有没有问题:
retrievability = (card: Card, now: dayjs.Dayjs):undefined|string => {
if (card.state !== State.Review){
return undefined;
}
const t = now.diff(dayjs(card.last_review), "days")
return (this.current_retrievability(t,card.stability)*100).toFixed(2)+'%';
}
current_retrievability(t: number, s: number):number{
return Math.exp(Math.log(0.9) * t / s)
}
https://github.com/ishiko732/ts-fsrs/blob/547bf3c09dba2b390daf3a233a62fa89144bce55/src/fsrs/fsrs.ts#L61-L67 https://github.com/ishiko732/ts-fsrs/blob/547bf3c09dba2b390daf3a233a62fa89144bce55/src/fsrs/fsrs.ts#L203-L205
这个 t 是取整的还是连续的?
这个 t 是取整的还是连续的?
取整的
那这个 diff 是算两个日期之间的天数差,还是先算相对时间,再取整? 两者的区别在于,前者会把 1 号 23 点和 2 号 0 点之间的天数差计算为 1 天,而后者会算作 0 天。
那这个 diff 是算两个日期之间的天数差,还是先算相对时间,再取整? 两者的区别在于,前者会把 1 号 23 点和 2 号 0 点之间的天数差计算为 1 天,而后者会算作 0 天。
是后者
我不太确定 python 那边是哪一种,明天确认后给你答复。
Commit: d6ff8af
comment: r109421525
个人认为当this.state != State.Review
返回None
这样改比较好
我想显示FSRS的DSR数据,通过
card.stability
,card.difficulty
可以获得S、D数据。但是R需要使用公式: $$R(t,S) = 0.9^{\frac{t}{S}}$$ 进行计算,对于不熟悉FSRS公式的人来言可能不知道t,s分别代表什么,希望添加一个函数来获取召回概率。结构希望是:
又或者提供一个直接显示当前DSR的函数?