Výsledky 1 až 4 z 4

Téma: Obecne kombinace

  1. #1

    Standardní Obecne kombinace

    Zajimalo by mne, jak byste obecne resili proble kdy mate napriklad 5 stringu a z techto stringu chcete dostat dvojice pomoci kombinace bez opakovani. Matematicky by to bylo 5!/2!(5-2)!... jenze ja bych rad mel na vystupu primo ty dvojice bez opakovani. Co byste pouzili obecne, bez vazani na jazyk.

    Diky
    [Project Morpheus] Intel Core2Duo E8200@3,9GHz, 4096MB DDR2, P35-DS3P, Radeon HD2600Pro 512MB, 1,5TB+0,75TB+2TB, Toshiba DVD-Rom 16x,48x, LG DVD-smazirna, BenQ LCD 22", HP Deskjet 959c, LaserMouse 6000, AC 550W
    [NTB] Corei5 2,6GHz, 6GB DDR3, nVidia Quattro 512MB, 250GB+300GB, LCD 14,1", 720p projector

  2. #2

    Standardní Re: Obecne kombinace

    Pokud chces dvojice, tak je to celkem jednoduche, vzdy jen dve strany na porovnani.
    Pokud by slov bylo hodne a melo to byt trochu rychle, tak by bylo vhodne tam dat nejakou hashmapu misto obycejneho pole.

    Jelikoz nevim, do jake miry te zajima optimalizace, tak prikladam nejjednodussi, naivni reseni.
    Je to napsane v pythonu, takze by to snad mohlo byt celkem citelne.


    Kód:
    zadani = ["aa", "bb", "cc", "dd", "ee"]
    
    dvojice = []
    
    for x in zadani:
        for y in zadani:
            if(x != y): # bez opakovani
                if [y, x] not in dvojice: # nezavislost na poradi vyberu (kombinace)
                    dvojice.append([x, y])
                
    print(dvojice)
    Vysledek:
    Kód:
    [['aa', 'bb'], ['aa', 'cc'], ['aa', 'dd'], ['aa', 'ee'], ['bb', 'cc'], ['bb', 'dd'], ['bb', 'ee'], ['cc', 'dd'], ['cc', 'ee'], ['dd', 'ee']]
    EDIT:

    Nejjednodussi bude asi pouziti knihovny:
    Kód:
    zadani = ["aa", "bb", "cc", "dd", "ee"]
    dvojice = itertools.combinations(zadani, 2)             
    for i in dvojice:
        print(i)
    A jak se dozvime z dokumentace,t ak tato funkce dela presne nasledujici:
    http://docs.python.org/library/itert...tool-functions
    Kód:
    def combinations(iterable, r):
        # combinations('ABCD', 2) --> AB AC AD BC BD CD
        # combinations(range(4), 3) --> 012 013 023 123
        pool = tuple(iterable)
        n = len(pool)
        if r > n:
            return
        indices = range(r)
        yield tuple(pool[i] for i in indices)
        while True:
            for i in reversed(range(r)):
                if indices[i] != i + n - r:
                    break
            else:
                return
            indices[i] += 1
            for j in range(i+1, r):
                indices[j] = indices[j-1] + 1
            yield tuple(pool[i] for i in indices)
    Coz by mohl byt optimalni algoritmus, kdyz uz je v knihovne.
    Naposledy upravil monsoon; 03.03.2011 v 19:50.

    Fanless Experiment || Gigabyte Z77-DS3H | Intel i5-3570K | Thermalright HR-02 | 16G DDR3 | Sapphire HD 7750 Ultimate | Crucial M4 256GB | Seasonic X-400FL | Fractal Define R4
    Dell D430 || i945G | C2D 1.2G ULV | 2G DDR2 533 | GMA950 | 12" 1280x800 | 80G 4k2 | 802.3ab | 802.11g | 802.15.1 | HSDPA | Windows 7 x64
    Storage || i965G | E2200 | 4G DDR2 | RAID5 6x Samsung HD154UI 1.5TB - ~7TiB | 802.3ab ...powered by Ubuntu Server x64
    Accessories || E-MU Tracker Pre USB 2.0 | Meier Corda Headsix | Sony MDR-CD470 | Pioneer A-204R | Tesla ARS 9218 32 | LG 32LD350

    "Music is essentially useless, as life is." George Santayana


  3. #3

    Standardní Re: Obecne kombinace

    vrele diky, k+, zkusim to narvat do labview
    Naposledy upravil Špeta Marek; 03.03.2011 v 21:47.
    [Project Morpheus] Intel Core2Duo E8200@3,9GHz, 4096MB DDR2, P35-DS3P, Radeon HD2600Pro 512MB, 1,5TB+0,75TB+2TB, Toshiba DVD-Rom 16x,48x, LG DVD-smazirna, BenQ LCD 22", HP Deskjet 959c, LaserMouse 6000, AC 550W
    [NTB] Corei5 2,6GHz, 6GB DDR3, nVidia Quattro 512MB, 250GB+300GB, LCD 14,1", 720p projector

  4. #4

    Standardní Re: Obecne kombinace

    tak v labview to nejde a i kdyz zchroustne jakys takys Matlab kod, tak se mi nedari uz nekolik dnu tento python kod prepsat do matlab kodu

    EDIT: Dnes jsem k tomu sedl a nakonec jsem to zvladl i v tom Labview
    Přiložené obrázky Přiložené obrázky
    Naposledy upravil Špeta Marek; 13.03.2011 v 21:13.
    [Project Morpheus] Intel Core2Duo E8200@3,9GHz, 4096MB DDR2, P35-DS3P, Radeon HD2600Pro 512MB, 1,5TB+0,75TB+2TB, Toshiba DVD-Rom 16x,48x, LG DVD-smazirna, BenQ LCD 22", HP Deskjet 959c, LaserMouse 6000, AC 550W
    [NTB] Corei5 2,6GHz, 6GB DDR3, nVidia Quattro 512MB, 250GB+300GB, LCD 14,1", 720p projector

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Podobná témata

  1. kombinace UPC a TP-link TL-WR542G, problemy
    Založil MISKOBOSS v sekci fóra Sítě
    Odpovědí: 8
    Poslední příspěvek: 31.10.2007, 12:03
  2. Problem kombinace A8N-SLI PREMIUM s 3GB RAM
    Založil Sense v sekci fóra Paměti
    Odpovědí: 0
    Poslední příspěvek: 26.02.2007, 21:59
  3. K7N2 Delta a kombinace IDE A SATA HDD
    Založil iwi007 v sekci fóra NVIDIA čipové sady
    Odpovědí: 6
    Poslední příspěvek: 13.12.2004, 13:06
  4. Kombinace LCD a TV
    Založil Ja v sekci fóra Monitory
    Odpovědí: 1
    Poslední příspěvek: 25.04.2003, 22:15
  5. Kombinace dvou O.S.
    Založil vd v sekci fóra Ostatní operační systémy
    Odpovědí: 12
    Poslední příspěvek: 21.02.2003, 11:07

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •