最初のやり方
// ---: 0- 1- 2- 3- 4- 5- 6- 7- 8- 9- 10 // 0: 509-282- 55-452-225-622-395-168-565-338-111 // 1: 508-281- 54-451-224-621-394-167-564-337-110 // 2: 507-280- 53-450-223-620-393-166-563-336-109 // 3: 506-279- 52-449-222-619-392-165-562-335-108 // 4: 505-278- 51-448-221-618-391-164-561-334-107 // ... // 52: 457-230- 3-400-173-570-343-116-513-286- 59 // 53: 456-229- 2-399-172-569-342-115-512-285- 58 // 54: 455-228- 1-398-171-568-341-114-511-284- 57 // 55: 454-227- 0-397-170-567-340-113-510-283- 56 // // 56: 453-226-623-396-169-566-339-112
この謎の表の通り「509→282→55→452」の順番でロードすると、一回の更新で
各ワードは一度しかロードしなくていいのですよ。
a[i+1]はa[i]のすぐ上にあるし、a[i+M]はa[i]のすぐ右にあるのですよ。
この時点ですでにFixstars賞から遠のいてた…
shinhさんのコードを見た
ということで次回は
(y >> 1) ^ mag01[y & 1]
をeven*1+odd*3命令でやる話