Přeskočit na obsah

Generátor a validátor telefonních čísel - Testovací čísla pro libovolnou zemi

Generujte platná testovací telefonní čísla pro USA, Velkou Británii, Mexiko, Indii. Vytvářejte mobilní nebo pevné linky se správným formátováním. Bezplatný nástroj pro vývojáře testující validační logiku.

Generátor a validátor telefonních čísel

Kalkulačka načítání...
📚

Dokumentace

Proč záleží na generování telefonních čísel

Testování logiky ověřování telefonních čísel může být frustrující. Potřebujete realistická čísla, která odpovídají specifickým vzorům zemí, ale ruční vytváření testovacích dat je únavné a náchylné k chybám. Tento nástroj řeší tento problém generováním strukturálně platných telefonních čísel pro více zemí — včetně správných směrových čísel, mobilních předpon a formátování.

Ať už vytváříte kontaktní formulář, testujete SMS API nebo naplňujete vývojovou databázi, dostanete čísla, která odpovídají reálným formátům. Nástroj zvládá složitost mezinárodních standardů (jako E.164), přičemž udržuje rozhraní jednoduché: vyberte zemi, zvolte mobilní nebo pevnou linku a generujte.

Co tento nástroj odlišuje od generátorů náhodných číslic? Respektuje pravidla. Mexická mobilní čísla dostávají správné směrové číslo (55 pro Mexico City, 33 pro Guadalajaru). Americká čísla se vyhýbají neplatným vzorům, jako je začátek směrových čísel 0 nebo 1. Britská mobilní čísla začínají číslem 7. Tyto detaily jsou důležité, když testujete validační logiku, se kterou se uživatelé setkají v produkčním prostředí.

Jak generátor telefonních čísel funguje

Za jednoduchým rozhraním generátor aplikuje specifické pravidla země pro vytváření platných telefonních čísel:

  1. Výběr země a regionu: Zvolte cílovou zemi a region. To určuje směrové číslo — například výběr „CDMX" v Mexiku automaticky používá směrové číslo 55.

  2. Logika typů čísel: Mobilní a pevné linky následují různé vzory. Ve Spojeném království začínají mobilní čísla sedmičkou, zatímco pevné linky používají geografické kódy jako 20 pro Londýn. Nástroj aplikuje správnou předponu podle vašeho výběru.

  3. Generování náhodných číslic: Pro účastnická čísla nástroj generuje náhodné číslice v platných rozsazích. Ne všechny číslice fungují všude — americké směrové kódy nemohou začínat 0 nebo 1 a některé kódy jsou vyhrazeny pro služby.

  4. Aplikace formátu: Čísla jsou formátována podle standardů E.164 (mezinárodní) nebo místních konvencí. Mexická čísla se zobrazují jako „+52 55 1234 5678" mezinárodně nebo „55 1234 5678" místně.

  5. Validace: Každé generované číslo je zkontrolováno podle regex vzorů specifických pro danou zemi. To zachytí strukturální chyby před zobrazením čísla.

Co neuvidíte: Nástroj úmyslně vynechává tísňová čísla (jako 911), testovací rozsahy a speciální servisní kódy. To činí výstup bezpečnějším pro testovací prostředí, kde nechcete náhodou aktivovat skutečné služby.

Vzorec a algoritmy

Přestože generování telefonních čísel může vypadat jako jednoduchý náhodný proces, jeho správná implementace vyžaduje pochopení matematických omezení a vzorů, které činí telefonní čísla platnými v různých regionech.

Algoritmus generování náhodných čísel

Základní algoritmus pro generování platného telefonního čísla následuje tento vzorec:

N=C+A+P+SN = C + A + P + S

Kde:

  • NN je kompletní telefonní číslo
  • CC je kód země (volitelný pro místní formát)
  • AA je kód oblasti/regionu
  • PP je prefix (který může mít omezení podle typu čísla)
  • SS je číslo účastníka (náhodné číslice)

Validační algoritmus

Validace telefonních čísel může být vyjádřena jako operace porovnání vzoru regulárního výrazu, kterou lze matematicky reprezentovat jako:

