Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 209. brněnský sraz, který proběhne tento pátek 16. května od 18:00 ve studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Jelikož se Brno stalo jedním z hlavních míst, kde se vyvíjí open source knihovna OpenSSL, tentokrát se OpenAlt komunita potká s komunitou OpenSSL. V rámci srazu Anton Arapov z OpenSSL
… více »GNOME Foundation má nového výkonného ředitele. Po deseti měsících skončil dočasný výkonný ředitel Richard Littauer. Vedení nadace převzal Steven Deobald.
Byl publikován přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie) za uplynulé dva měsíce. Servo zvládne už i Gmail. Zakázány jsou příspěvky generované pomocí AI.
Raspberry Pi Connect, tj. oficiální služba Raspberry Pi pro vzdálený přístup k jednodeskovým počítačům Raspberry Pi z webového prohlížeče, byla vydána v nové verzi 2.5. Nejedná se už o beta verzi.
Google zveřejnil seznam 1272 projektů (vývojářů) od 185 organizací přijatých do letošního, již jednadvacátého, Google Summer of Code. Plánovaným vylepšením v grafických a multimediálních aplikacích se věnuje článek na Libre Arts.
Byla vydána (𝕏) dubnová aktualizace aneb nová verze 1.100 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.100 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.5.
OpenSearch (Wikipedie) byl vydán ve verzi 3.0. Podrobnosti v poznámkách k vydání. Jedná se o fork projektů Elasticsearch a Kibana.
PyXL je koncept procesora, ktorý dokáže priamo spúštat Python kód bez nutnosti prekladu ci Micropythonu. Podľa testov autora je pri 100 MHz približne 30x rýchlejší pri riadeni GPIO nez Micropython na Pyboard taktovanej na 168 MHz.
Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.
import string string_array = ['Jozko', 'mal', 'mal', 'ranajky', 'polievku', 'zvysila','Jozko', 'mal','mal', 'sa', 'mu', 'od', 'vcera','polievku','zvysila'] for i in range(len(string_array)): if string_array.count(string_array[i]) > 1: added_word_counter = 0 while True: added_word_counter += 1 searched_string = string_array[i] for j in range(added_word_counter): searched_string += ' ' + string_array[i + j + 1] if string.count(searched_string) > 1: print '>>>>' + searched_string + ': ' + str(string.count(searched_string)) else: breaka malo by to vypisat :
>>>>Jozko mal mal >>>>>polevku zvysilaale vypisuje mi tam nejaku chybu...vie nniekto poradit?
Řešení dotazu:
if string.countNevola se nahodou metoda na objekt ne na modul?
Traceback (most recent call last): File "test.py", line 14, in <module> if string.count(searched_string) > 1: File "/usr/lib/python2.7/string.py", line 348, in count return s.count(*args) TypeError: count() takes at least 1 argument (0 given)Pak se stačí podívat do dokumentace, co vlastně metoda
count
očekává.
cnts = {} for word in string_array: cnts[word] = cnt.setdefault(word,0) + 1
ale vypisuje mi tam nejaku chybu...vie nniekto poradit?Napadla mě nějaká rada.
" ".join(string_array[i:j])Podobnych konstrukci kterymi si jen hazis klacky pod nohy tam mas vice, ale bez znalosti zadani tezko radit.
A B A B C A B C D A B C D EMá se vypsat pouze
A B
, protože je tam nejvícekrát, pouze A B C D
, protože je nejdelší, něco jiného ...?
A B C B C D C D A D A BTady by se mělo vypsat co? Jsou tam čtyři sekvence, které se všechny vyskytují právě dvakrát, a překrývají se. Takový problém je prostě zapotřebí specifikovat přesně.
#!/usr/bin/python import sys, re def only_multiple_occurences(d): return dict((k, v) for k, v in d.iteritems() if len(v) > 1) def add_to_dict_list(d, k, x): if k in d: d[k].append(x) else: d[k] = [x] # Get words. words = list(re.findall(r'\w+', sys.stdin.read())) nwords = len(words) # Find all bigrams with mutliple occurences and gather their positions. n = 2 allngrams = [None, words, {}] ngrams = allngrams[n] for i in range(nwords+1-n): add_to_dict_list(ngrams, tuple(words[i:i+2]), i) allngrams[n] = only_multiple_occurences(ngrams) # Find all longer n-grams, searching only at positions of already found shorter # n-grams. while allngrams[n]: prevngrams = allngrams[n] n += 1 allngrams.append({}) ngrams = allngrams[n] for prevngram, positions in prevngrams.iteritems(): for i in positions: if i + n <= nwords: add_to_dict_list(ngrams, prevngram + (words[i+n-1],), i) allngrams[n] = only_multiple_occurences(ngrams) # Print the n-grams, starting from the longest while excluding all n-grams that # are part of any longer n-gram. n -= 1 excluded = {} while n >= 2: nextexcluded = set() for ngram, positions in allngrams[n].iteritems(): if ngram not in excluded: print ' '.join(ngram) + ' (%ux)' % len(positions) nextexcluded.add(tuple(ngram[1:])) nextexcluded.add(tuple(ngram[:-1])) excluded = nextexcluded n -= 1
1. Behem prvniho pruchodu presstring_array
zjistit pocet vyskutu vsech slov a neuvazovat ty, ktere se vyskutuji min nez 2 krat 2. Behem druheho pruchodu presstring_array
najit nejdelsi retezec, jehoz vsechna slova, jsou v seznamu (slovniku) vytvorenem v 1.kroku 3. Konec
string_array = ['Jozko', 'mal', 'mal', 'ranajky', 'polievku', 'zvysila','Jozko', 'mal','mal', 'sa', 'mu', 'od', 'vcera','polievku','zvysila'] #Prvni pruchod - pocitani vyskytu cnts = {} for word in string_array: cnts[word] = cnts.setdefault(word,0) + 1 valids = [v for v in cnts.keys() if cnts[v] > 1] #Druhy pruchod - hledani nejdelsiho vyhovujiciho retezce max = {'beg': 0, 'end': 0} cur = {'beg': 0, 'end': 0} for pos in range(len(string_array)): if string_array[pos] in valids: cur['end'] += 1 if not string_array[cur['beg']] in valids: cur['beg'] = pos else: if (cur['end'] - cur['beg']) > (max['end'] - max['beg']): max['end'] = cur['end'] max['beg'] = cur['beg'] cur['beg'] = pos cur['end'] = pos print string_array[max['beg']:max['end']+1]
Jozko mal mal polevku zvysilapotom nedokáže v deseti příspěvcích popsat, co to přesně má dělat obecně, a na otázky po upřesnění odpovídá nejasnými kecy, které lze interpretovat deseti způsoby, a nakonec označí za řešení nesmyslný program jiného experta, který nevypíše, co má, ani na tom zasraném jednoduchém úvodním příkladu, natož na těch A B C..., které jsem psal já. Pokud Kamile napíšeš (resp. nenapíšeš, toho jsi nebyl schopen, a muselo se to z tebe složitě dostávat), že má program najít nějaké nejdelší opakující se podsekvence a tenhle program považuješ za řešení, tak se nech vyšetřit. A hlavně se prosím nikdy nepokoušej o programování.
A B C A B C A B C A B C
Tiskni
Sdílej: