zaporne cislo na kladne

nevite nekdo ja prevest zaporne cislo na kladne:

-895 na 895.
třeba vynásobit -1 ;)
...nebo použít absolutní hodnotu... a pod.
<?
$cislo="-1234567";
$pcislo=abs($cislo);
echo "$pcislo";
?>
Proč zrovna na Kladně? Proč ne třeba v Ostravě?

Nejlepší je záporné číslo převádět na serveru, a sice odečtením dvojnásobku čísla od čísla.
jo a třeba faktoriálem, požít řez krychlí, pštkrát to umocnit a zrcadlově zpřeházet...

abs("-115");
>> Nejlepší je záporné číslo převádět na serveru, a sice odečtením dvojnásobku čísla od čísla.

Ne takhle náhodou přičtením?
ne odectenim
(-2) - 2*(-2), jak všichni ví, dá číslo 2
-2 - 2*(-2) = -2 - (-4) = -2 + 4 = 2 (nebo 3?)
q.e.d.
nj, máš pravdu, já myslel totiž přičtením dvojnásobku toho čísla, ale kladného:

(-2) + 4 = 2
blahapet: pak máš ale problém - nejdřív potřebuješ to dané číslo nějak převést na kladné, abys to kladné mohl v dvojnásobku přičíst :-D :-D
=> čímž se blahapet zákonitě zacyklí.
dis: no když ho vynásobíš mínus dvojkou tak ani ne... protože -2*(-x)=2x
Tak doufejme, že má nějakého hlídacího psa, který ho zastaví...
MiK: to je mi novinka. To byl přece ftip.. převod záporného čísla na kladné je hlavním mottem tohoto plodného threadu :D
Ještě mě napadla metoda z oboru komplexních čísel. Tedy převést na komplexní číslo, pak na úhel a poloměr, vhodně upravit úhel a převést zpět...
A ještě jedna možnost - vzít substr, zjistit, zda první znak je mínus a pokud ano, tak to číslo o ten jeden znak oříznout ;)
A nebo hard core řešení:
zjistit reprezentaci čísla, vzít jeho n byte a vyrobit tyhle byte AND 01111... tím se shodí první bit, který se používá na znaménko... Ale tuším, že v php bych s tím neuspěl...
dis: ok...

BTW: krinda pana to je zpusobu, ale napadl me jeste jeden a snad tu neni nikde pred tim:
co tak to cislo umocnit na druhou a pak to na druhou odmocnit.... :)
skill!
anebo si na to napsat vlastní funkci

function zaporne_cele_na_cele_kladne($zaporne) {
for($kladne = $zaporne; $zaporne + $kladne <= 0; $kladne++);
return $kladne;
}

snad je to správně :)
Hehe, ale co, když to bude reálné číslo?
tak to bude horší... :) Možná ho nejprv zaokrouhlit, desetiny stejně potřebuje málokdo :)
Ještě mě napadlo jiné řešení:

$moje_cislo = 3;
$cnt = 0;
while ( $hledane_cislo != -$moje_cislo ) {
$hledane_cislo = rand(-32768, 32767);
$cnt++;
}

echo "hledane cislo je $hledane_cislo, nalezeno na $cnt pokus.";

akrorat to funguje taky jenom pro celá čísla... zkousim to....
První pokus s číslem -3 nevyšel. Kleklo mi to na CGI timeout (mam php pod IIS)
MzM: tyjo, tak to je zatím nejvíce cool řešení, co jsem tu viděl :D
Tak na to koukám a napadá mě, že bych mohl pomocí MzM PhP vyřešit zajímavý programátorský problém. A sice mám v nějaké proměnné uloženo nějaké číslo. A nyní bych nutně potřeboval další proměnnou, kde by bylo totéž číslo. Dlouhá léta začátečník tápe, kde ji vzít a nyní se mu nabízí řešení!

$moje_cislo = 3;
$cnt = 0;
while ( $hledane_cislo != $moje_cislo ) {
$hledane_cislo = rand(-32768, 32767);
$cnt++;
}

echo('Našla se další proměnná, která obsahuje stejné číslo!');

Důsledky tohoto objevu jsou jasné: snadné kopírování dat a rychlá implementace.