A véletlenszámok és a halmaz adattípus használatára mutatok példát. Az ismétlés elkerülésére halmazban tároljuk a kihúzott számokat (a gyakorlatban nem kell végtelen ciklusra számítanunk, bár az elvi lehetőség fennáll), majd rendezett listává alakítjuk. Az utolsó sor csak a kiírás eleganciáját szolgálja, ugyanis az elválasztó string használatához a lista elemeit is stringgé kell alakítanunk.
import random
hány_számból = 90
hány_számot = 5
random.seed() #Inicializálás
halmaz=set()
while len(halmaz)<hány_számot:
halmaz.add (random.randint(1,hány_számból))
számlista = sorted(list(halmaz)) #Tárolás további felhasználásra
print("A heti lottószámok: ", ", ".join(str(szám) for szám in számlista))
#Ennél egyszerűbben kiírathatnánk a print(számlista) utasítással,
#csak ottmaradna a szögletes zárójel.
Skandináv lottó
import random ;hány_számból = 35 ;hány_számot = 7; számlista=0
random.seed() ; halmaz=set()
while len(halmaz)<hány_számot:
halmaz.add (random.randint(1,hány_számból))
számlista = sorted(list(halmaz))
print (számlista)
Algoritmusa
Véletlen csomag meghívás
Változók deklarálása a, b
Véletlenszám generáló, halmaz
feltétel amíg a halmaz hossza kisebb mint b
addig adjon hozzá a halmazhoz véletlen egész számot 1-35 között
Tehát
A modul egyik utasítása a randint, ami véletlenszerű egész számot ad vissza,
import paranccsal meghívjuk a modult
import random
véletlenszám = random.randint(1, 7)
print(véletlenszám)
-------------------------
C-Sharpban
using System;
using System.Linq;
using System.Collections.Generic;
public class Program
{
public static Random random;
public static void Main()
{
random = new Random((int)DateTime.Now.Ticks);
var lottoNumbers = Enumerable.Range(1, 52).ToList();
int[] SelectedNumbers = new int[6];
for (var i = 0; i < 6; i++)
{
var number = GetNumber(lottoNumbers.ToArray());
while (SelectedNumbers.Contains(number))
{
number = GetNumber(lottoNumbers.ToArray());
}
SelectedNumbers[i] = number;
}
Console.WriteLine("Lotto Numbers: " + string.Join(" ", SelectedNumbers.OrderBy(n => n)));
}
//Removes numbers from the array until only one is left, and returns it
public static int GetNumber(int[] arr)
{
if (arr.Length > 1)
{
//Remove random number from array
var r = random.Next(0, arr.Length);
var list = arr.ToList();
list.RemoveAt(r);
return GetNumber(list.ToArray());
}
return arr[0];
}
}
----------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Basic_Lottery
class Program
static void Main(string[] args)
int[] Lottery = new int[6];
int[] Guessing = new int[6];
Random r = new Random();
for (int i = 0; i < Lottery.Length; i++)
Lottery[i] = r.Next(1, 50);
Array.Sort(Lottery);
for (int i = 0; i < Guessing.Length; i++)
Console.Write((i + 1) + ". Enter Your Numbers: ");
Guessing[i] = int.Parse(Console.ReadLine());
Console.WriteLine("Drawing Result");
for (int i = 0; i < Lottery.Length; i++)
Console.WriteLine(Lottery[i]);
for (int j = 0; j < Guessing.Length; j++)
if (Lottery[i] == Guessing[j])
RightGuess++;
Console.WriteLine("Numbers you have selected right: " + RightGuess);
Console.ReadLine();
Online compiler:
https://www.programiz.com/python-programming/online-compiler/
https://www.tutorialspoint.com/compile_csharp_online.php
https://www.youtube.com/watch?v=7JYdaCUDRFk
http://www.edutech.hu/jegyzet/programozas/c-sharp/CSharp_segedlet.pdf
Nincsenek megjegyzések:
Megjegyzés küldése