-
Notifications
You must be signed in to change notification settings - Fork 0
/
loto.sh
50 lines (43 loc) · 1.13 KB
/
loto.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/bash
#$ sed -i 's/\r//' meu_script.sh
MAX_NUM=25
N_NUMBERS=15
numbers=()
# Gera os números aleatórios
for i in $(seq 1 $MAX_NUM); do
numbers+=("$i")
done
for i in $(seq 0 $((N_NUMBERS - 1))); do
randomIndex=$((RANDOM % (MAX_NUM - i) + i))
temp=${numbers[i]}
numbers[i]=${numbers[randomIndex]}
numbers[randomIndex]=$temp
done
# Mostra os números aleatórios
echo -n "Os $N_NUMBERS números aleatórios gerados são: "
for i in $(seq 0 $((N_NUMBERS - 1))); do
echo -n "${numbers[i]} "
done
echo ""
# Ordena os números por inserção
for i in $(seq 0 $((N_NUMBERS - 1))); do
current=${numbers[i]}
j=$((i - 1))
while [ $j -ge 0 ] && [ ${numbers[j]} -gt $current ]; do
numbers[$((j+1))]=${numbers[j]}
j=$((j-1))
done
numbers[$((j+1))]=$current
done
# Mostra os números ordenados
echo -n "Os números gerados e ordenados são: "
for i in $(seq 0 $((N_NUMBERS - 1))); do
printf "%02d " "${numbers[i]}"
done
echo ""
# Mostra os números ausentes
echo -n "Os números AUSENTES são: "
for i in $(seq $N_NUMBERS $((MAX_NUM - 1))); do
printf "%02d " "${numbers[i]}"
done
echo ""