How to generate a random number of n bits length?
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Mohsin Shah
am 6 Sep. 2018
Kommentiert: John D'Errico
am 18 Nov. 2020
Let's say a function takes input n as the bit length and outputs a random number. For example, for n = 4, the output range is [0 - 15] which also includes the range for n = 3 i.e. [0 - 7]. The function should generate the number in the range [8 - 15] and not in the range [0 - 15]. How to do this and how to generalize it for any n?
3 Kommentare
KALYAN ACHARJYA
am 6 Sep. 2018
Bearbeitet: KALYAN ACHARJYA
am 6 Sep. 2018
@Mohsin Check my answer, as per your requirement? If any modification required, let me know.
Akzeptierte Antwort
Guillaume
am 6 Sep. 2018
For n = 4 it should generate a number in the range [8-15]
If I understand correctly, you want a 4 bit random number with the MSB always set to 1. That sounds like a strange requirement, probably not thought properly, but this is simply equivalent to generating a 3 bit random number and tacking 1 as the MSB. The generic version of that (generating a n-1 bit number + MSB of 1) is:
n = 4
number = randi([1, 2^(n-1)]) + 2^(n-1) - 1
3 Kommentare
ANz Eisenheim
am 18 Nov. 2020
I want generate a random large sequence of bits and block the sequence. each block of data consisting of 4 bits. Can Anyone help?
John D'Errico
am 18 Nov. 2020
@ANz Eisenheim - please don't revive dead questions with a new question. If you have a new question, then ask it separately.
Regardless, what is the problem? Generate random bits as a vector. rand can do it. randi can do it. As long as the sequence is of a length that is a multiple of 4, you are done. So WTP?
Weitere Antworten (1)
KALYAN ACHARJYA
am 6 Sep. 2018
Bearbeitet: KALYAN ACHARJYA
am 6 Sep. 2018
function bit_result=rand_bits(n)
result=randi([2^(n-1), 2^n]);
bit_result=de2bi(result,n)
end
3 Kommentare
KALYAN ACHARJYA
am 6 Sep. 2018
Bearbeitet: KALYAN ACHARJYA
am 6 Sep. 2018
@Mohsin I have edited the answer, can you verify it?
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!