12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package com.mixsmart.utils;
- import java.util.*;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- /**
- * @author yangyj
- * @Date 2022/7/14 15:55
- * @description TODO
- */
- public class FormulaUtils {
- public static Map<String,Object> triangleSquare(Object ranges){
- Map<String,Object> map =new HashMap<>();
- if(StringUtils.isEmpty(ranges)){
- //z的默认取值范围
- ranges="(0,15)";
- }
- Matcher m = RegexUtils.matcher("[\\(||\\[](\\d*)(\\D)(\\d*)[\\)||\\]]",ranges.toString());
- m.find();
- Random rm = new Random();
- int min = StringUtils.handObj2Integer(m.group(1));
- int max = StringUtils.handObj2Integer(m.group(3));
- Integer[] r= pythagorean(min,max);
- map.put("X",String.valueOf(r[0]));
- map.put("Y",String.valueOf(r[1]));
- map.put("Z", String.valueOf(r[2]));
- return map;
- }
- /**
- * result[0]^2+result[1]^2=result[2]^2 result[] 元素均为正整数
- */
- public static Integer[] pythagorean(Integer min,Integer max){
- Integer[] result = null;
- List<Integer[]> list = new ArrayList<>();
- for(int i=1;i<=max;i++){
- for(int j=1;j<=max;j++){
- double tmp = Math.sqrt(Math.pow(i,2)+Math.pow(j,2));
- int z= (int) Math.round(tmp);
- if(min<z&&z<=max){
- Integer[] arr = new Integer[]{ i,j,z};
- list.add(arr);
- }
- }
- }
- if(ListUtils.isNotEmpty(list)){
- Random rm = new Random();
- result = list.get(rm.nextInt(list.size()));
- }
- return result;
- }
- }
|