• Source
    1. ###
    2. # [1] op_mode = "list" : list of all.
    3. # = "pow1" : list up only pow=1
    4. # = "nearMod" : list of pow nearest v_mod.
    5. #
    6. ###
    7. makePowList = function(v_base = 2, v_mod = 61, v_listDepth = v_mod, op_mode = "list"){
    8. #
    9. ds_ret = c(TRUE)
    10. ds_errmsg = c("")
    11. #
    12. ####
    13. ds_v_base = c()
    14. ds_v_mod = c()
    15. #
    16. ds_num = c()
    17. ds_pow = c()
    18. ds_powDiffMod = c()
    19. #
    20. ###
    21. ds_v_base[1] = v_base
    22. ds_v_mod[1] = v_mod
    23. ###
    24. ds_num[1] = 0
    25. ds_pow[1] = 1
    26. ds_powDiffMod[1] = (v_mod - ds_pow[1])
    27. ###
    28. for(i in 2:v_listDepth){
    29. #
    30. ds_num[i] = i - 1
    31. ds_pow[i] = (v_base * ds_pow[i - 1]) %% v_mod
    32. #
    33. ds_powDiffMod[i] = v_mod - ds_pow[i]
    34. #
    35. }
    36. #
    37. ###
    38. # for op_mode = "list".
    39. ds_out = data.frame(v_base=ds_v_base, v_mod=ds_v_mod,
    40. num=ds_num, pow=ds_pow, powDiffMod=ds_powDiffMod)
    41. #return(ds_out)
    42. if(op_mode == "list") return(ds_out)
    43. ###
    44. # for op_mode = "pow1".
    45. retSubsetPow1 = subset(ds_out, subset = (ds_out$pow == 1))
    46. #return(retSubsetPow1)
    47. if(op_mode == "pow1") return(retSubsetPow1)
    48. ###
    49. # for op_mode = "nearMod".
    50. ds_outSortedDiff = ds_out[order(ds_out$powDiffMod), ]
    51. #return(ds_outSortedDiff)
    52. if(op_mode == "nearMod") return(ds_outSortedDiff)
    53. ###
    54.  
    55. ###
    56. ds_out = data.frame(ret=ds_ret, errmsg=ds_errmsg)
    57. #
    58. return(ds_out)
    59. }
    60.  
    61. ####
    62. ### @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    63. ### @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    64. ### @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    65. ### @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    66. ### @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    67. ### @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    68. ### @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    69. v_base = 2
    70. #v_base = 3
    71. #v_base = 4
    72. #v_base = 5
    73. #v_base = 6
    74. #v_base = 7
    75. #v_base = 8
    76. #v_base = 9
    77. #v_base = 10
    78. #v_base = 11
    79. #v_base = 12
    80. #v_base = 13
    81. #v_base = 14
    82. #v_base = 15
    83. ###
    84. v_mod = 8911
    85.  
    86. #v_mod = 61
    87.  
    88.  
    89.  
    90.  
    91. ###
    92. #op_mode = "list"
    93. op_mode = "pow1"
    94. #op_mode = "nearMod"
    95. ###
    96. makePowList(v_base, v_mod, v_mod, op_mode)
    97. ###
    98.  
    99. ###
    100. #makePowList(v_base = 2, v_mod = 61, op_mode = "list")
    101. #makePowList(v_base = 2, v_mod = 61, op_mode = "pow1")
    102. #makePowList(v_base = 2, v_mod = 61, op_mode = "nearMod")
    103. ###
    104.  
    105. ###
    106. # [v_base=2, v_mod=61, op_mode="list"]
    107. # num pow
    108. # 1 0 1
    109. # 2 1 2
    110. # 3 2 4
    111. # 4 3 8
    112. # 5 4 16
    113. # 6 5 32
    114. # 7 6 3
    115. # 8 7 6
    116. # 9 8 12
    117. # 10 9 24
    118. # 11 10 48
    119. # 12 11 35
    120. # 13 12 9
    121. # 14 13 18
    122. # 15 14 36
    123. # 16 15 11
    124. # 17 16 22
    125. # 18 17 44
    126. # 19 18 27
    127. # 20 19 54
    128. # 21 20 47
    129. # 22 21 33
    130. # 23 22 5
    131. # 24 23 10
    132. # 25 24 20
    133. # 26 25 40
    134. # 27 26 19
    135. # 28 27 38
    136. # 29 28 15
    137. # 30 29 30
    138. # 31 30 60
    139. # 32 31 59
    140. # 33 32 57
    141. # 34 33 53
    142. # 35 34 45
    143. # 36 35 29
    144. # 37 36 58
    145. # 38 37 55
    146. # 39 38 49
    147. # 40 39 37
    148. # 41 40 13
    149. # 42 41 26
    150. # 43 42 52
    151. # 44 43 43
    152. # 45 44 25
    153. # 46 45 50
    154. # 47 46 39
    155. # 48 47 17
    156. # 49 48 34
    157. # 50 49 7
    158. # 51 50 14
    159. # 52 51 28
    160. # 53 52 56
    161. # 54 53 51
    162. # 55 54 41
    163. # 56 55 21
    164. # 57 56 42
    165. # 58 57 23
    166. # 59 58 46
    167. # 60 59 31
    168. # 61 60 1
    169. ###
    170. # [v_base=2, v_mod=61, op_mode="pow1"]
    171. # num pow powDiffMod
    172. # 1 0 1 60
    173. # 61 60 1 60
    174. ###
    175. # [v_base=2, v_mod=61, op_mode="nearMod"]
    176. # num pow powDiffMod
    177. # 31 30 60 1
    178. # 32 31 59 2
    179. # 37 36 58 3
    180. # 33 32 57 4
    181. # 53 52 56 5
    182. # 38 37 55 6
    183. # 20 19 54 7
    184. # 34 33 53 8
    185. # 43 42 52 9
    186. # 54 53 51 10
    187. # 46 45 50 11
    188. # 39 38 49 12
    189. # 11 10 48 13
    190. # 21 20 47 14
    191. # 59 58 46 15
    192. # 35 34 45 16
    193. # 18 17 44 17
    194. # 44 43 43 18
    195. # 57 56 42 19
    196. # 55 54 41 20
    197. # 26 25 40 21
    198. # 47 46 39 22
    199. # 28 27 38 23
    200. # 40 39 37 24
    201. # 15 14 36 25
    202. # 12 11 35 26
    203. # 49 48 34 27
    204. # 22 21 33 28
    205. # 6 5 32 29
    206. # 60 59 31 30
    207. # 30 29 30 31
    208. # 36 35 29 32
    209. # 52 51 28 33
    210. # 19 18 27 34
    211. # 42 41 26 35
    212. # 45 44 25 36
    213. # 10 9 24 37
    214. # 58 57 23 38
    215. # 17 16 22 39
    216. # 56 55 21 40
    217. # 25 24 20 41
    218. # 27 26 19 42
    219. # 14 13 18 43
    220. # 48 47 17 44
    221. # 5 4 16 45
    222. # 29 28 15 46
    223. # 51 50 14 47
    224. # 41 40 13 48
    225. # 9 8 12 49
    226. # 16 15 11 50
    227. # 24 23 10 51
    228. # 13 12 9 52
    229. # 4 3 8 53
    230. # 50 49 7 54
    231. # 8 7 6 55
    232. # 23 22 5 56
    233. # 3 2 4 57
    234. # 7 6 3 58
    235. # 2 1 2 59
    236. # 1 0 1 60
    237. # 61 60 1 60
    238. ###
    239.  
    240. ### @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    241. # end.