undefined
1// Příklad JavaScriptu pro generování náhodného mexického mobilního čísla
2function generateMexicanMobileNumber(international = true) {
3  // Kód oblasti Mexico City
4  const areaCode = "55";
5  
6  // Generování 8 náhodných číslic pro číslo
7  let number = "";
8  for (let i = 0; i < 8; i++) {
9    number += Math.floor(Math.random() * 10);
10  }
11  
12  // Formátování čísla
13  const formattedNumber = `${areaCode} ${number.substring(0, 4)} ${number.substring(4, 8)}`;
14  
15  // Přidání mezinárodního kódu, pokud je požadován mezinárodní formát
16  return international ? `+52 ${formattedNumber}` : formattedNumber;
17}
18
19// Funkce pro ověření mexického telefonního čísla
20function validateMexicanPhoneNumber(number) {
21  // Vzor pro mezinárodní formát
22  const intlPattern = /^\+52 \d{2} \d{4} \d{4}$/;
23  
24  // Vzor pro místní formát
25  const localPattern = /^\d{2} \d{4} \d{4}$/;
26  
27  return intlPattern.test(number) || localPattern.test(number);
28}
29
30// Příklad použití
31const phoneNumber = generateMexicanMobileNumber();
32console.log(phoneNumber); // Příklad: +52 55 1234 5678
33console.log(`Je platné: ${validateMexicanPhoneNumber(phoneNumber)}`); // Je platné: true
34

Python

1# Příklad Pythonu pro generování a ověřování telefonního čísla
2import random
3import re
4
5def generate_us_phone_number(international=True):
6    """Generování náhodného amerického telefonního čísla."""
7    # Generování kódu oblasti (vyhnutí se kódům jako 911)
8    area_code = random.randint(200, 999)
9    
10    # Generování 7 náhodných číslic pro číslo
11    prefix = random.randint(200, 999)
12    line = random.randint(1000, 9999)
13    
14    # Formátování čísla
15    if international:
16        return f"+1 {area_code} {prefix} {line}"
17    else:
18        return f"({area_code}) {prefix}-{line}"
19        
20def validate_us_phone_number(number):
21    """Ověření, zda řetězec odpovídá vzoru amerického telefonního čísla."""
22    # Vzor pro mezinárodní formát
23    intl_pattern = r'^\+1 \d{3} \d{3} \d{4}$'
24    
25    # Vzor pro místní formát
26    local_pattern = r'^\(\d{3}\) \d{3}-\d{4}$'
27    
28    return bool(re.match(intl_pattern, number) or re.match(local_pattern, number))
29
30# Příklad použití
31phone = generate_us_phone_number()
32print(phone)  # Příklad: +1 555 123 4567
33print(f"Je platné: {validate_us_phone_number(phone)}")  # Je platné: True
34

Java

1import java.util.Random;
2import java.util.regex.Pattern;
3
4public class PhoneNumberGenerator {
5    private static final Random random = new Random();
6    
7    public static String generateUKMobileNumber(boolean international) {
8        // Britská mobilní čísla začínají '7'
9        StringBuilder number = new StringBuilder("7");
10        
11        // Generování 9 dalších náhodných číslic
12        for (int i = 0; i < 9; i++) {
13            number.append(random.nextInt(10));
14        }
15        
16        // Formátování čísla
17        String formatted = number.substring(0, 4) + " " + number.substring(4, 10);
18        
19        // Přidání mezinárodního kódu, pokud je požadován mezinárodní formát
20        return international ? "+44 " + formatted : "0" + formatted;
21    }
22    
23    public static boolean validateUKMobileNumber(String number) {
24        // Vzor pro mezinárodní formát
25        Pattern intlPattern = Pattern.compile("^\\+44 7\\d{3} \\d{6}$");
26        
27        // Vzor pro místní formát
28        Pattern localPattern = Pattern.compile("^07\\d{3} \\d{6}$");
29        
30        return intlPattern.matcher(number).matches() || 
31               localPattern.matcher(number).matches();
32    }
33    
34    public static void main(String[] args) {
35        String phoneNumber = generateUKMobileNumber(true);
36        System.out.println(phoneNumber); // Příklad: +44 7123 456789
37        System.out.println("Je platné: " + validateUKMobileNumber(phoneNumber)); // Je platné: true
38    }
39}
40

PHP

