NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Nejbližší číslo k číslu n

Aktivity
Avatar
Oliver Solenský:18.12.2016 17:49

Ahoj, potřebuju pomoc. Píšu program v PyCharmu a mám tam seznam z čísel a potřebuji, aby program rozpoznal, které číslo je nejblíž k nule. Předem díky.

 
Odpovědět
18.12.2016 17:49
Avatar
Odpovídá na Oliver Solenský
Petr Štechmüller:18.12.2016 17:53

Ahoj, program Ti neřeknu, ale algoritmus jo:

projdi všechny prvky v seznamu
        pokud bude absolutní hodnota prvku menší, než nejmenší
                přiřaď do nejmenšího novou hodnotu
        jinak
                pokračuj dál

Na konci získáš nejmenší číslo. Neřekl jsi, jestli ten seznam obsahuje i záporná čísla. Pokud je neobsahuje, můžeš dát tu absolutní hodnotu pryč.

Editováno 18.12.2016 17:53
Nahoru Odpovědět
18.12.2016 17:53
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Odpovídá na Oliver Solenský
Josef Kuchař - Pepa489:18.12.2016 19:14

Jednoduchý one-liner

min(tvujSeznam, key=lambda x:abs(x-tvojeCislo))
Editováno 18.12.2016 19:15
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
18.12.2016 19:14
2x piš, jednou debuguj
Avatar
Oliver Solenský:18.12.2016 19:32

Díky moc Vám oběma.

 
Nahoru Odpovědět
18.12.2016 19:32
Avatar
hanpari
Člen
Avatar
Odpovídá na Josef Kuchař - Pepa489
hanpari:18.12.2016 20:15

Mimochodem, ta lambda je nadbytečná.

min(tvujSeznam, key=abs)
 
Nahoru Odpovědět
18.12.2016 20:15
Avatar
Odpovídá na hanpari
Josef Kuchař - Pepa489:18.12.2016 20:44

Aha, já odpovídal rovnou na nadpis a neřešil moc, co píše dále

Nahoru Odpovědět
18.12.2016 20:44
2x piš, jednou debuguj
Avatar
Odpovídá na Josef Kuchař - Pepa489
Oliver Solenský:20.12.2016 17:48

Ahoj, když jsem program upravil a potřeboval jsem nejbližší číslo k náhodnému číslu (které je v proměnné(ukázané pod dotazem)), vždy mi program vypsal jenom nejmenší číslo ze seznamu, poradil bys mi prosím.
Předem díky

nahoda = random.randint(0, 101)

 
Nahoru Odpovědět
20.12.2016 17:48
Avatar
Odpovídá na Oliver Solenský
Libor Šimo (libcosenior):20.12.2016 18:14

A co si pouzil z moznosti vyssie?

Nahoru Odpovědět
20.12.2016 18:14
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Libor Šimo (libcosenior)
Oliver Solenský:21.12.2016 15:51

Ahoj použil jsem tu delší možnost od Josef Kuchař - Pepa489 a použil jsem i tu kratší možnosť od hanpari

 
Nahoru Odpovědět
21.12.2016 15:51
Avatar
Libor Šimo (libcosenior):21.12.2016 18:27

Nepoznam funkciu min(), ale mozno by stacilo dosadit nahodne cislo za tvojeCislo.
Skusal si to?

Nahoru Odpovědět
21.12.2016 18:27
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Nahoru Odpovědět
21.12.2016 19:16
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Nahoru Odpovědět
21.12.2016 19:27
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.