|
Определение на доске "четверок" ферзей
|
|||
---|---|---|---|
#18+
Есть интересная задача: построение «квадрата» ферзей на доске NxN при известных двух ферзях. В сообщениях 21156343 и 21183322 показано, что таких четверок для ФМР1 может быть много: каждый с каждым. Приведенные значения квадратов показаны только для центральных четверок. Задача: Пусть имеются значения Ax и Ay для одного ферзя и Bx и By для другого ферзя. Необходимо найти значения Cx и Cy для третьего ферзя и Dx и Dy для четвертого ферзя. Могут быть три варианта: - исходные ферзи находятся в противоположных углах квадрата; - исходные ферзи находятся на одной стороне квадрата и квадрат с одной стороны; - исходные ферзи находятся на одной стороне квадрата и квадрат с другой стороны. Если определяемые ферзи «выбегают» за доску, то их надо «возвращать»: по принципу >N и <1. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2018, 21:02 |
|
Определение на доске "четверок" ферзей
|
|||
---|---|---|---|
#18+
Допустим имеется на доске 13х13 следующее ФМР1: 11, 6,1,9,4,12,7,3,10,5,13,8,3 Необходимо построить «квадрат» ферзей для 2-го и 7-го ферзей, которые находятся в противоположных углах этого «квадрата». Напишем код: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
Получаем значения для 4-го и 5-го ферзей. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2018, 13:57 |
|
Определение на доске "четверок" ферзей
|
|||
---|---|---|---|
#18+
В предыдущем сообщении рассмотрен вариант, когда величина rk=bx-ax нечетная. Если величина rk - четная, то необходимо уточнить function KVADRAT. Теперь рассмотрим вариант, когда величина rk четная: для 2-го и 12-го ферзей. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Получаем значения для 6-го и 8-го ферзей. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2018, 20:53 |
|
Определение на доске "четверок" ферзей
|
|||
---|---|---|---|
#18+
Рассмотрим вариант, когда получаемые ферзи «выскакивают» за край доски. В частности, для 3-го и 13-го ферзей. Напишем код изменения процедуры KVADRAT: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Получаем значения для 7-го и 9-го ферзей. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2018, 07:45 |
|
Определение на доске "четверок" ферзей
|
|||
---|---|---|---|
#18+
Далее, процедура KVADRAT построена для случая, когда bx > ax. Поэтому необходимо в main добавить условие отображения по вертикали. Кроме того, не для всех «двоек» ферзей существует «квадрат» ферзей, когда эти ферзи располагаются в противоположных углах квадрата. Поэтому необходима проверка на то, что полученные значения ферзей совпадают со значениями массива F. Поэтому код для function main будет выглядеть по другому: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Теперь необходимо найти ещё два «квадрата» ферзей при условии, два исходных ферзя находятся на одной из сторон «квадрата». ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2018, 17:02 |
|
Определение на доске "четверок" ферзей
|
|||
---|---|---|---|
#18+
Теперь необходимо найти ещё два «квадрата» ферзей при условии, два исходных ферзя находятся на одной из сторон «квадрата». Имеем тот же ФМР1: 11, 6,1,9,4,12,7,3,10,5,13,8,3 Необходимо построить два «квадрата» ферзей для 2-го и 7-го ферзей, которые буду находиться на одной стороне этого «квадрата». Напишем код определения этих двух «квадратов» ферзей: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
Получаем в первом случае ферзи 8 и 3, а во втором случае - ферзи 1 и 6. В отличии от первого «квадрата» ферзей у второго и третьего «квадратов» определяемые ферзи всегда существуют в массиве F. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 07:45 |
|
Определение на доске "четверок" ферзей
|
|||
---|---|---|---|
#18+
Теперь можно построить код для определения всех возможных «четверок» ферзей в виде номеров ферзей на доске 13х13. Данные номера будут храниться в массиве MCHET(k1,4) где k1 – количество «четверок». Многие «четверки» будут совпадать друг с другом. Это пока не важно. Главное – «четверки» ферзей есть для каждой пары ферзей из ФМР1 для любой доски NxN, где есть этот ФМР1. Итак код: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
Оказывается, что при определении номеров ферзей, для формирования "четверок" ферзей, необязательно определять cy и dy. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 13:14 |
|
Определение на доске "четверок" ферзей
|
|||
---|---|---|---|
#18+
А теперь рассмотрим задачу определения «четверки» ферзей, которая при повороте совместится с установленным ферзем. Получается следующий код: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38.
Получаем новое решение R1. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2018, 08:51 |
|
Определение на доске "четверок" ферзей
|
|||
---|---|---|---|
#18+
необходимо поменять процедуру на новый вариант: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2018, 19:15 |
|
|
start [/forum/topic.php?fid=16&fpage=12&tid=1340023]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 172ms |
0 / 0 |