1<?php
2// Příklad PHP pro generování a ověřování indického mobilního čísla
3
4function generateIndianMobileNumber($international = true) {
5    // Indická mobilní čísla začínají 6, 7, 8 nebo 9
6    $prefixes = [6, 7, 8, 9];
7    $prefix = $prefixes[array_rand($prefixes)];
8    
9    // Generování 9 dalších náhodných číslic
10    $number = $prefix;
11    for ($i = 0; $i < 9; $i++) {
12        $number .= rand(0, 9);
13    }
14    
15    // Formátování čísla
16    $formatted = substr($number, 0, 5) . " " . substr($number, 5, 5);
17    
18    // Přidání mezinárodního kódu, pokud je požadován mezinárodní formát
19    return $international ? "+91 " . $formatted : $formatted;
20}
21
22function validateIndianMobileNumber($number) {
23    // Vzor pro mezinárodní formát
24    $intlPattern = '/^\+91 [6-9]\d{4} \d{5}$/';
25    
26    // Vzor pro místní formát
27    $localPattern = '/^[6-9]\d{4} \d{5}$/';
28    
29    return preg_match($intlPattern, $number) || preg_match($localPattern, $number);
30}
31
32// Příklad použití
33$phoneNumber = generateIndianMobileNumber();
34echo $phoneNumber . "\n"; // Příklad: +91 98765 43210
35echo "Je platné: " . (validateIndianMobileNumber($phoneNumber) ? "true" : "false") . "\n"; // Je platné: true
36?>
37

C#

1using System;
2using System.Text;
3using System.Text.RegularExpressions;
4
5public class PhoneNumberGenerator
6{
7    private static Random random = new Random();
8    
9    public static string GenerateMexicanMobileNumber(bool international = true)
10    {
11        // Kód oblasti Mexico City
12        string areaCode = "55";
13        
14        // Generování 8 náhodných číslic pro číslo
15        StringBuilder number = new StringBuilder();
16        for (int i = 0; i < 8; i++)
17        {
18            number.Append(random.Next(10));
19        }
20        
21        // Formátování čísla
22        string formattedNumber = $"{areaCode} {number.ToString(0, 4)} {number.ToString(4, 4)}";
23        
24        // Přidání mezinárodního kódu, pokud je požadován mezinárodní formát
25        return international ? $"+52 {formattedNumber}" : formattedNumber;
26    }
27    
28    public static bool ValidateMexicanPhoneNumber(string number)
29    {
30        // Vzor pro mezinárodní formát
31        Regex intlPattern = new Regex(@"^\+52 \d{2} \d{4} \d{4}$");
32        
33        // Vzor pro místní formát
34        Regex localPattern = new Regex(@"^\d{2} \d{4} \d{4}$");
35        
36        return intlPattern.IsMatch(number) || localPattern.IsMatch(number);
37    }
38    
39    public static void Main()
40    {
41        string phoneNumber = GenerateMexicanMobileNumber();
42        Console.WriteLine(phoneNumber); // Příklad: +52 55 1234 5678
43        Console.WriteLine($"Je platné: {ValidateMexicanPhoneNumber(phoneNumber)}"); // Je platné: True
44    }
45}
46

Reálné případy použití generování telefonních čísel

Testování logiky ověřování formulářů

Při vytváření registračních formulářů potřebujete ověřit, zda validace zachytí nesprávné formáty čísel, aniž by odmítla platné. Obvykle se stává: vývojáři testují jednoduché vzory jako "555-1234" nebo "123456789", které nezachytí hraniční případy.

Běžným scénářem je mezinárodní registrace uživatelů. Váš formulář může perfektně přijímat americká čísla, ale selhat u britských čísel, protože jste nepočítali s proměnlivou délkou geografických kódů. Generováním čísel specifických pro jednotlivé země můžete odhalit tyto problémy ještě předtím, než je nahlásí uživatelé.

Tip pro profesionály: Vygenerujte 50-100 čísel pro každou podporovanou zemi a proveďte je vaším validátorem. Rychle odhalíte mezery ve vašich regulárních výrazech.

Naplňování vývojových databází

Ze své zkušenosti s prací s rozsáhlými datovými sadami vím, že realistická testovací data znamenají obrovský rozdíl při odhalování chyb uživatelského rozhraní. Když má vaše tabulka zákazníků 10 000 záznamů, všechny zobrazující "555-5555", nepovšimnete si, že sloupce pro telefony nejsou dostatečně široké pro mezinárodní formát "+44 7700 123456".

