Advertisement
miklis

memorisation

May 24th, 2018
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.51 KB | None | 0 0
  1. #EXERCISE 1: system for learning English.
  2.  
  3. from random import shuffle
  4. from sys import exit
  5. a='''
  6. addition=sudetis
  7. subtraction=atimtis
  8. multiplication=daugyba
  9. division=dalyba
  10. segment=atkarpa
  11. square=kvadratas
  12. integer=sveikasis skaicius
  13. fraction=trupmena
  14. inverse=atvirkscias
  15. equilateral=lygiakrastis
  16. angle=kampas
  17. plane=plokstuma
  18. rectangle=staciakampis
  19. vertex=virsune
  20. edge=briauna
  21. surface=pavirsius
  22. area=plotas
  23. root=saknis
  24. paralellogram=lygiagretainis
  25. multiplier=daugiklis
  26. '''
  27.  
  28. a=dict([filter(lambda x:x<>' ',n).split('=') for n in a.split('\n') if '=' in n])
  29.  
  30. def ask_me(words):
  31. askable=words.keys()
  32. shuffle(askable)
  33. unanswered, note={},''
  34. for word in askable:
  35. if raw_input(note+word)<>words[word]:
  36. unanswered.update({word:words[word]})
  37. note='INCORRECT!\n'+word+' = '+words[word]+'\n'
  38. else: note='CORRECT!'+'\n'
  39. raw_input(note+'press ENTER to start new round')
  40. return unanswered
  41.  
  42. checklist=[ask_me(a)]
  43. print 'YOU ANSWERED', str(len(a)-len(checklist[-1]))+'/'+str(len(a))
  44. while True:
  45. checklist.append(ask_me(checklist[-1]))
  46. if len(checklist[-1])==0:
  47. del checklist[-1]
  48. break
  49. else: print 'YOU ANSWERED', str(len(checklist[-2])-len(checklist[-1]))+'/'+str(len(checklist[-2]))
  50.  
  51. print 'HISTORY of unanswered words:'
  52. for i in range(len(checklist)):
  53. print 'ROUND '+str(i+1)+': '+', '.join(checklist[i].keys())
  54.  
  55. #EXERCISE 2: tell week day of a given date.
  56.  
  57. from datetime import date
  58. import calendar
  59. for i in range(2018,1950,-1):
  60. print i, [calendar.day_name[date(i, x, 1).weekday()][:2] for x in range(1,13)]
  61.  
  62. #EXERCISE 3: square number.
  63. http://www.teamliquid.net/blogs/311294-how-to-be-like-arthur-benjamin
  64.  
  65. """57683 kvadratu.
  66. Pradėsiu skaičiuoti nuo vidurio: 57 kart 683.
  67. 57 kart 68 lygu 3,400, plius 476 lygu 3876
  68. 38,760 plius 171 lygu 38,931
  69. 38,931 padvigubinus bus 77,862.
  70. 77,862 tampa ,,cookie fission"
  71. Aha, taip, toliau, ,,cookie fission"(sausainio skilimas) - ok.
  72. Toliau, 57 kvadratu yra 3,249.
  73. RAŠAU: 3 MILIJARDAI...
  74. pasiimu 249 ir pridedu prie ,,cookie",
  75. ups, bet vienas minty,
  76. 249 pridedu prie ,,cookie'', 250 plius 77...
  77. RAŠAU: 327 MILIJONAI --
  78. fission, fission, OK, keliu 683 kvadratu
  79. bus 700 kart 666, plus 17 kvadratu
  80. lygu 466,489, ,,rev up'' (atnaujinu), jei reikia
  81. rev up, imu 466,
  82. pridedu prie fission, ir gaunu,
  83. hmm... -- 328,489."""
  84.  
  85. #EXERCISE 4: Find distributions of pythagorean squares for 100 years!
  86. https://victoriaandmore.wordpress.com/pythagoras-square/
  87. https://www.alfa.lt/astromanija/pitagoro-kvadratas/
  88.  
  89. start = datetime.datetime.strptime("28-5-1918", "%d-%m-%Y")
  90. end = datetime.datetime.strptime("28-5-2018", "%d-%m-%Y")
  91. date_generated = [start + datetime.timedelta(days=x) for x in range(0, (end-start).days)]
  92.  
  93. ATS=[0 for n in range(9)] #stands for distributions of squares
  94. for date in date_generated:
  95. A=date.strftime("%d%m%Y")
  96. first=sum([int(n) for n in A])
  97. second=first%9
  98. if second==0: second=9
  99. if int(A[0])==0:
  100. third=first-2*int(A[1])
  101. else: third=first-2*int(A[0])
  102. fourth=third%9
  103. if fourth==0: fourth=9
  104. ans=''.join([str(n) for n in [A,first,second,third,fourth]])
  105. ats=[ans.count(n) for n in [str(x) for x in range(1,10)]]
  106. #print ans, ats #concrete square and its distribution
  107. for i in range(9): ATS[i]+=ats[i]
  108. print ATS
  109.  
  110. #EXERCISE 5 - frequencies of letters
  111. 'abcdefghijklmnopqrstuvwxyz'
  112. [8.167,1.492,2.78,4.253,12.702,2.228,2.015,6.094,6.966,0.153,0.772,4.025,2.406,6.749,7.507,1.929,0.095,5.987,6.327,9.056,2.758,0.978,2.360,0.150,1.974,0.074]
  113. jts=['sz','dt','n','m','r','l','jg','k','fv','bp','h','c','w','x','q']
  114. for i in range(len(jts)):
  115. print i,'=','+'.join(jts[i]),'=','+'.join([str(freq[letters.index(n)]) for n in jts[i]]),'=',sum([freq[letters.index(n)] for n in jts[i]])
  116.  
  117. #Exercise 6 - remember 10 Greek philosophers
  118. https://www.academictips.org/memory/norhyme.html
  119.  
  120. #Exercise 7 - remember pi digits: https://major-system.info/en/?ln=5346&s=2
  121. #Eercise 8 - lets do the lat level of matmintinis
  122. from random import*
  123. from time import*
  124. while True:
  125. t=time()
  126. a,b,c,d,e=str(randint(1,9)),str(randint(1,9)),str(randint(1,9)),str(randint(1,9)),str(randint(1,9))
  127. inp=raw_input(a+b+' x '+c+d+e)
  128. if inp==str(int(a+b)*int(c+d+e)):
  129. print 'YOU TYPED',a+b+' x '+c+d+e,'=',inp
  130. print 'CORRECT in',time()-t
  131. else:
  132. print 'YOU TYPED',a+b+' x '+c+d+e,'=',inp
  133. print 'WRONG:',a+b+' x '+c+d+e+' = '+str(int(a+b)*int(c+d+e))
  134.  
  135. Skelbiu abu sprendimus.
  136. [quote]Raskite visas galimas skaitmenų sumas tokio natūraliojo skaičiaus, kuris dalijasi iš 7.[/quote]
  137. Norint spręsti tokį uždavinį reikia suvokti, jog turėdami du besidalijančius iš 7 skaičius mes juos galime ,,sulipinti" ir vis tiek turėsime iš 7 besidalijantį skaičių. Matematikos mėgėjai turėtų būt girdėję apie skaičiaus $1001$ sandarą: jis yra lygus sandaugai $7\cdot 11\cdot 13$. Lygiai taip pat gana ,,taupus" skaičius vertinant pagal skaitmenų sumos dydį yra skaičius $21$. Taigi turime, kad skaičiai $1001$ ir $21$ dalijasi iš $7$, o jų skaitmenų sumos lygios $2$ ir $3$. Likusias didesnes skaitmenų sumas galime gauti prie vieno iš šių skaičių prilipindami po kažkiek skaičių $1001$.
  138.  
  139. Skaitmenų sumos, lygios 1, gauti negalime, nes tada skaičius turėtų būti formos $10\dots 0$, o tokių skaičių išskaidyme pirminiais daugikliais yra tik dvejetų pei penketų laipsniai.
  140.  
  141. Vadinasi, uždavinio atsakymas - visi natūralieji skaičiai, didesni už 1.
  142. [b]
  143. Besidomintiems[/b], kaip čia atsirado skaičius $1001$ ir kaip jį pastebėti neturint pakankamo jautrumo skaičiams, galiu paminėti, kad ne tik septynetui, bet dažniausia ir didesniam už jį (bet tikrai ne bet kuriam) pirminiui skaičiui sąraše $11, 101, 1001, \dots, 10\dots 01, \dots$ atsiranda iš jo besidalijantis narys. Nustatyti, kuriems atsiranda, o kuriems ne - jau kito masto, daug rimtesnis uždavinys.
  144.  
  145. Grįžtam į universitetą:
  146. [quote]Ar konverguoja eilutė $\displaystyle \sum_{n=1}^\infty n \sin\frac{1}{n^{4/3}}$?[/quote]
  147. Čia būtina prisiminti, jog $\frac{\sin x}{x}\to 1$, kai $x\to 0$. Prasminga ne tik prisiminti šią kaip vieną pagrindinių ribų skaičiavimo taisyklių, bet ir žinoti, kodėl ji galioja. Pateiktame brėžinyje matyti, kad jei vienetiniame skritulyje parodytas kampas lygus $x$, tai $\sin x$ atitiks žalios atkarpos ilgį, o $x$ atitiks mėlynos atkarpos ilgį. Jei kampą mažiname, atkarpos ilgis darosi vis artimesnis lanko ilgiui. [img]https://i.imgur.com/TDQnCKd.png[/img]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement