13 일 금요일이 목록에 몇 개 있습니까? [복제]

Dec 07 2020

1920 년 1 월 1 일부터 2020 년 1 월 1 일 사이의 모든 날짜 목록을 확인하십시오.이 목록에는 13 일 금요일이 몇 개입니까?

Wolfram 12.1 사용

답변

9 kglr Dec 07 2020 at 05:07
Count[Friday][DayName /@ Tuples[{Range[1920, 2019], Range[12], {13}}]]
Array[Boole[Friday == DayName[{#, #2, 13}]] &, {100, 12}, {1920, 1}, Plus]
Total[Array[Boole[Friday == DayName[{1919 + #, #2, 13}]] &, {100, 12}], 2]
Count[Friday]@ Flatten@Table[DayName[{y, m, 13}], {y, 1920, 2019}, {m, 1, 12}]
(i = 0; Do[i += Boole[Friday == DayName[{y, m, 13}]], {y, 1920, 2019}, {m, 1,  12}]; i)
Count[Friday]@Flatten@Table[DayName[{1920, m, 13}], {m, 1, 12 100}]
Count[Friday][DayName /@ DateRange[{1920, 1, 13}, {2019, 12, 13}, "Month"]]
Counts[DayName /@ DateRange[{1920, 1, 13}, {2019, 12, 13}, "Month"]]@Friday
Count[_?(DayName@# == Friday &)]@DateRange[{1920, 1, 13}, {2019, 12, 13}, "Month"]

모두 주다

173

처음 6 개는 속도가 비슷합니다. 마지막 3 개보다 두 배 이상 빠릅니다 RepeatedTiming.

{0.11, 0.12, 0.11, 0.11, 0.11, 0.11, 0.262, 0.262, 0.265}

이에 비해 RepeatedTimingfor DateRange[start, end, Friday] // Select[blackFridayQ] // Length는 5.4입니다.

8 UnchartedWorks Dec 07 2020 at 05:14
start = DateObject[{1920, 1, 1}];
end = DateObject[{2020, 1, 1}];
blackFridayQ[date_] := DateValue[date, "Day"] == 13
DateRange[start, end, Friday] // Select[blackFridayQ] // Length

173