Co funguje dobře: Generujte rozmanité čísla (různé země, mix mobilních a pevných linek) odpovídající vaší produkční distribuci. Pokud 70 % vašich uživatelů pochází z Mexika, vytvořte 70 % testovacích dat s mexickými čísly. Tím odhalíte problémy se zobrazením, řazením a chyby exportního formátování, které byste jinak přehlédli.

Testování integrace API

Testování SMS nebo hlasových API vyžaduje telefonní čísla, ale nemůžete použít skutečná zákaznická data ve vývoji. Poskytovatelé služeb jako Twilio nabízejí testovací čísla, ale jsou omezené. Pro komplexní testování – zejména omezení rychlosti, dávkové zpracování a zpracování chyb – potřebujete větší objem.

Častou chybou je testování pouze vlastním telefonním číslem. To nepoodhalí problémy s různými formáty nebo mezinárodními čísly. Vygenerujte sadu čísel odpovídajících vašim cílovým trhům a odhalíte chyby formátování ještě před uvedením do produkce.

Vzdělávací a demonstrační prostředí

Při školení personálu v systémech CRM nebo předvádění softwaru klientům potřebujete data, která vypadají reálně, aniž byste odhalili skutečné informace o zákaznících. Náhodná čísla jako "1234567890" vypadají falešně a podkopávají důvěryhodnost.

Co jsem shledal užitečným: Vygenerujte kompletní testovací datové sady s realistickými jmény, adresami a správně formátovanými telefonními čísly pro regiony, které předvádíte. To činí školení efektivnějším, protože se podobá tomu, co uživatelé uvidí v produkci.

Porovnání s alternativními řešeními

Knihovna Google's libphonenumber

Pro produkční validaci je Google's libphonenumber zlatým standardem. Zpracovává přes 200 zemí, validuje podle reálných dat mobilních operátorů a parsuje čísla v různých formátech. Nicméně je navržena pro validaci, ne generování.

Kdy použít libphonenumber: Když potřebujete validovat skutečný uživatelský vstup v produkci. Odhalí problémy jako neplatné směrové kódy a odpojené číselné rozsahy.

Kdy použít tento nástroj: Když potřebujete rychle vygenerovat testovací data bez nastavování knihovny. Náš nástroj generuje během sekund; integrace libphonenumber trvá hodiny.

Knihovny Faker a sady pro generování dat

Nástroje jako Faker.js nebo knihovna Faker pro Python generují telefonní čísla spolu se jmény, adresami a dalšími falešnými daty. Jsou výborné pro vytváření kompletních uživatelských profilů.

Omezení: Většina knihoven Faker generuje čísla, která vypadají platně, ale nemusí dodržovat všechna pravidla specifická pro danou zemi. Například mohou vytvořit britská čísla začínající 8 (která nejsou platné mobilní předpony).

Výhoda tohoto nástroje: Zaměřujeme se specificky na pravidla telefonních čísel a zajišťujeme, že generovaná čísla přesně dodržují vzory specifické pro danou zemi.

Testovací čísla telekomunikačních poskytovatelů

Poskytovatelé jako Twilio a Vonage nabízejí testovací telefonní čísla pro vývoj API. Jsou to skutečně fungující čísla, která neposílají zprávy ani neprovádějí hovory.

Kdy použít testovací čísla poskytovatelů: Pro komplexní testování, kde potřebujete ověřit doručení zpráv nebo dokončení hovoru.

Kdy použít tento nástroj: Pro unit testy, testování uživatelského rozhraní a naplnění databáze, kde potřebujete objem a variabilitu bez omezení API nebo nákladů.

Historie formátů a standardů telefonních čísel

Vývoj formátů a standardů telefonních čísel je úzce spojen s rozvojem telekomunikačních technologií a infrastruktury po celém světě.

Rané telefonní systémy (1870-1950)

Když byly telefonní systémy poprvé zavedeny koncem 19. století, byla telefonní čísla velmi krátká, často jen 2-4 číslice, protože každé město mělo vlastní nezávislou telefonní ústřednu. Operátoři ručně propojovali hovory fyzickým zapojováním kabelů do přepojovacích panelů.

