Карта сайта

Это автоматически сохраненная страница от 04.08.2015. Оригинал был здесь: http://2ch.hk/b/res/99064060.html
Сайт a2ch.ru не связан с авторами и содержимым страницы
жалоба / abuse: admin@a2ch.ru

Втр 04 Авг 2015 18:36:38
[OP]

Добро, Антуаны!

Пока биопроблемники обсуждают своих выдуманных тян, мне нужно срочно получить значения определённого типа рандомно.
Проблема в том что для byte, short и char система
min + (int)(random() * ((max - min) + 1))
работает, а для int и long выводит минимальное значение, почему так? У вас работает?

inb4:stackoverflow, /pr.



Втр 04 Авг 2015 18:39:39
bump


Втр 04 Авг 2015 18:40:35
bump


Втр 04 Авг 2015 18:41:22
bump


Втр 04 Авг 2015 18:42:32
>>99064060 (OP)
Тебе нужно срандомить char, byte и short чель?
Какой язык, для начала?


Втр 04 Авг 2015 18:43:21
>>99064060 (OP)
Норкоман, зачем ты целые числа выводишь мантиссой/порядком?

Втр 04 Авг 2015 18:44:36
А зачем ты к int приводишь?

Втр 04 Авг 2015 18:44:47
Я не знаю, но у меня тоже есть вопрос.
Задача:
Какое самое маленькое число делится нацело на все числа от 1 до 20?

код:
i = 1
while True:
for j in range(1, 20):
if i % j == 0:
true = True
else:
true = None
break
if true:
print(i)
break
i += 1

Проблема в том, что он нихуя не выводит. походу там откуда-то взялся бесконечный цикл.
язык питон

Втр 04 Авг 2015 18:45:15
>>99064886
бля, обосрался с табуляцией

Втр 04 Авг 2015 18:45:44
>>99064060 (OP)
ну, во-первых, инт это и есть лонг. подразумевается лонг лонг, как я понимаю.

во-вторых, что такое у тебя max и min? максимальное и минимальное значение в типе?

Втр 04 Авг 2015 18:46:25
i = 1
while True:
----for j in range(1, 20):
--------if i % j == 0:
------------true = True
--------else:
------------true = None
------------break
--------if true:
------------print(i)
------------break
----i += 1

Втр 04 Авг 2015 18:46:25
>>99064679
char, byte, short рандомит на ура
не рандомит int и long
язык java конечно жe
>>99064754
Вывожу как double кажись, вот кот.
>>99064868
Даже если к инт не приводить все равно
>>99064973
кот пикрел



Втр 04 Авг 2015 18:47:20
>>99064886
>while True
откуда же бесконечный цикл? назови булевую переменную нормально, читать невозможно же.

Втр 04 Авг 2015 18:49:22
>>99064886
Пиздец у тебя решение неэффективное. Хотя, для таких небольших чисел особого значения не имеет.
А так да, ты цикл по True делаешь

Втр 04 Авг 2015 18:49:35
>>99065039
тебе не кажется, что максимальный инт минус минимальный инт переполняет инт, потому что минус на минус дает плюс?

Втр 04 Авг 2015 18:49:36
>>99065114
вот читабельный вариант >>99065036
Там же есть брейк.
Всмысле назвать нормально?

Втр 04 Авг 2015 18:50:33
>>99065306
А как мне сделать его без True? Не могу ж я задать границы, я ж не знаю какое это число

Втр 04 Авг 2015 18:51:06
>>99065039
Хуй знает, что там в твоей джаве не так. Ебошь рандом в double и приводи результат к нужному типу.

Втр 04 Авг 2015 18:52:46
>>99065328
Брейк на внутренний цикл, а вечный while так и молотит.

Втр 04 Авг 2015 18:52:52
>>99065408
Сделай while (i>0)

Втр 04 Авг 2015 18:54:13
>>99065619
if true:
----print(i)
----break

А этот брейк разве не относится к циклу while?

Втр 04 Авг 2015 18:54:18
>>99065328
В том смысле, что глупо называть булевую переменную true.

Потом, i можно сразу поставить 20, не находишь?

И if true и то, что под ним оттабулируй на один уровень назад. Тогда все должно быть норм, наверное.

Втр 04 Авг 2015 18:54:33
>>99065408
Перемножь все простые числа от 1 до 20.

Втр 04 Авг 2015 18:54:37
>>99065408
А, ну да. Невнимательно прочитал. Но все равно неэффективно. Возможно, число слишком большое, и ты просто не дожидаешься ответа. Попробуй более быстрое решение с разложением на простые множители.

Втр 04 Авг 2015 18:54:49
>>99065627
тоже самое

Втр 04 Авг 2015 18:56:33
>>99065757
Вот и дали питонодетям отступы вместо скобок.

Втр 04 Авг 2015 18:57:24
>>99065958
Зато индусские программисты вынуждены тоже писать лесенкой

Втр 04 Авг 2015 18:57:33
>>99065788
Не решение. Например, 16 -- это 2^4, а произведение простых чисел от 1 до 20 даст число, которое на 2 только один раз поделится

