abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 12:44 | IT novinky

    Peter Steinberger, autor open source AI asistenta OpenClaw, nastupuje do OpenAI. OpenClaw bude převeden pod nadaci a zůstane otevřený a nezávislý.

    Ladislav Hagara | Komentářů: 0
    dnes 03:11 | Zajímavý článek

    Společnost Backblaze zveřejnila statistiky spolehlivosti pevných disků používaných ve svých datových centrech za rok 2025. Ke konci roku 2025 vlastnila 349 462 pevných disků. Průměrná AFR (Annualized Failure Rate), tj. pravděpodobnost, že disk během roku selže, byla 1,36 %. V roce 2024 to bylo 1,57 %. V roce 2023 to bylo 1,70 %. V roce 2022 to bylo 1,37 %.

    Ladislav Hagara | Komentářů: 5
    včera 21:55 | Zajímavý software

    Nástroj sql-tap je proxy mezi aplikací a databází, které zachytává všechny SQL dotazy a zobrazuje je v terminálovém rozhraní. Zde lze téměř v reálném čase zkoumat dotazy, sledovat transakce a spouštět SQL příkaz EXPLAIN. Podporované databázové systémy jsou pouze PostgreSQL a MySQL. Zdrojový kód je dostupný na GitHubu, pod licencí MIT.

    NUKE GAZA! 🎆 | Komentářů: 0
    včera 13:55 | Nová verze

    Byla vydána nová verze 9.2 textového editoru Vim (Vi IMproved). Přináší vylepšené doplňování, podporu schránky ve Waylandu, podporu XDG Base Directory (konfigurace v $HOME/.config/vim), vylepšené Vim9 skriptování nebo lepší zvýrazňování změn. Vim zůstává charityware. Nadále vybízí k podpoře dětí v Ugandě. Z důvodu úmrtí autora Vimu Brama Moolenaara a ukončení činnosti jím založené charitativní organizace ICCF Holland projekt Vim navázal spolupráci s charitativní organizaci Kuwasha.

    Ladislav Hagara | Komentářů: 2
    14.2. 12:33 | Zajímavý projekt

    Byl představen editor MonoSketch, webová aplikace pro tvorbu diagramů, technických nákresů, flowchartů a různých dalších vizualizací, to vše jenom z ASCII znaků. Všechny operace běží pouze v prohlížeči uživatele a neprobíhá tedy žádné nahrávání dat na server. Zdrojový kód aplikace (drtivá většina Kotlin, žádné C#) je dostupný na GitHubu pod licencí Apache 2.0.

    NUKE GAZA! 🎆 | Komentářů: 1
    14.2. 12:22 | Nová verze

    Byla vydána nová verze 3.7.0 multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie). Přehled novinek i s náhledy nových filtrů na PIXLS.US.

    Ladislav Hagara | Komentářů: 0
    14.2. 05:00 | Komunita

    Všem na AbcLinuxu vše nejlepší k Valentýnu aneb Dni lásky ke svobodnému softwaru (I love Free Software Day, Mastodon, 𝕏).

    Ladislav Hagara | Komentářů: 9
    13.2. 19:44 | Zajímavý projekt

    Eric Migicovsky představil Pebble Emulator, tj. emulátor hodinek Pebble (PebbleOS) běžící ve webovém prohlížeči. Za 6 hodin jej napsal Claude Code. Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    13.2. 17:44 | Nová verze

    Byla vydána nová verze 3.41 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.11 souvisejícího programovacího jazyka Dart (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    13.2. 12:11 | IT novinky

    Rusko zcela zablokovalo komunikační platformu WhatsApp, řekl včera mluvčí Kremlu Dmitrij Peskov. Aplikace, jejímž vlastníkem je americká společnost Meta Platforms a která má v Rusku na 100 milionů uživatelů, podle Peskova nedodržovala ruské zákony. Mluvčí zároveň lidem v Rusku doporučil, aby začali používat domácí aplikaci MAX. Kritici tvrdí, že tato aplikace ruské vládě umožňuje lidi sledovat, což úřady popírají.

    Ladislav Hagara | Komentářů: 20
    Které desktopové prostředí na Linuxu používáte?
     (19%)
     (6%)
     (0%)
     (11%)
     (27%)
     (3%)
     (4%)
     (1%)
     (12%)
     (27%)
    Celkem 875 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Dotaz: Algoritmus výpočtu

    16.8.2010 11:27 Vjetnam
    Algoritmus výpočtu
    Přečteno: 522×
    Zdravím, potřeboval bych pomoci z vytvořením optimálního algoritmu.
    Zadání:
    V internetovém obchode je možno zakoupit zboží v různých baleních za různou cenu.
    např.
    
    bal1 (1ks, 20kč/ks)
    bal2 (5ks, 18kč/ks)
    bal3 (10ks, 19kč/ks)
    bal4 (50ks, 17kč/ks)

    Zákazník požaduje např 78ks zboží a program by měl optimální počty balení vložit do košíku, aby to pro zázaníka bylo cenově nejvýhodnější.

    Takže v tomto případě 1*bal4, 5*bal2, 3*bal1.

    Napadá vás jiné řešení než zkoušet všechny možné kombinace a poté vyhodnotit která je nejvýhodnější.

    Díky.

    Řešení dotazu:


    Odpovědi

    16.8.2010 12:03 blondak | skóre: 36 | blog: Blondak | Čáslav
    Rozbalit Rozbalit vše Re: Algoritmus výpočtu
    seřadit si to sestupně podle ceny za kus a pak beze zbytku dělit a zbytek zase a zase .....
    78  / 50 = 1
    (28)/ 5  = 5
    (3) / 10 = 0
    (3) / 1  = 3
    (0)
    
    Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
    16.8.2010 12:07 Vjetnam
    Rozbalit Rozbalit vše Re: Algoritmus výpočtu
    Takto to mám uděláno teď ale ve specifických případech to nefunguje. např.
    bal1 (1ks, 100kč/ks)
    bal2 (7ks, 10kč/ks)
    bal3 (20ks 9kč/ks)
    a zákazník požaduje 21ks

    dle tohoto by vyšlo 1*bal3 + 1*bal1 výsledná cena 280kč

    správně by mělo být 3*bal2 výsledná cena 210kč

    16.8.2010 12:24 chrono
    Rozbalit Rozbalit vše Re: Algoritmus výpočtu
    Tie balenia máš zoradené naopak (najskôr máš hľadať najväčšie balenia).
    16.8.2010 12:27 Vjetnam
    Rozbalit Rozbalit vše Re: Algoritmus výpočtu
    To samozřejmě ano. ale podle navrhovaného způsobu celočíselného dělení to fungovat v tomto případě prostě nebude.
    ava avatar 16.8.2010 12:10 ava | skóre: 10
    Rozbalit Rozbalit vše Re: Algoritmus výpočtu
    Press any key to continue, or any other key to cancel
    16.8.2010 12:55 Vjetnam
    Rozbalit Rozbalit vše Re: Algoritmus výpočtu
    Díky za nasměrování. To je přesně ten můj problém. I když nejsem zrovna happy že to není triviální :-/
    22.8.2010 22:38 Vladimír Čunát | skóre: 19
    Rozbalit Rozbalit vše Re: Algoritmus výpočtu
    NP-úplnost nemusí být až tak velká překážka. Třeba pro batoh zrovna existuje jednoduchý pseudopolynomiální algoritmus. Dá se najít třeba na http://en.wikipedia.org/wiki/Knapsack_problem v sekci "Dynamic programming solution". IMO je to pro zadání jako v příkladu velmi dobře použitelný algoritmus - je jednoduchý a rozhodně lepší než zkoušení všech možností.
    16.8.2010 12:16 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: Algoritmus výpočtu
    Princip: znám-li nejnižší cenu pro 1 až n kusů, pak mohu spočítat i nejnižší cenu pro n+1 kusů. Detaily pak závisí na tom, jestli dovolíte nakoupit i více kusů, než je požadováno (bude-li cena nižší).
    16.8.2010 12:29 Vjetnam
    Rozbalit Rozbalit vše Re: Algoritmus výpočtu
    Cíl je aby zákazník dostal do košíku přesný počet kusů který požadoval. Takže ne.
    16.8.2010 13:03 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: Algoritmus výpočtu
    K je požadovaný počet kusů. Na vstupu jsou dvojice (počet kusů v balení, cena balení).

    Inicializace: Udělám pole arr indexované čísly 1..K, kde i-tý prvek pole je roven nejnižší ceně za balení s i kusy, pokud takové balení neexistuje, je tam nekonečno.

    n-tý krok algoritmu: Prvky 1..n-1 se už nezmění a obsahují optimální cenu za dané počty kusů. Nyní spočítáme optimální cenu za n kusů. M je minimum hodnot arr[i] + arr[n-i] přes všechna i=1..n-1. Nejnižší cena za n kusů je arr[n] <- min(M, arr[n]).
    wamba avatar 16.8.2010 13:14 wamba | skóre: 38 | blog: wamba
    Rozbalit Rozbalit vše Re: Algoritmus výpočtu
    přes všechna i=1..n-1
    stačí přes všechna i=1..(n-1 div 2) jestli se nepletu
    This would have been so hard to fix when you don't know that there is in fact an easy fix.
    16.8.2010 15:32 Vjetnam
    Rozbalit Rozbalit vše Re: Algoritmus výpočtu
    Pro zajímavost zde je výpočet který používám.
    class Variation {
    	var $pieces_arr=array();
    	var $prices_arr=array();
    	var $sum_count=0;
    	var $sum_price=0;
    	
    	function Variation() {
    
    	}
    	
    	function setPieces($type, $count, $price){
    		$this->pieces_arr[$type] = $count;
    		$this->prices_arr[$type] = $count*$price;
    		$this->sum_count = array_sum($this->pieces_arr);
    		$this->sum_price = array_sum($this->prices_arr);
    	}
    }
    
    class VariationSolver {
    	var $itemsArr = array();
    	var $reqCount = 0;
    	var $BestVar;
    	
    	function VariationSolver() {
    		$this->BestVar = null;
    	}
    	
    	function setRequestedCount($count){
    		$this->reqCount = $count;
    	}
    	
    	function addVariationItem($type, $piece, $price){
    		$this->itemsArr[] = array($type, $piece, $price);
    	}
    	
    	function compute($level, $VarObj){
    		$max_level = sizeof($this->itemsArr)-1;
    		$increment = $this->itemsArr[$level][1];
    		for ($i = 0; $i==0 || ($i <= $this->reqCount && ($VarObj->sum_count+$increment)<=$this->reqCount) ; $i=$i+$increment) {
    			$VarObj->setPieces($this->itemsArr[$level][0], $i, $this->itemsArr[$level][2]);
    			
    			if ($max_level>$level){
    				$this->compute($level+1, $VarObj);
    			}
    			else {
    				if ($VarObj->sum_count==$this->reqCount){
    					if ($this->BestVar == null || $VarObj->sum_price < $this->BestVar->sum_price){
    						$this->BestVar = $VarObj;
    					}
    				}
    			}
    		}
    	}
    	
    	function getBestVar(){ //slow
    		$this->BestVar = null;
    		if (sizeof($this->itemsArr)>0){
    			$this->compute(0, new Variation());
    		}
    		return $this->BestVar;
    	}
    }
    
    //==== Vypocet ====
    $VS = new VariationSolver();
    $VS->setRequestedCount(100);
    $VS->addVariationItem("N",1,100);    // typ baleni, pocet kusu v baleni, cena za kus
    $VS->addVariationItem("B",2,95);     // typ baleni, pocet kusu v baleni, cena za kus
    $VS->addVariationItem("A1",5,90);    // typ baleni, pocet kusu v baleni, cena za kus
    $VS->addVariationItem("D",10,98);    // typ baleni, pocet kusu v baleni, cena za kus
    $VS->addVariationItem("IC1",20,81);  // typ baleni, pocet kusu v baleni, cena za kus
    $VS->addVariationItem("IC2",50,80);  // typ baleni, pocet kusu v baleni, cena za kus
    
    print_r( $VS->getBestVar() );
    

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.