fork download
  1.  
  2. var E2R={
  3. "a": {
  4. "а": 170,
  5. "я": 30,
  6. },
  7. "b": {
  8. "б": 130,
  9. "6": 30,
  10. "ь": 30,
  11. "ъ": 10
  12. },
  13. "c": {
  14. "с": 200
  15. },
  16. "d": {
  17. "д": 100,
  18. "б": 50,
  19. "o": 40,
  20. "ф": 10
  21. },
  22. "e": {
  23. "е": 190,
  24. "o": 10
  25. },
  26. "f": {
  27. "т": 70,
  28. "ф": 70,
  29. "р": 50,
  30. "6": 10
  31. },
  32. "g": {
  33. "д": 100,
  34. "8": 50,
  35. "я": 40
  36. },
  37. "h": {
  38. "п": 100,
  39. "н": 50,
  40. "л": 40,
  41. "и": 10
  42. },
  43. "i": {
  44. "i": 120,
  45. "!": 50,
  46. "1": 30
  47. },
  48. "j": {
  49. "i": 80,
  50. "?": 30,
  51. },
  52. "k": {
  53. "к": 200
  54. },
  55. "l": {
  56. "1": 100,
  57. "!": 40
  58. },
  59. "m": {
  60. "м": 150,
  61. "т": 20,
  62. "ш": 10,
  63. "ж": 20
  64. },
  65. "n": {
  66. "п": 190,
  67. "р": 10
  68. },
  69. "o": {
  70. "о": 190,
  71. "е": 10
  72. },
  73. "p": {
  74. "р": 170,
  75. "п": 20,
  76. "б": 10
  77. },
  78. "q": {
  79. "о": 70,
  80. "р": 60,
  81. "б": 60
  82. },
  83. "r": {
  84. "г": 195,
  85. "к": 5
  86. },
  87. "s": {
  88. "з": 100
  89. ,"c": 100
  90. },
  91. "t": {
  92. "т": 160,
  93. "г": 30,
  94. "+": 30
  95. },
  96. "u": {
  97. "ч": 60,
  98. "и": 80,
  99. "н": 30,
  100. "ц": 20,
  101. "ы": 10
  102. },
  103. "v": {
  104. "и": 80,
  105. "у": 60,
  106. "ц": 30,
  107. "ч": 30
  108. },
  109. "w": {
  110. "ш": 80,
  111. "щ": 60,
  112. "ж": 40,
  113. "м": 20
  114. },
  115. "x": {
  116. "х": 200
  117. },
  118. "y": {
  119. "у": 200
  120. },
  121. "z": {
  122. "з": 160,
  123. "2": 30,
  124. "с": 10
  125. },
  126. "A": {
  127. "А": 160,
  128. "Я": 20,
  129. "4": 20
  130. },
  131. "B": {
  132. "В": 150,
  133. "Б": 20,
  134. "8": 20,
  135. "6": 10
  136. },
  137. "C": {
  138. "С": 186,
  139. "6": 7,
  140. "Г": 7
  141. },
  142. "D": {
  143. "0": 80,
  144. "В": 80,
  145. "Р": 20,
  146. "0": 20
  147. },
  148. "E": {
  149. "Е": 150,
  150. "Ё": 40,
  151. "Є": 10
  152. },
  153. "F": {
  154. "Г": 130,
  155. "P": 30,
  156. "Е": 40
  157. },
  158. "G": {
  159. "Б": 80,
  160. "6": 90,
  161. "Ф": 20,
  162. "О": 10
  163. },
  164. "H": {
  165. "Н": 170,
  166. "И": 20,
  167. "П": 10,
  168. },
  169. "I": {
  170. "1": 100,
  171. "I": 80,
  172. "!": 20
  173. },
  174. "J": {
  175. "1": 30,
  176. "Ч": 10
  177. },
  178. "K": {
  179. "К": 200
  180. },
  181. "L": {
  182. "7": 40,
  183. },
  184. "M": {
  185. "М": 140,
  186. "Ш": 30,
  187. "Щ": 20,
  188. "Ж": 10
  189. },
  190. "N": {
  191. "И": 100,
  192. "Н": 90,
  193. "М": 10
  194. },
  195. "O": {
  196. "О": 140,
  197. "0": 30,
  198. "Ф": 20,
  199. "9": 5,
  200. "8": 5
  201. },
  202. "P": {
  203. "Р": 200
  204. },
  205. "Q": {
  206. "Ф": 80,
  207. "О": 70,
  208. "9": 30,
  209. "Ю": 20
  210. },
  211. "R": {
  212. "Р": 100,
  213. "К": 20,
  214. "Я": 80
  215. },
  216. "S": {
  217. "З": 100,
  218. "С": 50,
  219. "8": 20,
  220. "5": 30
  221. },
  222. "T": {
  223. "Т": 150,
  224. "Г": 25,
  225. "7": 25
  226. },
  227. "U": {
  228. "У": 100,
  229. "И": 20,
  230. "Ц": 30,
  231. "Ч": 10
  232. },
  233. "V": {
  234. "У": 100,
  235. "И": 60,
  236. "Ц": 20
  237. },
  238. "W": {
  239. "Ш": 90,
  240. "Щ": 60,
  241. "Ж": 40
  242. },
  243. "X": {
  244. "Х": 200
  245. },
  246. "Y": {
  247. "У": 190,
  248. "Т": 10
  249. },
  250. "Z": {
  251. "2": 80,
  252. "7": 30,
  253. "С": 30,
  254. "З": 60
  255. }
  256. }
  257.  
  258. function isVowel(char){
  259. return "аоэиуыеёюя".indexOf(char.toLocaleLowerCase())>=0 ? 1 : 0;
  260. }
  261.  
  262. function vorefy(text)
  263. {
  264. // Г => C 0.85
  265. // Г => Г 0.15
  266. // С => С 0.30
  267. // С => Г 0.70
  268. var markov = [[0.3,0.7],[0.85,0.15]];
  269. var mCorr = [ 1/Math.sqrt(0.3*0.7), 1/Math.sqrt(0.85*0.15) ];
  270. //степень влияния марковских вореантностей
  271. var pow = x => Math.pow(x,2);
  272.  
  273. var prev=null;
  274. return text.replace(/./g,(char,offset,text) =>
  275. {
  276. if (E2R[char]){
  277. var replace = Object.entries(E2R[char]);
  278. if (1==replace.length) {
  279. prev = replace[0][0];
  280. return prev;
  281. }
  282. var r = Math.random()*200, probability=0;
  283. for (const [k, v] of replace) {
  284. vowel = isVowel(k);
  285. probability += v * ((null==prev) ? 1
  286. : pow(
  287. mCorr[vowel]*2*markov[isVowel(prev)][vowel]
  288. ));
  289. if (r<=probability) {
  290. prev = k;
  291. return prev;
  292. }
  293. }
  294. }
  295. prev=null;
  296. return char;
  297. });
  298. }
  299.  
  300. console.log(vorefy(`var r = Math.random()*200, probability=0;
  301. for (const [k, v] of replace) {
  302. vowel = isVowel(k);
  303. probability += v * ((null==prev) ? 1
  304. : pow(
  305. mCorr[vowel]*2*markov[isVowel(prev)][vowel]
  306. ));
  307. if (r<=probability) {
  308. prev = k;
  309. return prev;
  310. }
  311. }`))
Success #stdin #stdout 0.02s 18940KB
stdin
Standard input is empty
stdout
уаг г = Шатп.гапдом()*200, рго6а6i11ту=0;
фог (сопзт [к, ц] о6 гер1асе) {
    уоше1 = iзУоше1(к);
    пго6а6i1iту += у * ((пч!1==ргец) ? 1 
        : рош( 
            шСогг[цоше1]*2*магкоц[!зУoще1(ргец)][чоше1]
        ));
    !ф (г<=рго6а6i1iту) {
        ргеу = к;
        гетчгп ргеи;
    }
}