Here the keyword to be noticed is : "register to register instruction" . Hence address refers to register set here instead of memory location and hence defined by register size .
Given register size = 480 registers
Hence number of bits needed to address these registers = ceil(log2 (number of registers))
= ceil(log2 480)
= 9
Hence in a 2 address instructions , number of bits remaining for opcode = 24 - 9 - 9 = 6 bits
Hence number of instructions = number of opcodes = 26 = 64 instructions
But given number of 2 address instructions = 48.
Hence number of unused opcodes = 64 - 48 = 16
So this opcodes along with next 9 bits of address will be used to generate one address instructions using expanded opcode technique.
Hence number of one address instructions possible = 16 * 29 [ As there are 29 combinations possible as we have taken 9 bits of address field of 2 address instruction for each of its unused opcode ]
Now for zero address instructions , let number of unused opcode = x
Then , similar to above for each opcode we have 29 combinations from the bits of the address field of the 1 address instruction.
Hence number of zero address instructions ==> x * 29 = 2048 [ Number of zero address instructions given in question ]
==> x = 4
Hence number of opcodes used in one address instructions = 16 * 29 - x = 16 * 29 - 4
= 8188
Hence number of 1 address instruction in this scenario possible = 8188