2017-02-01 3 views
1

Привет им пытается случайные 8 цифр числа 0-7, но without the 8 and 9 это то, что я сделал, но я не могу исключающее 8 and 9JavaScript случайного 8digits в spesific числа

var b = Math.floor(Math.random()*90000000) + 10000000; 

console.log(b) 

есть ли быстро для случайных точных 8 цифр исключить номер? или я действительно должен случайным один за другим и += до 8 цифр?

+1

Да, НУ Последнее утверждение - ваше решение. Почему вы не хотите этого делать? – Amy

+0

@ Ами, может, я подумал, что есть быстрый, кажется, нет –

+0

Вы можете сгенерировать гораздо большее число, преобразовать в строку, заменить «8» и «9», а затем усечь до 8 цифр. Но я подозреваю, что генерировать каждую цифру в цикле было бы проще. –

ответ

-1

Может быть, вы хотите что-то более, как это:

var b = Math.floor(Math.random()*8); 

console.log(b); 
4

Преобразовать в восьмеричное (который содержит только цифры 0-7) и обрезать до нужной длины:

b.toString(8).substr(0, 8) 
2

Вы можете получить сначала максимальное число восьмеричной системы с 8 местами и использовать десятичную систему для генерации случайного значения и преобразовать ее обратно в желаемую систему.

var max = parseInt(100000000, 8); 
 

 
console.log(('0000000' + Math.floor(Math.random() * max).toString(8)).slice(-8));

+0

В первый раз, когда я попробовал ваш код, он вернул 7-значное число. –

+0

@ScottMarcus Он может даже вернуть одну цифру, если 'Math.random' возвращает' 0'. –

+0

@ibrahimmahrir Ну, это было действительно мое мнение. ОП заявила, что результат должен быть 8 цифр. –

0

Вам нужен номер 8 цифр в базе 8. Это означает, что вы ищете (десятичное) число между 8^7 и 8^8-1, преобразуется в 8. основание Это должно сделать трюк:

// initialize min and max values 
 
var vmin = Math.pow(8,7); 
 
var vmax = Math.pow(8,8)-1; 
 
// compute random number within range 
 
var dec = Math.floor(Math.random()*(vmax-vmin))+vmin; 
 
// convert to base 8 
 
console.log(dec.toString(8));

 Смежные вопросы

  • Нет связанных вопросов^_^