am_dot_com

FP 2022-11-15

Nov 15th, 2022 (edited)
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.50 KB | None | 0 0
  1. # em5.py
  2.  
  3. from am_tools import *
  4.  
  5. apostaEM = dict()
  6. apostaEM = {}
  7.  
  8. apostaEM = {
  9. "nums":[],
  10. "estrelas":[]
  11. }
  12. print(apostaEM)
  13.  
  14.  
  15. apostaEM = {
  16. "nums":inteirosAleatorios(1, 50, 5, False),
  17. "estrelas":inteirosAleatorios(1, 10, 2, False)
  18. }
  19. print(apostaEM)
  20.  
  21. nums = inteirosAleatorios(1, 50, 5, False)
  22. stars = inteirosAleatorios(1, 10, 2, False)
  23. nums.sort() # sorting in-place
  24. stars.sort() # sorting in-place
  25.  
  26. apostaEM = {
  27. "nums": nums,
  28. "estrelas": stars
  29. }
  30. print(apostaEM)
  31.  
  32.  
  33. ****************************+
  34.  
  35.  
  36. # am_tools.py
  37.  
  38. import random
  39.  
  40. # ferramenta genérica de nome
  41. # "inteirosAleatorios"
  42. # para gerar
  43. # coleções de inteiros aleatórios
  44. # entre um mínimo e um máximo,
  45. # em quantidade configurável.
  46.  
  47. DEFAULT_MIN = 1
  48. DEFAULT_MAX = 50
  49. DEFAULT_Q = 5
  50. DEFAULT_ACCEPT_REP = False
  51.  
  52. def inteirosAleatorios(
  53. pMin:int=DEFAULT_MIN,
  54. pMax:int=DEFAULT_MAX,
  55. pQ:int=DEFAULT_Q,
  56. pbAcceptRepetitions:bool=DEFAULT_ACCEPT_REP
  57. ):
  58. colComOsInteiros:list=[]
  59.  
  60. iAmplitude:int = pMax-pMin+1
  61. bPossivelTrabalhar = pQ<=iAmplitude
  62. if (not bPossivelTrabalhar):
  63. return colComOsInteiros
  64.  
  65. while(len(colComOsInteiros)<pQ):
  66. i=random.randint(pMin, pMax)
  67. if(pbAcceptRepetitions):
  68. colComOsInteiros.append(i)
  69. else: # rejeitar repetições
  70. # procurar!
  71. resultadoDaProcura =\
  72. procuraGenerica_v3(colComOsInteiros, i)
  73. bEncontrei = len(resultadoDaProcura)>0
  74. if(not bEncontrei):
  75. colComOsInteiros.append(i)
  76. # if
  77. # else
  78. #while
  79. return colComOsInteiros
  80.  
  81.  
  82.  
  83.  
  84.  
  85. def inteirosAleatorios_v0(
  86. pMin:int=DEFAULT_MIN,
  87. pMax:int=DEFAULT_MAX,
  88. pQuantidade:int=DEFAULT_Q,
  89. )->list:
  90. retorno:list=[] # 0 elementos
  91.  
  92. while(len(retorno)<pQuantidade):
  93. i:int = random.randint(
  94. pMin,
  95. pMax
  96. )
  97. retorno.append(i)
  98. return retorno
  99. # def inteirosAleatorios_v0
  100.  
  101. def procuraGenerica_v0(
  102. pCol:list, # a coleção / o espaço de dados onde procurar
  103. pE:int # o elemento a procurar na coleção
  104. )->bool: # retorna True se encontrar pE em pCol; False c.c.
  105. return pE in pCol
  106. # procuraGenerica_v0
  107.  
  108. def procuraGenerica_v1(
  109. pCol:list, # a coleção / o espaço de dados onde procurar
  110. pE:int # o elemento a procurar na coleção
  111. )->bool: # retorna True se encontrar pE em pCol; False c.c.
  112. bColVazia = len(pCol)==0
  113. if (not bColVazia):
  114. enderecosValidos = range(0, len(pCol))
  115. for passeio in enderecosValidos:
  116. quemResideNoEndereco = pCol[passeio]
  117. bEncontreiOQueProcuro =\
  118. pE == quemResideNoEndereco
  119. if (bEncontreiOQueProcuro):
  120. return True # termina a função
  121. # if
  122. # for
  123. else:
  124. # se vazia, não tem elementos
  125. return False # uma col vazia não tem els
  126. # if-else
  127.  
  128. return False
  129. # procuraGenerica_v1
  130.  
  131. def procuraGenerica_v2(pCol, pE)->True:
  132. for el in pCol:
  133. if(el==pE):
  134. return True
  135. # if
  136. # for
  137. return False
  138. # def procuraGenerica_v2
  139.  
  140. def procuraGenerica_v3(pCol, pE)->list:
  141. enderecosEmQueSeEncontra = list()
  142. for endereco in range(0, len(pCol)):
  143. el = pCol[endereco]
  144. bEncontrei = el==pE
  145. if(bEncontrei):
  146. enderecosEmQueSeEncontra.append(endereco)
  147. #if
  148. # for
  149. return enderecosEmQueSeEncontra
  150. # def procuraGenerica_v3
  151.  
Advertisement
Add Comment
Please, Sign In to add comment