Backtracking in plan: Diferență între versiuni

De la Universitas MediaWiki
(Am adăugat un exercițiu cu permutări la categoria Backtracking in plan)
Fără descriere a modificării
 
(Nu s-a afișat o versiune intermediară efectuată de același utilizator)
Linia 1: Linia 1:
{| class="wikitable sortable"
{| class="wikitable sortable"
|+
|+
!Permutări
!Denumire exercițiu
|-
|-
|1.Cerința
|[[0342 - Soarece]]
|-
|-
|2.Date de intrare
|[[0343 - Soarece 1]]
|-
|-
|3.Date de ieșire
|[[1332 - Traseu Cal]]
|-
|-
|4.Restricții și precizări
|[[2244 - Traseu Cal Max]]
|-
|-
|5.Exemplu
|[[0329 - Bila]]
|-
|-
|6.Rezolvare
|[[4000 - Alpinist]]
|-
|[[4004 - Alpinist 1]]
|-
|[[0937 - Hercule]]
|-
|[[4011 - Mos Craciun XI]]
|-
|[[4012 - Matrix XI]]
|-
|[[0337 - Saritura Calului]]
|-
|[[1518 - Sudoku]]
|}
|}
1.Cerința
Să se determine toate posibilitățile de aranjamente al unui set de litere sau cifre luate câte două.
2.Date de intrare
Programul citește de la tastatură mai multe litere sau cifre (cu precizarea să fie cel puțin două litere/cifre)
3.Date de ieșire
După introducerea datelor, programul va creea permutări cu două elemente.
4.Restricții și precizări
Cifrele ∈ N
5.Exemplu
Intrare
abc
Ieșire
['a', 'b', 'c']
['aa', 'ab', 'ac', 'ba', 'bb', 'bc', 'ca', 'cb', 'cc']
Intrare
123
Ieșire
['1', '2', '3']
['11', '12', '13', '21', '22', '23', '31', '32', '33']
6.Rezolvare<syntaxhighlight lang="python3" line="1" start="1">
def permutare(lista, s):
  if lista == 1:
      return s
  else:
      return [
        y + x
        for y in permutare(1, s)
        for x in permutare(lista - 1, s)
      ]
lista = list(input("Introduceti litere/cifre:"))
print(lista)
print(permutare(2, lista))
</syntaxhighlight>

Versiunea curentă din 17 ianuarie 2023 17:37