|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Подбор делимого и делителя так, чтобы частное было целым числом
Есть небольшая программка с примерами по математики - сложение, вычитание, деление, умножение ... так вот, чтобы не было дробного числа при делении, нужно подобрать такие числа, чтобы при делении получалось только целое число... я попытался написать что то вроде такого:
программка выбирает действие и дальше по switch: for (var i:int = 0; i < sizeW; i++) { for (var j:int = 0; j < sizeH; j++) { ..... case "/": var arr:Array = simpleDivide(); if (arr != null) { fd = arr[0]; sd = arr[1]; aswr = arr[2]; } break; ..... } } private function simpleDivide():Array { var fd = int( lowValue + ( Math.random() * ( highValue - lowValue + 1 ) )); var sd = int( lowValue + ( Math.random() * ( highValue - lowValue + 1 ) )); if (fd < sd) { sd = fd - int( 1 + ( Math.random() * ( 5 - 1 + 1 ) )); if (sd <= 0) { sd = 1; } } var aswr:* = fd / sd; if( ( aswr% 1.0 ) == 0 ) { return [fd, sd, aswr]; }else { return null; } } Подскажите как быть?
__________________
Не стыдно спросить, стыдно не знать ! |
|
|||||
Регистрация: Sep 2005
Сообщений: 950
|
Делал что то подобное и применил вот такой подход
|
|
|||||
Modus ponens
|
Ну как бы это фундаментальная теорема о том, что все числа состоят из уникального набора простых множителей. А то, что вы наблюдаете - это ее следствие. Т.е. два разных взаимно-простых числа больших двойки по определению нельзя разделить друг на друга так, чтобы получилось целое число...
Я бы пошел от обратного: брал бы какое-то число и уможал его на два случайно выбранных числа, в таком случае изначально выбранное число и было бы ответом. Т.е. var x:int = Math.sqrt(Math.random() * int.MAX_VALUE); var multiplierA:int = Math.sqrt(Math.random() * int.MAX_VALUE); var multiplierB:int = Math.sqrt(Math.random() * int.MAX_VALUE); return [x * multiplierA, x * multiplierB]; Ой, я думал речь идет о нахождении числа, которое делит два других. Ну так а если просто нужно найти любые X, Y, такие чтобы X / Y - целое, то достаточно:
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 12.11.2012 в 19:09. |
Часовой пояс GMT +4, время: 10:20. |
|
« Предыдущая тема | Следующая тема » |
|
|