Jak telefonní sítě rostly, čísla se stávala delšími a byly zavedeny směrové kódy. Severoamerický systém číslování (NANP) byl vytvořen v roce 1947 s cílem vytvořit jednotný systém ve Spojených státech a Kanadě, který zavedl známý formát 3-3-4 číslic (směrový kód, kód ústředny, číslo účastníka).

Vývoj mezinárodních standardů (1960-1980)

Mezinárodní telekomunikační unie (ITU), založená v roce 1865 jako Mezinárodní telegrafní unie, začala v 60. letech vyvíjet mezinárodní standardy pro telefonní číslování. To vedlo ke vzniku mezinárodních předvoleb a standardizaci mezinárodních vytáčecích postupů.

V roce 1964 ITU zavedla doporučení E.163, které stanovilo mezinárodní plán telefonního číslování. To bylo později nahrazeno doporučením E.164 v roce 1984, které zůstává současným standardem pro mezinárodní veřejné telekomunikační číslování.

Mobilní revoluce (1990-2000)

Masové rozšíření mobilních telefonů v 90. a 2000. letech vytvořilo nové výzvy pro systémy číslování. Mnoho zemí zavedlo specifické předpony nebo celé rozsahy čísel vyhrazené pro mobilní telefony. Například ve Spojeném království mobilní čísla typicky začínají '07', zatímco v Mexiku mobilní čísla zachovala stejný formát jako pevné linky, ale s odlišnými směrovými kódy.

Moderní standardy a éra VoIP (2000-současnost)

S nástupem Voice over IP (VoIP) a internetové komunikace se formáty telefonních čísel staly flexibilnějšími. Standard E.164 byl přizpůsoben, aby zahrnoval tyto nové technologie, a mnoho zemí revidovalo své plány číslování, aby vytvořilo větší kapacitu.

Zavedení přenositelnosti čísel v mnoha zemích dále setřelo rozdíl mezi mobilními a pevnými linkami, protože uživatelé nyní mohou zachovat své číslo při přechodu mezi typy služeb.

V současnosti se formáty telefonních čísel nadále vyvíjejí, přičemž některé země zvažují zrušení směrových kódů nebo integraci telefonních čísel s digitálními identitami. Základní struktura stanovená E.164 však zůstává základem globálního telekomunikačního číslování.

Často kladené dotazy

Jak vygeneruji náhodné telefonní číslo pro testování?

Vyberte cílovou zemi a region z rozbalovacích nabídek, přepněte, zda chcete formát mobilního nebo pevného telefonu, a klikněte na "Generovat telefonní číslo". Nástroj vytvoří strukturálně platné číslo podle pravidel formátování dané země. Můžete přepínat mezi mezinárodním formátem (s +kódem země) a místním formátem.

Pro testování více scénářů vygenerujte několik čísel s různými nastaveními - to pomáhá odhalit chyby validace, které se objevují pouze u specifických formátů.

Jsou to skutečná telefonní čísla, která mohou přijímat hovory nebo SMS?

Ne. Generovaná čísla dodržují správné formátovací vzory, ale jsou náhodně vytvořena a nejsou přiřazena skutečným účastníkům. Jsou navržena pro testování validační logiky, naplňování databází a demonstraci softwaru - nikoli pro skutečné telekomunikace.

Důležité: Nikdy se nepokoušejte těmito čísly volat nebo posílat SMS. Mohou patřit skutečným lidem nebo být nepřiřazena.

Jaký je rozdíl mezi mezinárodním a místním formátem telefonního čísla?

Mezinárodní formát zahrnuje kód země se znaménkem plus: +52 55 1234 5678 (Mexiko). Toto je standard E.164 používaný pro globální telekomunikace.

Místní formát ukazuje, jak byste volali v rámci dané země: 55 1234 5678 (Mexiko). Vynechává kód země, protože vnitrostátní hovory jej nevyžadují.

Při testování aplikací pro mezinárodní uživatele ověřujte oba formáty. Uživatelé zadávají čísla nekonzistentně - někteří vkládají "+1 555...", jiní píší "(555)...". Robustní validátor zvládá obojí.

Proč mají různé země různé formáty telefonních čísel?

Každá země vyvinula svůj číslovací plán nezávisle, ovlivněna velikostí populace, geografickým rozdělením a dobou, kdy vybudovaly svou telefonní infrastrukturu. USA přijaly North American Numbering Plan v roce 1947 se vzorem 3-3-4 číslic. Velká Británie používá proměnlivé geografické kódy. Indie standardizovala 10-místná mobilní čísla, aby pokryla svou obrovskou populaci.

