-----------------------------------
Blue_angel00
Sat Jun 05, 2004 7:44 pm
how to generate 4 numbers without repetition
-----------------------------------
hi i'm new to this site and i haven't been doing programming for a while so i really need help.
i need to write a program to generate all the possibilities of 4 numbers from 1 to 40 in order and without repetition.
the first number has to be smaller than the second number and so on.
for example: 1,2,3,4 then next line has to be 1,2,3,5 all the way to 37,38,39,40.
if anyone knows how to write this program i would be greatly appreciated. :P
-----------------------------------
Delos
Sat Jun 05, 2004 8:06 pm
-----------------------------------
Store the generated numbers temporarily in an array.
Each time a new number is generated, check through that array to see if it is already there...if it isn't, then add the next number to it.
Otherwise, generate a new number.
-----------------------------------
Cervantes
Sat Jun 05, 2004 8:09 pm
-----------------------------------
arrays? dude, this isn't that difficullt :lol:
const max_num := 40
var counter := 0
for a : 1 .. max_num
for b : 1 .. max_num
if b > a then
for c : 1 .. max_num
if c > b then
for d : 1 .. max_num
if d > c then
counter += 1
end if
end for
end if
end for
end if
end for
end for
put counter
all logic 8)
-----------------------------------
Delos
Sat Jun 05, 2004 8:21 pm
-----------------------------------
arrays? dude, this isn't that difficullt :lol:
I really should read the posts more carefully...hehehe.
C (40, 4) works.
const maxNum : int := 40
const rowSize : int := 4
var count : int := 0
function factorial (num : real) : real
var temp : real := num
if index (realstr (temp, 0), ".") > 0 then
result - 1
end if
if temp > 169 then
result - 1
end if
var n : real := temp - 1
if temp = 0 then
result 1
else
temp := temp * factorial (n)
end if
result temp
end factorial
function comb (n : real, r : real) : real
% n choose r.
var temp : real
temp := round (factorial (n) / (factorial (n - r) * (factorial (r))))
result temp
end comb
put comb (maxNum, rowSize)
(I used the real type as opposed to ints as Turing's ints don't go all that high...)