66sliding windows of size window_size in an array generated via a linear recurrence.
77
88The problem is :
9- Given parameters array_length, window_size, first_element, multiplier, increment, modulo, generate an array:
9+ Given parameters array_length, window_size, first_element, multiplier, increment,
10+ modulo, generate an array:
11+
1012 arr[0] = first_element
1113 arr[i] = (multiplier * arr[i-1] + increment) % modulo
1214Compute the XOR of each window of size window_size, and cumulatively XOR all windows.
@@ -17,7 +19,15 @@ class SlidingWindowXOR:
1719 """
1820 Use:
1921 solver = SlidingWindowXOR()
20- result = solver.compute(array_length, window_size, first_element, multiplier, increment, modulo)
22+ result = solver.compute(
23+ array_length,
24+ window_size,
25+ first_element,
26+ multiplier,
27+ increment,
28+ modulo
29+ )
30+
2131 """
2232
2333 def compute (
@@ -72,8 +82,24 @@ def compute(
7282 (4 , 4 , 3 , 1 , 0 , 10 , 0 ),
7383 ]
7484
75- for idx , (array_length , window_size , first_element , multiplier , increment , modulo , expected ) in enumerate (test_cases , 1 ):
76- result = solver .compute (array_length , window_size , first_element , multiplier , increment , modulo )
85+ for idx , test_case in enumerate (test_cases , 1 ):
86+ (
87+ array_length ,
88+ window_size ,
89+ first_element ,
90+ multiplier ,
91+ increment ,
92+ modulo ,
93+ expected
94+ ) = test_case
95+ result = solver .compute (
96+ array_length ,
97+ window_size ,
98+ first_element ,
99+ multiplier ,
100+ increment ,
101+ modulo
102+ )
77103 print (f"Testcase { idx } : Expected={ expected } , Got={ result } " )
78104 assert result == expected , f"Testcase { idx } failed!"
79105
0 commit comments