Standard Mezinárodní telekomunikační unie E.164 poskytuje rámec, ale země jej implementují odlišně podle svých potřeb. Proto je validace telefonních čísel složitá - nelze použít jeden regex vzor pro všechny země.

Mohu použít generovaná telefonní čísla ve své produkční aplikaci?

Používejte je pouze pro vývoj a testování. Neukládejte je jako skutečná uživatelská data do produkčních databází. Zde je důvod:

  • Mohou náhodně odpovídat skutečně přiřazeným číslům
  • Neobdrží ověřovací kódy nebo hovory
  • Uživatelé budou zmateni, pokud uvidí tato čísla ve svých profilech

Pro produkční testování (jako staging prostředí) použijte místo toho vyhrazená testovací čísla od vašeho poskytovatele SMS nebo hlasových služeb.

Jak funguje validace telefonních čísel?

Validace kontroluje strukturální správnost pomocí pravidel specifických pro danou zemi:

  1. Ověření délky: Americká čísla musí mít 10 číslic, britská mobilní 10-11 číslic
  2. Kontrola předčíslí: Britská mobilní čísla začínají 7, mexická mobilní používají specifické kódy oblastí
  3. Porovnání vzoru: Regex vzory zajišťují správné seskupení a formát

Co validace nedělá: ověřit, zda je číslo aktuálně v provozu, identifikovat operátora nebo zkontrolovat, zda může přijímat zprávy. K tomu potřebujete služby jako Twilio's Lookup API nebo integraci libphonenumber.

Ukládá tento nástroj nebo uchovává mnou vygenerovaná telefonní čísla?

Ne. Veškeré generování probíhá ve vašem prohlížeči. Nic není odesláno na server ani nikde ukládáno. Když vygenerujete číslo, existuje pouze v aktuální relaci. Obnovením stránky zmizí.

To činí nástroj bezpečným pro práci s testovacími daty v zabezpečených prostředích, kde nemůžete informace odesílat externě.

Jak mohu validovat telefonní čísla ve vlastním kódu?

Příklady implementace výše ukazují vzory validace pro různé jazyky. Základní postup:

  1. Definujte regex vzory pro každou podporovanou zemi
  2. Normalizujte vstup (odstraňte mezery, závorky, pomlčky)
  3. Zkontrolujte, zda normalizované číslo odpovídá vašim vzorům
  4. Zvažte použití libphonenumber pro produkci - lépe zvládá hraniční případy než vlastní regex

Běžná chyba: Validace formátu bez normalizace vstupu. Uživatelé zadávají "+1 (555) 123-4567", "1-555-123-4567" a "15551234567" s očekáváním, že budou fungovat. Váš validátor by měl zvládat všechny varianty.

Reference

  1. Mezinárodní telekomunikační unie (ITU). „E.164: Mezinárodní veřejný telekomunikační číslovací plán." ITU

  2. Správa severní americké číslovací oblasti. „O severním americkém číslovacím plánu." NANPA

  3. Ofcom (Velká Británie). „Telefonní čísla - Národní telefonní číslovací plán." Ofcom

  4. Ministerstvo telekomunikací, vláda Indie. „Národní číslovací plán." DoT Indie

  5. Federální telekomunikační institut (Mexiko). „Národní číslovací plán." IFT Mexiko

  6. Knihovna libphonenumber od Googlu. „Analýza, formátování a ověřování telefonních čísel." GitHub Repository

  7. Světový průvodce telefonními čísly. „Mezinárodní vytáčecí kódy a informace." WTNG

Začněte generovat testovací telefonní čísla

Potřebujete platná telefonní čísla pro vaši příští testovací relaci? Vyberte si zemi, zvolte mobilní nebo pevnou linku a generujte správně formátovaná čísla, která odpovídají reálným vzorům. Nástroj zvládá složitost mezinárodních standardů a přitom udržuje rozhraní jednoduché – žádné účty, žádné API klíče, jen okamžité výsledky.

Ideální pro vývojáře testující validační logiku, týmy QA naplňující testovací prostředí nebo kohokoli, kdo potřebuje realistické příklady telefonních čísel.