• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Niepowtarzające się liczby

Object Storage Arubacloud
0 głosów
862 wizyt
pytanie zadane 29 lipca 2019 w C# przez Marcin Skarżyński Użytkownik (540 p.)
otwarte ponownie 29 października 2019 przez Marcin Skarżyński

Cześć mam problem z napisaniem programu. Chodzi mi o to że chcę aby mój program wyświetlał liczy nie powtarzające się. Jak na obrazku poniżej 

Mój kod :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace apka
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> m1 = new List<int>();
            int x;
            int a;
            Console.WriteLine("Podaj ilość cyfr w liczbie");
            x = Convert.ToInt32(Console.ReadLine());
            int zmienna_one = x * x;
            int[] tab = { 1, 2 };
            for (int i = 1; i <= zmienna_one; i++)
            {
                for (int s = 1; s <= x; s++)
                {
                    int m = 0, licznik=0;
                        Random zmienna = new Random();
                         a = tab[zmienna.Next(tab.Length)];
                   
                  




                        Console.Write(a);
                    
                }
                Console.WriteLine();
                
            }
            Console.ReadKey(false);
        }
        

    }
}

 

komentarz 30 lipca 2019 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
Opisz jeszcze szerzej co chcesz osiagnać

4 odpowiedzi

0 głosów
odpowiedź 29 lipca 2019 przez Olidaen Nowicjusz (180 p.)
Deklaracje zmiennej Random powinieneś zrobić poza pętlami.

Jeśli dobrze zrozumiałem, to chcesz wyświetlać wszystkie kombinacje liczb 1 i 2 w zależności od podanej ilości cyfr na wejściu? To raczej kłóci się z używaniem randomowych licz
komentarz 30 lipca 2019 przez Marcin Skarżyński Użytkownik (540 p.)
Tak dokładnie, a jak to dokładnie zrobić aby się to nie powtarzało.
0 głosów
odpowiedź 8 sierpnia 2019 przez Marcin Rasta Pawłows Użytkownik (600 p.)

Twój kod powinien wyglądać tak

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
  class Program
  {
	 static void Main(string[] args)
	 {
		Random zmienna = new Random();
		List<int> m1 = new List<int>();
		int x;
		int a;
		Console.WriteLine("Podaj ilość cyfr w liczbie");
		x = Convert.ToInt32(Console.ReadLine());
		int zmienna_one = x * x;
		int[] tab = { 1, 2 };
		for (int i = 1; i <= zmienna_one; i++)
		{
		  for (int s = 1; s <= x; s++)
		  {
			 int m = 0, licznik = 0;
			 a = tab[zmienna.Next(tab.Length)];

			 Console.Write(a);

		  }
		  Console.WriteLine();

		}
		Console.ReadKey(false);
	 }
	 
  }
}

Inicjowanie obiektu zmienna klasy Random powinno być umieszczone poza pętlą 

komentarz 10 sierpnia 2019 przez Marcin Skarżyński Użytkownik (540 p.)
Prawie ci się udało bo liczby się powtarzają ale nie tak często, ale dzięki ;).
komentarz 10 sierpnia 2019 przez Marcin Skarżyński Użytkownik (540 p.)

O to mi chodzi tylko żeby było tak zawsze.

0 głosów
odpowiedź 11 sierpnia 2019 przez Marcin Rasta Pawłows Użytkownik (600 p.)

Ok  tu nie powinny się powtarzać 

 


using System;
using System.Collections.Generic;

namespace ConsoleApp1
{
  class Program
  {

	 static void Main(string[] args)
	 {
		int IloscCyfreWLiczbe;
		List<string> ListaCyfr = new List<string>();
		Console.WriteLine("Podaj ilość cyfr w liczbie");
		IloscCyfreWLiczbe = Convert.ToInt32(Console.ReadLine());
		Random zmienna = new Random();

		for (int i = 0; i < 1000; i++)
		{
		  string Liczba = "";
		  for (int b = 0; b < IloscCyfreWLiczbe; b++)
		  {
			 Liczba += zmienna.Next(1, 3).ToString();
		  }
		  ListaCyfr.Add(Liczba);
		}

		foreach (var item in OdrzucLiczbyPowtarzajaceSie(ListaCyfr))
		{
		  Console.WriteLine(item);
		}

		Console.ReadKey(false);
	 }


	 
	 static List<string> OdrzucLiczbyPowtarzajaceSie(List<string>ListaDoSprawdzenia)
	 {
		List<string> ListaDoWyświetlenia = new List<string>();
		bool CzySiePowtarza = false;
		foreach (var item in ListaDoSprawdzenia)
		{
		  for (int i = 0; i < ListaDoWyświetlenia.Count; i++)
		  {
			 if(item == ListaDoWyświetlenia[i])
			 {
				CzySiePowtarza = true;
			 }
		  }
		  if(CzySiePowtarza==false)
		  {
			 ListaDoWyświetlenia.Add(item);
		  }
		}
		return ListaDoWyświetlenia;
	 }

  }
}

 

0 głosów
odpowiedź 11 sierpnia 2019 przez Aisekai Nałogowiec (42,190 p.)

Kod napisany w Javie, ale niewiele się różni od C# więc spokojnie będziesz wstanie go zrozumieć:

Wersja rekurencyjna: 

public void printCombinations(int[] numbers, int length){
        for(int number : numbers){
            helper("" + number, numbers, length);
        }
    }

    private void helper(String result, int[] numbers, int length){
        if(result.length() == length){
            System.out.println(result);
        }else{
            for(int number : numbers){
                helper(result + number, numbers, length);
            }
        }
    }

Wersja iteracyjna:

public void printCombinations(int[] numbers, int length){
        List<String> combinations = new ArrayList<>();
        for(int number : numbers) combinations.add(number + "");

        while(!combinations.isEmpty()){
            String result = combinations.get(0);
            if(result.length() < length){
                for(int number : numbers) combinations.add(result + number);
            }else{
                System.out.println(result);
            }
            combinations.remove(result);
        }
    }

Jeżeli czegoś nie zrozumiesz, to powiedz.

komentarz 18 sierpnia 2019 przez Marcin Skarżyński Użytkownik (540 p.)
Mógłbyś mi wysłać cały kod tego

Podobne pytania

0 głosów
2 odpowiedzi 250 wizyt
pytanie zadane 25 marca 2016 w Java przez Dieet Nowicjusz (180 p.)
0 głosów
0 odpowiedzi 227 wizyt
0 głosów
1 odpowiedź 129 wizyt

92,579 zapytań

141,432 odpowiedzi

319,663 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...