Wszystkie możliwe kombinacje liczb


(Kamilplx360v2) #1

(Tomek Matz) #2

(Kamilplx360v2) #3

dzięki


(Tomek Matz) #4

Nie ma za co.


(Wwerewolf2) #5

A da się zmienić ten program tak, żeby stworzył wszystkie kombinacje 10 znakowe cyfr od 1 do 10 oraz liter od a do f i zapisał je w pliku txt ?

w takiej formie:

.123456789a,

.123456789b,

.123456789c,

itd...

Czy zbyt dużo tego będzie ?


(Tomek Matz) #6

W JavaScript nie można wykonywać operacji na plikach. Zapisywanie musiałoby się odbywać w VBScript, który można odpalić tylko w Internet Explorer. Ewentualnie w jakimś Action Script (flash) lub czymś takim (ale tutaj nie mam 100% pewności czy tak się da).

Litery od a-f w tym ą, ć i ę? Litery mają być tylko na końcu, czy mają być wymieszane z cyframi? Litery i cyfry mogą się powtarzać?

Jeśli na wszystkie trzy pytania odpowiedź jest tak to takich kombinacji będzie 18^10. Spora liczba.


(Wwerewolf2) #7

Bez ą, ć, ę.

Litery i cyfry mają być wymieszane... i cyfry mogą się powtarzać.


(Damgora) #8

w php

<?php

for($i = 0; $i < pow(16, 10); $i++)

    $a[$i] = '.'.sprintf('%016x', $i).",\r\n";

file_put_contents('plik.txt', $a);

?>

ale trochę tego za dużo i połączenie zapewne przekroczy czas oczekiwania przeglądarki

edit: tfu policzyłem ile to miejsca na dysku zajmie - 20TB :stuck_out_tongue: - nie ma szans tego dokonać

edit2: jednak tylko 14TB


(Wwerewolf2) #9

Znalazłem pewien skrypt php:

function generator($len=10) {

   $chrs = 'abcdef0123456789';

   $r = '';

   $slen = strlen($chrs) - 1;

   for ($i = 0; $i < $len; ++$i)

      $r.=$chrs[mt_rand(0, $slen)];

   return str_shuffle($r);

}

$filename='generated.txt';

file_put_contents($filename, PHP_EOL.generator(), FILE_APPEND);

Tylko czy on zmienia losowo czy ma jakiś algorytm ?


(Copycona) #10

Takie skrypty lepiej odpalić z linii komend (shell/cmd).

http://www.php.net/manual/pl/features.commandline.php

edit: Takie info mi się napisało, tylko na podstawie cytatu, pomijając, że w tym przypadku to praktycznie niewykonalne.


(Wwerewolf2) #11

Jesteś pewien co to wielkości tego... przecież ciężko taką przestrzeń wygenerować, a co dopiero takim kodem operować...


(Damgora) #12

16^10 możliwości

po 14 znaków na każdą (10 cyfr szesnastkowych, kropka, przecinek, \r, \n);

1 znak = 1 bajt

pomyłka 14TB


(Wwerewolf2) #13

Hmm no to lipa, bo generowanie na zasadzie brutal force w czasie rzeczywistym danej kombinacji mija się z celem, bo zajmie baaardzo dużo czasu, i nie da się operować szybko kodem.

Dzięki panowie za chęć pomocy.


(Tomek Matz) #14

Zgadza się, ale nawet dla mniejszej ilości kombinacji nie trzeba tego robić na jednym komputerze, albo raczej w jednym wątku.