Sto imparando lo schema e sto cercando di generare permutazioni con ripetizioni di determinate dimensioni.Come posso generare tutte le permutazioni di determinate dimensioni con ripetizioni in Scheme?
Ad esempio, dato n = 4 e impostato S = {a, b, c, d, e, f}, mi piacerebbe generare tutte le permutazioni possibili: {a, a, a, a}, { a, a, a, b}, ..., {a, a, a, f}, {a, a, b, a}, {a, a, b, b}, ..., {a, a, b, f}, {f ..., a, a, a}, {f, a, a, b} ..., {f, a, a, f} ... {f, f , f, f}.
Il guaio è che non riesco a capire come scegliere 'a' 4 volte, e ricordare che l'ho scelto 4 volte, quindi selezionare 'a' 3 volte, e 'b' una volta, e ricorda tutto questo, quindi non lo prendo di nuovo.
So che questi tipi di problemi si risolvono meglio con algoritmi ricorsivi, ma rende tutto più complicato, come, come ricordo nella ricorsione, quali elementi ho scelto.
Non so come affrontare questo problema. Sarei molto felice se qualcuno scrisse il processo di pensiero per risolvere questo problema. Lo apprezzerei molto!
Per favore aiutatemi.
Grazie, Boda Cydo.
sgm, questa è la spiegazione più eccellente. Mostra davvero come pensare in modo ricorsivo a questi problemi. Grazie mille per averlo spiegato! So di MAP e altre funzioni di ordine superiore ma non avevo mai sentito parlare di FLATMAP. Ora ho imparato anche a questo. :) – bodacydo