Втр 04 Авг 2015 18:57:46
>>99065766
>И if true и то, что под ним оттабулируй на один уровень назад
Но тогда же if true будет не в цикле while


Втр 04 Авг 2015 18:58:55
>>99066065
Оно у тебя сейчас в форе стоит. Посмотри внимательно.

Втр 04 Авг 2015 19:00:37
>>99066170
i = 1
while True:
----for j in range(1, 20):
--------if i % j == 0:
------------true = True
--------else:
------------true = None
------------break
----if true:
--------print(i)
--------break — он разве не в цикле while?
----i += 1

Втр 04 Авг 2015 19:01:01
>>99066031
Всегда норм посоны писали с отступами на любом языке. К чему ты индусов вспомнил непонятно.

Втр 04 Авг 2015 19:01:11
>>99066170
наебался тогда я с этими тире чертовыми

Втр 04 Авг 2015 19:03:09
>>99066392
То есть у тебя >>99066338 не работает?
Сделай true = False вместо true = None тогда, не знаю.

Втр 04 Авг 2015 19:03:19
>>99066338
Ну нет же на 4 пробела назад сделай и будет тебе счастье

Втр 04 Авг 2015 19:04:24
>>99066579
С False тоже не работает

Втр 04 Авг 2015 19:04:32
>>99066370
>индусы
>норм посоны
Кому-то ведь приходится потом саппортить их код, сыщик.

Втр 04 Авг 2015 19:04:49
>>99065323
Сотни нефти тебе.


Втр 04 Авг 2015 19:05:54
>>99066595
Тогда блок if будет на ровне с циклом while

Втр 04 Авг 2015 19:06:08
>>99066046
И то верно.
Перемножать все числа от 1 до 20 с проверкой на каждой итерации делится ли текущий результат на множитель без остатка. Если да, то не умножаем на это число.

Втр 04 Авг 2015 19:08:55
>>99066723
Какие индусы-то, лол?
K&R, Страуструп тоже индусы?

Втр 04 Авг 2015 19:09:17
>>99066857
>\t
Откати только break и все

https://www.pythontutor.com/visualize.html#code=i+%3D+1%0D%0Awhile+True%3A%0D%0A++++for+j+in+range(1,+20%29%3A%0D%0A++++++++if+i+%25+j+%3D%3D+0%3A%0D%0A++++++++++++true+%3D+True%0D%0A++++++++else%3A%0D%0A++++++++++++true+%3D+None%0D%0A++++++++++++break%0D%0A++++++++if+true%3A%0D%0A++++++++++++print(i%29%0D%0A++++break+%0D%0Ai+%2B%3D+1&mode=display&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=2&rawInputLstJSON=%5B%5D&curInstr=0

Втр 04 Авг 2015 19:10:19
Что за хуйня?

мимоучукресты-кун

Втр 04 Авг 2015 19:10:45
>>99067207
И чо? Она ересь выдаст, подумай сам

Втр 04 Авг 2015 19:11:54
>>99067336
А что она должна выдавать? Ты же жаловался, что цикл бесконечный

Втр 04 Авг 2015 19:13:13
>>99067446
Ну, во-первых, не я, а оп. А во-вторых условие задачи выше в треде.

Втр 04 Авг 2015 19:14:04
>>99067299
Ну это, удачи что ли.


Втр 04 Авг 2015 19:17:35
Пиздец, наканец посчитал это ебаное число.

Втр 04 Авг 2015 19:18:23
>>99067925
Чему оно равно?

Втр 04 Авг 2015 19:18:49
>>99068002
232792560

Втр 04 Авг 2015 19:19:48
>>99068002
я конечно выбрал пиздец долгий путь. Но мне вообще ничего другого в голову не приходило. наверное я тупой

Втр 04 Авг 2015 19:25:58
За такие имена переменных как true в моем 2005 ебали в жопу,
>>99064886

Втр 04 Авг 2015 19:27:05
>>99064060 (OP)
Какой тип возвращает рандом ?
Явное приведение к int убирал ?

Втр 04 Авг 2015 19:28:11
>>99068617
не похуй ли как она называется? Программа ж тут на 11 строк

Втр 04 Авг 2015 19:28:36

Втр 04 Авг 2015 19:30:11
В java рандомайзер не требует активации ? Или указания диапазона ?

Втр 04 Авг 2015 19:30:42
>>99068807
Не умничай, пиши код правильно

Втр 04 Авг 2015 19:31:37
>>99069023
как бы ты ее назвал?

Втр 04 Авг 2015 19:31:56
>>99068040
А моя программа на Си говорит, что 2095133040

Втр 04 Авг 2015 19:32:10
>>99068978
Требует только import, проблема решена >>99066752 .

Втр 04 Авг 2015 19:32:17
>>99069110
Да хоть check.

Втр 04 Авг 2015 19:32:42
>>99069135
У тебя не правильно. Сайт с которого я беру эти задачи подтвердил, что у меня правильный ответ

Втр 04 Авг 2015 19:33:06
>>99069110
Result
Flag
A
B
isDiv

Но никак не именем предопределенного значения

