Portál AbcLinuxu, 29. října 2025 23:40
Řešení dotazu:
…v shellu…
Ehm.
$ dpkg -S `type -p seq xargs printf` coreutils: /usr/bin/seq findutils: /usr/bin/xargs $Ale to je jedno, rozoberať riešenie domácej úlohy tesne pred prázdninami je blbosť.
- V otázce taky nic takového nebo podobného nevidím ...
crunch hele bude asji jakoby víc rychlejší :D ;D
crunch 8 8 0123456789abcdef
Dobrý den, potřeboval bych…
Nepotřeboval. Dostal jsi to za domácí úkol a rádoby-anonymně podvádíš.
…v shellu…
Ve kterém shellu? Aspoň tohle by se hodilo napsat.
…VŠECHNY…
FAKT VŠECHNY??? NO TOHLE!!! TAK TO BUDOU ASI ČÍSLA OD 0 DO 232, CO???
Má někdo nápad jak to udělat - popřípadě aspoň nasměrovat jakým příkazem?
Pokud to má být v Bashi, spíš než nějaký jeden „příkaz“ jsou podstatné řídicí struktury Bashe a něco vestavěného, třeba printf. Pokud by šlo o volání příkazu (ve smyslu spouštění procesu) na každé číslo z 4294967296, to by fakt trvalo setsakra dlouho. (Ne že by to netrvalo setsakra dlouho už tak!)
for ((i = 0; i <= 0xffffffff; ++i)); do printf '%08x\n' "$i"; done
Jo a kdyby ses náhodou chtěl dočkat, pak zkrátka takovou věc nedělej v shellu, nýbrž v nějakém rozumném jazyce:
#include <cstdint>
#include <iostream>
template<size_t N>
struct NumberString {
NumberString() {
for (size_t i = 0; i < N; ++i) buffer[i] = '0';
buffer[N] = '\n'; // Who cares about Shitdows?
buffer[N + 1] = '\0';
}
void printAll(size_t level = 0) {
if (level == N) {
std::cout << buffer;
} else {
char *const byte{buffer + level};
for (size_t i{0}; i < 16; ++i) {
*byte = digits[i];
printAll(level + 1);
}
}
}
private:
char buffer[N + 2];
static constexpr char digits[16]{
'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
};
constexpr size_t n_digits{8};
int main() {
NumberString<n_digits> number;
number.printAll();
return 0;
}
Tohle^^^ na mém fosilním notebooku doběhne za 4 minuty, pokud člověk netrvá na výpisu na terminál.
(Jo a kdo si myslí, že tam nacpe std::endl a bude king, ten velmi rychle zjistí, že zpomalení bude 20-násobné. (Bo automatycky flush(), řekli by v Ostravě.))
Cílem naopak je, aby mu to nepomohlo. Aby se z něj stal další neúspěšný podvodníček.
Právě proto všem takovým podvodníčkům jakože s chutí a rád „radím“ a směju se, když se nad tím ostatní durdí.
Jednoduchá otázka: Chceš, aby takový člověk s tebou jednou pracoval v týmu? Ne? Tak mu poraď! (Jinak mu budeš muset radit v době, kdy už nebudeš mít na výběr.)
Tak. Teď jsem prozradil celé tajemství.
A='{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}'
eval echo 0x$A$A$A$A$A$A
Hezčí:
A='{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}'
eval echo 0x$A$A$A$A$A$A$A$A
Jo. A pak to náležitě trvá.
toje rychlý až se jako divim :O :O
Ale hovňajs.
Má tam 6 znaků místo 8. Jo, tak to je královsky rychlé, když je to 256× rychlejší, co?
No, vlastně 341.̅3×, když se to tak vezme. To už ať si spočítá každý sám.
dva znaky rvoucí ≠ kulervoucí
Jasně, a těch šest dalších odpracuje. No jo. Tenhle „potenciál“ je skvělé využít, ale hlavně (hlavně!) tomu probůh nedávat volební právo.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.