Втр 04 Авг 2015 19:34:10
>>99069202
Хуйня твой сайт. Посмотри делители числа сам. https://www.numbersaplenty.com/2095133040

Втр 04 Авг 2015 19:34:23
>>99069163
но ведь true не зарезервированное слово.

Втр 04 Авг 2015 19:35:12
>>99069349
Во-первых, это так только в Питоне. Во-вторых, замени одну букву на заглавную, и оно зарезервированное. Это плохой стиль.

Втр 04 Авг 2015 19:36:05
>>99069433
деййствительно. так себе вышло

Втр 04 Авг 2015 19:36:31
>>99069318
у моего числа точно такие же делители

Втр 04 Авг 2015 19:37:26
>>99069226
Тут я с резалт проебался, в паскале подобных резалт нельзя

Втр 04 Авг 2015 19:37:48
>>99069562
А, все, согласен, отзываю наезд. Просто я изначально поставил свое i в два миллиарда, потому что мне было лень ждать. Кстати, на Си этот алгоритм работает, хоть и очень медленно. Странно, что на Питоне он циклится. Возможно просто, что твой компилятор обрывает программы, которые выполняются слишком долго.

Втр 04 Авг 2015 19:38:56
>>99069668
нет, он тоже работает, но медленно. Я просто чета заебывался ждать, а потом как-то запустил и стал смотреть другие задачки.

Втр 04 Авг 2015 19:40:16
>>99069786
Ладно, удачи тебе тогда. Я уж даже впал в ступор, чо за фигня.

Втр 04 Авг 2015 19:40:31
>>99069668
у тебя число намного больше моего. В задаче требовалось минимальное число

Втр 04 Авг 2015 19:41:14
>>99069911
удачи

Втр 04 Авг 2015 19:41:27
>>99069939
Да я уже сказал, что подставил два миллиарда, потому что думал, что будет не меньше, а алгоритм слоупочен.

Втр 04 Авг 2015 19:41:30
>>99065039
> java



Втр 04 Авг 2015 19:42:06
>>99070036
Петухи в треде, я спокоен.

Втр 04 Авг 2015 19:42:08
>>99064886
>Какое самое маленькое число делится нацело на все числа от 1 до 20?
Тут же можно факториал вывести, это и будет самое маленькое число, которое делится на все от 1 до 20
>>99066046
>а произведение простых чисел от 1 до 20
>даст число, которое на 2 только один раз
>поделится
еблан? 123*4.... там как минимум 5 раз поделиться на двойку

Втр 04 Авг 2015 19:43:36
>>99070098
Норкоман, 4 не простое число.

Втр 04 Авг 2015 19:46:05
Оп, выведи 10 шагов что выводит рандом, мах -мин, произведение значения рандома на мах-мин

Втр 04 Авг 2015 19:46:23
>>99070239
так вам простые нужны? А хуй вы простые числа вычислите, только если сами не забьёте в прогу

Втр 04 Авг 2015 19:46:45
>>99070036
Каждый раз в голос с нового экземпляра

Втр 04 Авг 2015 19:52:34
>>99070239
но в этой задаче простые числа не нужный. нужны все числа от 1 до 20

Втр 04 Авг 2015 19:53:27
[email: sage]

>>99070478
Было переполнение integer когда вычитал из max min (получалось число -1), произведение значения рандома на мах-мин соответственно было равно 0 и в итоге выводилось минимальное значение integer. Всё решилось приведением одной из констант к типу double >>99066752

Втр 04 Авг 2015 20:00:39
[email: sage]

>>99070036
Кстати, сижу на NetBeans, который может не только в Java, но и C/C++ и PHP. ОП

Втр 04 Авг 2015 20:04:04
Все соснули.

int gcd(int a, int b)
{
int c;
while(b)
{
c=a%b;
a=b;
b=c;
}
return a;
}

int main()
{
long long mas[20];
for(int i=0;i<20;i++)
mas=i+2;
for(int i=0;i<20;i++)
for(int j=0;j<20-i;j++)

mas[j]=mas[j]*mas[j+1]/gcd(mas[j],mas[j+1]);
printf("%d",mas[0]);
}

Втр 04 Авг 2015 20:11:39
[email: sage]

>>99072062
>mas=i+2
Что ты делаешь? Ведь массив уже объявлен! Ааааа!

Втр 04 Авг 2015 20:15:38
>>99072578
Ну я же говорю все соснули. И я в том числе.
Просто как-то проебался пока отступы пробелами отбивал.

int gcd(int a,int b)
{
int c;
while(b)

{

c=a%b;

a=b;

b=c;

}
return a;
}

int main()
{
int mas[20];
for(int i=0;i<20;i++)

mas=i+2;
for(int i=0;i<20;i++)

for(int j=0;j<20-i;j++)


{


int GCD=gcd(mas[j],mas[j+1]);


mas[j]=mas[j]/GCDmas[j+1]/GCDGCD;


}
printf("%d",mas[0]);
}

Избавился от long long.

Втр 04 Авг 2015 20:17:12
[email: sage]

>>99072862
Сука макаба, звёздочку сожрала.


← К списку тредов