모듈 토크:수학
Module talk| 이것은 수학 모듈의 개선 사항을 논의하기 위한 대화 페이지입니다. |
| 위키프로젝트 수학 | (등급 템플릿 클래스) | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
이 모듈은 관련 수학적 연산 및 숫자 형식 지정 작업 모음을 구현합니다.
참고 항목
보통의
이 편집 요청에 응답했습니다.설정 answered=또는 ans=요청을 다시 활성화하려면 매개 변수를 no로 지정합니다. |
평균 함수를 추가하면 유용할 수 있습니다.
--[average 평균 사용량 찾기: {{#invoke:산술 평균 값1 값2...또는 {{#invoke:산술 평균 }} 인수 없이 사용하면 상위 프레임에서 입력을 가져옵니다.참고로 숫자로 평가되지 않는 모든 값은 무시됩니다.] 함수 z.average(프레임) 로컬 인수 = frame.args; args[1] == 0인 경우 로컬 상위 = frame:getParent(); args = parent.args; 끝 로컬 합계 = 0; 로컬 카운트 = 0; 로컬 i = 1; 반면 args[i] ~ = nil do local val = z입니다._cleanNumber(프레임, args[i]); val ~ = nill이면 sum = sum + val count = count + 1 end i == i + 1; 종료 반환(count = 0 및 0 또는 sum/count) 끝 --DixonD (talk) 23:17, 2013년 3월 23일 (UTC) [
난수의
하나의 인수로만 임의로 호출하면 스크립트 오류가 반환됩니다.시드 인수도 포함하여 샌드박스에서 수정하려고 노력했습니다. --Vriullop (대화) 12:37, 2013년 3월 31일 (UTC)
임의의 번호를 호출하는 매개 변수는 무엇입니까?{{#invoke}:수학 난수 seed}개인데 난수를 알려주지 않는 것 같습니다.기술 13 (대화) 15:59, 2013년 7월 3일 (UTC) [
어떤 매개 변수가 테스트되었습니까?WT101 (채팅 • 카운트) 2013년 7월 6일 18:23 (UTC) 회신 [
GCD
이 편집 요청에 응답했습니다.설정 answered=또는 ans=요청을 다시 활성화하려면 매개 변수를 no로 지정합니다. |
GCD 기능은 현재로서는 상당히 제한적인 {gcd}을(를) 대체하는 것이 좋습니다.vi의 경우:Moddun:Math, 나는 확장 유클리드 알고리즘 #Pseudocode를 Lua에 보고했는데, 이 섹션에서 언급된 에지 케이스를 설명합니다.
--[=[ gcd 확장된 유클리드 알고리즘에 따라 최대 공약수 []를 계산합니다. ]=] 기능. z.gcd(틀) 현지의 논병아리 = 틀.논병아리 한다면 논병아리[1] == 영의 그리고나서 현지의 부모 = 틀:상위 항목 가져오기() 논병아리 = 부모.논병아리 끝. 현지의 a = z._cleanNumber(틀, 논병아리[1]) 현지의 b = z._cleanNumber(틀, 논병아리[2]) 한다면 것은 아니다. a 또는 것은 아니다. b 그리고나서 돌아가다 끝. 현지의 s = 0 현지의 노인들 = 1 현지의 t = 1 현지의 늙은이 = 0 현지의 r = b 현지의 연장자 = a 하는 동안에 r ~= 0 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다 현지의 상당의 = 수학.플로어(연장자 / r) 연장자, r = r, 연장자 - 상당의 * r 노인들, s = s, 노인들 - 상당의 * s 늙은이, t = t, 늙은이 - 상당의 * t 끝. mw.로그.("베즈아웃 계수:", 노인들, 늙은이) mw.로그.("가장 위대한 공통점:", 연장자) mw.로그.("GCD에 의한 수량:", t, s) 한다면 a == 0 그리고. b < 0 또는 b == 0 그리고. a < 0 그리고나서 연장자 = 연장자 * -1 끝. 돌아가다 연장자 끝. 이 분야에 대해 특별히 잘 알지는 못하지만, Template:에 있는 것과 같은 몇 가지 샘플 입력에 대해 기능을 테스트했습니다.Gcd, 그리고 그것은 올바른 결과를 산출하는 것 같습니다.이 기능을 더 잘 쓰는 방법을 아는 사람이 있다면, 저는 귀를 기울입니다.
민 응우옌 (대화, 기여) 2013년 11월 26일 23:00 (UTC) [
- 제안한 코드 감사합니다.:) 저는 몇 가지를 주목했습니다. 첫째, 가장 큰 공통분모에 관심이 있다면 s, old, t 및 oldt를 계산에 사용되지 않기 때문에 제거할 수 있습니다.둘째, 만약 당신이
{{#invoke math gcd -8 0}}정답은 8번입니다.이것은 저에게 직관에 어긋나는 것처럼 보이지만, 그렇다면 저는 여기에 어떤 관습이 있는지 정말로 확신할 수 없습니다.이번 업데이트와 더불어 다른 템플릿과 다른 Lua 모듈에서 호출될 때 모듈이 잘 작동하도록 약간의 TLC가 필요하다고 생각합니다.샌드박스 작업을 시작했지만 일본어 입력 방식과 관련된 Vim의 버그로 인해 변경 사항이 모두 사라졌습니다.Bah . :( 내일 다시 시도해 보겠습니다.이 모듈은 100만 개 이상의 결론을 가지고 있기 때문에, 우리는 그것이 제대로 작동하는지 확인하기 위해 시간을 들여 테스트해야 할 것입니다. 그래서 저는 이 요청을 일단 답변으로 표시했습니다.스트라디바리우스 씨, 2013년 12월 2일 13:24 (UTC) [
테스트 사례
이 편집 요청에 응답했습니다.설정 answered=또는 ans=요청을 다시 활성화하려면 매개 변수를 no로 지정합니다. |
모듈을 추가했습니다.수학/테스트 사례 및 Module_talk:수학/테스트 사례 및 현재 버전의 모듈에는 몇 가지 버그가 있습니다.수학. 커먼즈에서 수정된 버전을 복사하십시오.모듈:Math. --Jarect (토크) 18:38, 2013년 12월 3일 (UTC) [
- 스트라디바리우스 씨가 이 요청을 검토할 수 있을까요?마틴 (MSGJ · talk) 12:59, 2013년 12월 4일 (UTC) [
- 물론이죠, 내일 한번 볼게요.아마도 위의 요청과 동시에 수행되어야 할 것이며, 제 개선 사항도 함께 포함되었으면 좋겠습니다. 그래서 코드를 작성하는 데 한두 시간 정도 걸릴 것입니다.Stradivarius♪ talk ♪ 씨, 2013년 12월 4일 14:26 (UTC) [
- 업데이트: 샌드박스의 코드가 완료되어야 하며, 모든 유닛 테스트를 통과하고 있습니다.하지만 저는 아직 업데이트하지 않았습니다. 왜냐하면 제가 꽤 많은 것을 변경했기 때문이고 #invoke를 통해 수행된 오래된 작업이 아니라 모든 것이 제대로 작동하는지 확인하기 위해 더 많은 유닛 테스트를 작성하고 싶기 때문입니다.스트라디바리우스♪ talk ♪ 씨, 2013년 12월 8일 14:04, (UTC) [
- 다른 업데이트:저는 순수한 Lua 기능에 대한 새로운 테스트 사례의 피드백을 기반으로 몇 가지 수정을 가했고, 모든 것이 거의 준비가 된 것처럼 보입니다.이 작업을 시작하기 전에 가능한 한 보조 기능을 테스트하기 위한 테스트 사례를 몇 가지 더 작성해야 할 것 같습니다.저는 또한 gcd에 대한 질문에 대해 0과 음수 값에 대한 다른 사람들의 의견을 듣고 싶습니다.0과 -8의 최대 공약수는 무엇이어야 합니까? 8, 또는 -8?확실히는 잘 모르겠어요.Stradivarius♪ talk ♪ 씨, 2013년 12월 12일 03:38, UTC [
- 개인적으로, 저는 그것이 중요하다고 생각하지 않습니다.나눗셈으로 정렬된 자연수(0 포함)의 격자에서 gcd는 만남이며, 내가 아는 한, 그것이 가장 자연스러운 정의입니다.(예를 들어) 8과 -8이 서로를 나누지만 동일하지 않기 때문에 음수를 넣으면 격자가 더 이상 없습니다(따라서 분할은 부분 순서가 아니라 사전 순서입니다).하지만 명백한 등가 관계에 의해 변조되면 격자는 다시 돌아오게 됩니다. 지금은 8과 -8이 같은 노드입니다.
- 따라서, 당신의 애플리케이션이 8인지 -8인지에 민감하다면, gcd의 정의에 대해 걱정하기보다는, 당신의 애플리케이션을 수정할 필요가 있습니다. --Trovatore (talk) 04:08, 2013년 12월 12일 (UTC)
- 저는 자연스럽게 해야 할 일은 정수가 아닌 양의 정수 설정에서 일하는 것이라는 트로바토레의 말에 동의합니다.그러나 그 다음으로 자연스러운 것은 gcd(0, -8) = 8(그리고 유사하게 gcd(-4, -8) = 4 등)을 정의하여 gcd를 적용하면 항상 양의 값을 얻을 수 있습니다(정의되지 않은 gcd(0, 0 제외).--JBL (talk) 2013년 12월 12일 04:38 UTC 답변 [
- 사실 저는 자연수(음이 아닌 정수)를 말했습니다. --Trovatore (talk) 05:12, 2013년 12월 12일 (UTC)[
- 아, 그리고 저는 gcd(0,0)가 정의되지 않은 것에 대해 동의하지 않습니다. 아래를 참조하십시오. --Trovatore (대화) 05:48, 2013년 12월 12일 (UTC)[
- 문제는 정수의 gcd가 부호까지만 정의된다는 것입니다.gcd(0, x) = x always, gcd(0, x) = -x always 또는 gcd(0, x) = x always를 선택하거나 부호를 임의로 할당할 수도 있습니다.수학적으로, 그들은 동등합니다.즉, 입력에 관계없이 gcd가 양수가 되도록 강제하는 것은 아마도 옳은 일이지만, 수학적인 이유가 아닌 계산적인 이유 때문입니다.예를 들어, 두 숫자가 동일범임을 검정하려면 gcd가 1 또는 -1이 아니라 1임을 검정하는 것이 가장 쉽습니다.후자를 해야 한다는 것은 저에게 실수하기 쉽다는 인상을 줍니다.Ozob (talk) 05:01, 2013년 12월 12일 (UTC) [
- (편집 충돌) (오조브의 답변을 보기 전에 작성) 두 분 모두 답변에 감사드립니다 - 많은 도움이 됩니다.양의 정수를 제외한 다른 것을 다루는 것이 무의미하다면, 우리가 취할 수 있는 두 가지 기본적인 접근법이 있습니다.첫째, 사용자가 양의 정수가 아닌 다른 것을 입력하려고 하면 오류가 발생할 수 있습니다.이는 오류가 즉시 발견될 수 있고 gcd에 의존하는 다른 Lua 함수로 전달되어 복잡해지지 않는다는 장점이 있습니다. 또한 0, 분수 및 음수와 관련된 에지 사례를 정확하게 처리하는 방법에 대해 걱정할 필요가 없습니다.
둘째, 음수, 0 및 분수를 입력할 때 사용자가 의미하는 바에 대해 가장 잘 추측할 수 있습니다. 이것은 입력 번호를 가장 가까운 정수로 반올림한 다음 함수가 음수를 출력할 경우 부호를 양수로 변환하는 것을 포함합니다.이렇게 하면 기사에서 큰 빨간색 텍스트가 보일 가능성을 줄일 수 있고, 다른 Lua 함수가 출력 유형을 확인할 필요 없이 gcd 기능을 사용할 수 있다는 장점이 있습니다.하지만, 우리는 여전히 gcd(0,0)로 무엇을 할지 결정해야 할 것입니다. (아마도 우리는 a를 출력할 수 있을 것입니다.
nil다른 Lua 모듈에 대한 값과 #invoke에 대한 빈 문자열.)저는 이 두 가지 방법 중 하나를 구현하는 것이 좋으니, 당신이 다른 방법보다 선호한다면 알려주시기 바랍니다.Stradivarius 씨, 2013년 12월 12일 05:09 (UTC)
- 0은 정말 문제가 없습니다.제 생각에는 gcd(0,0)=0을 설정하는 것은 완벽하게 괜찮습니다. 제가 설명한 격자에서 0과 0의 만남입니다.0/0은 정의되지 않았기 때문에 0을 0으로 나눈다는 것을 싫어하는 작가들이 있습니다.제 생각에 그건 좀 어리석은 일입니다. 왜냐하면 "k 나누기 n"은 "n은 정수 곱하기 k"만큼 "n/k는 정수이다"를 의미하지 않기 때문입니다. 그리고 확실히 0은 정수 곱하기 0입니다.따라서 gcd(0,0)=0을 반환하도록 설정하면 일부 작성자의 사용법에는 이견이 있겠지만, 이로 인해 발생할 실질적인 문제는 상상할 수 없습니다. --Trovatore (talk) 05:41, 2013년 12월 12일 (UTC)
- (편집 충돌) (오조브의 답변을 보기 전에 작성) 두 분 모두 답변에 감사드립니다 - 많은 도움이 됩니다.양의 정수를 제외한 다른 것을 다루는 것이 무의미하다면, 우리가 취할 수 있는 두 가지 기본적인 접근법이 있습니다.첫째, 사용자가 양의 정수가 아닌 다른 것을 입력하려고 하면 오류가 발생할 수 있습니다.이는 오류가 즉시 발견될 수 있고 gcd에 의존하는 다른 Lua 함수로 전달되어 복잡해지지 않는다는 장점이 있습니다. 또한 0, 분수 및 음수와 관련된 에지 사례를 정확하게 처리하는 방법에 대해 걱정할 필요가 없습니다.
- 다른 업데이트:저는 순수한 Lua 기능에 대한 새로운 테스트 사례의 피드백을 기반으로 몇 가지 수정을 가했고, 모든 것이 거의 준비가 된 것처럼 보입니다.이 작업을 시작하기 전에 가능한 한 보조 기능을 테스트하기 위한 테스트 사례를 몇 가지 더 작성해야 할 것 같습니다.저는 또한 gcd에 대한 질문에 대해 0과 음수 값에 대한 다른 사람들의 의견을 듣고 싶습니다.0과 -8의 최대 공약수는 무엇이어야 합니까? 8, 또는 -8?확실히는 잘 모르겠어요.Stradivarius♪ talk ♪ 씨, 2013년 12월 12일 03:38, UTC [
- 업데이트: 샌드박스의 코드가 완료되어야 하며, 모든 유닛 테스트를 통과하고 있습니다.하지만 저는 아직 업데이트하지 않았습니다. 왜냐하면 제가 꽤 많은 것을 변경했기 때문이고 #invoke를 통해 수행된 오래된 작업이 아니라 모든 것이 제대로 작동하는지 확인하기 위해 더 많은 유닛 테스트를 작성하고 싶기 때문입니다.스트라디바리우스♪ talk ♪ 씨, 2013년 12월 8일 14:04, (UTC) [
- 물론이죠, 내일 한번 볼게요.아마도 위의 요청과 동시에 수행되어야 할 것이며, 제 개선 사항도 함께 포함되었으면 좋겠습니다. 그래서 코드를 작성하는 데 한두 시간 정도 걸릴 것입니다.Stradivarius♪ talk ♪ 씨, 2013년 12월 4일 14:26 (UTC) [
- 음의 숫자의 gcds가 어떻게 되든 개인적으로는 관심이 없지만 x 모드(양의 y에 대해)가 음의 값인지 여부와 관계없이 항상 [0,y–1] 간격의 정수를 반환하도록 부탁드립니다.C/C++/Java는 이것을 틀리고, Python은 그것을 바로 잡았고, Python은 당신이 본받아야 할 사람입니다.—David Eppstein (대화) 06:18, 2013년 12월 12일 (UTC) [
- 그것은 매우 좋을 것입니다, 네. --Trovatore (대화) 06:27, 2013년 12월 12일 (UTC) [
- 모듈에는 모드 기능이 없습니다.수학, 왜냐하면 Lua는 이미 % 연산자와 수학 라이브러리를 가지고 있고, 일반적인 위키 페이지는
mod#expr 파서 함수에 대한 연산자(도움말:계산).하지만 저는 그것들이 당신이 원하는 행동을 가지고 있는지 모르겠습니다.Stradivarius♪ talk ♪ 씨, 2013년 12월 12일 06:39 (UTC) [- 네, 감사합니다.루아는 모듈로를 정확하게 이해하는 언어 중 하나로 보입니다.—David Eppstein (대화) 2013년 12월 12일 08:45 (UTC) [
- 사실 bugzilla:6068의 후기 게시물을 보면 위키텍스트를 위해 정상적인 모듈로 기능이 필요해 보여서 모듈에 모드 기능을 추가했습니다.와 함께 사용할 수 있습니다.
{{#invoke:math/sandbox mod x y}}당신은 그것을 테스트하고 그것이 예상대로 작동하는지 검증할 수 있습니까?Stradivarius♪ talk ♪ 씨, 2013년 12월 12일 09:28 (UTC) [
- 사실 bugzilla:6068의 후기 게시물을 보면 위키텍스트를 위해 정상적인 모듈로 기능이 필요해 보여서 모듈에 모드 기능을 추가했습니다.와 함께 사용할 수 있습니다.
- 네, 감사합니다.루아는 모듈로를 정확하게 이해하는 언어 중 하나로 보입니다.—David Eppstein (대화) 2013년 12월 12일 08:45 (UTC) [
- 모듈에는 모드 기능이 없습니다.수학, 왜냐하면 Lua는 이미 % 연산자와 수학 라이브러리를 가지고 있고, 일반적인 위키 페이지는
- 그것은 매우 좋을 것입니다, 네. --Trovatore (대화) 06:27, 2013년 12월 12일 (UTC) [
- 참고 - 현재 편집 요청을 사용 불가능으로 설정했습니다.우리가 모듈에 기능을 추가하는 것에 대해 이야기하고 있다면, 요청하기에는 너무 이른 것 같습니다.(하지만 앞으로 며칠 안에 구축할 준비가 되었으면 합니다.) - Stradivarius♪ talk ♪ 씨, 2013년 12월 12일(UTC) :31[Reply
저는 위키백과 강연에서 제기된 질문 때문에 여기에 왔습니다.위키프로젝트 수학.위에서 언급한 바와 같이, 모듈로 작동을 위한 최상의 선택은 [0, b-1] 구간에서 모듈 b를 선택하는 것입니다.이는 (b=0, a<0) 또는 (b<0, b가 a를 나눈 경우를 제외하고 gcd(a, b)가 음이 아님을 의미합니다.분수를 단순화하려면 r과 s가 코프림이고 이러한 최종 값에 대한 a/b = ±t/s이기 때문에 r과 s의 최종 값이 필요합니다.a와 b가 양수이면 +bt = 0이기 때문에 a/b = -t/s가 더 정확합니다.그러나 어떤 것이 음수인지 확인하려면 부호를 검사하거나 반복 횟수의 패리티를 추적해야 합니다.a 또는 b가 음수이면 고려해야 할 몇 가지 경우가 있으며, 입력 부호를 테스트하는 것부터 시작하여 마지막에 부호를 조정하기 위해 a 및 b로 계산을 시작하는 것이 더 안전하고 비용이 많이 들지 않는다고 생각합니다.D.Lazard (대화) 13:28, 2013년 12월 12일 (UTC) [
- 토론을 옆으로 미루기 위해서가 아니라, 또 다른 좋은 점이 생각납니다.때때로 gcd 알고리즘에서 원하는 것은 최대 공약수가 아니라 베주트의 항등식입니다.ax + by = g를 풀려고 합니다.이러한 알고리즘은 일반적으로 확장 GCD 알고리즘이라고 합니다.예를 들어 모듈식 산술에서 역을 계산하려는 경우 유용합니다.확장 GCD 알고리즘을 코딩하는 것은 일반 GCD 알고리즘을 코딩하는 것과 사실상 동일하지만 일부 추가 출력(두 계수)을 추적해야 합니다.오조브 (대화) 14:15, 2013년 12월 12일 (UTC) [
- 자세히 보니, 원래 제안된 코드가 바로 이것을 계산하는 것 같습니다.일반 gcd(gcd만 반환)와 확장 gcd(Bézout의 동일성 계수를 반환)의 두 가지 함수를 갖는 것이 좋은 생각일 수 있습니다.오조브 (대화) 14:19, 2013년 12월 12일 (UTC) [
- 저는 최근에 파이썬에서 이러한 기능이 필요했습니다.Python 표준 라이브러리 gcd는 부호를 확인하지 않으며 입력 중 하나가 음수이면 음수를 반환할 수 있습니다.일부 숫자 이론 텍스트는 gcd를 양의 값으로 정의하며(gcd(0,0) 제외), imo는 몇 줄의 추가 코드를 실행하는 비용을 들여도 좋은 프로그래밍 관행입니다. 프로그램은 고유하게 정의된 결과를 반환해야 합니다.Python 문서는 출력을 고유하게 정의하지만 정의는 다소 복잡합니다.)확장 유클리드 알고리즘이라고 하는 베주트의 항등식 계수를 계산할 때, 대부분의 버전은 해를 계산하지만 가능한 많은 해 중 어떤 해가 반환되는지에 대해서는 진술하지 않습니다.솔루션은 추가적인 불평등이 부과되면 고유하게 정의되지만 코드 몇 줄을 더 실행하는 비용으로 다시 정의됩니다. --RDBury (대화) 16:31, 2013년 12월 12일 (UTC)
- 이것은 확장 유클리드 알고리즘에서 논의됩니다.양의 입력을 사용하여 확장 유클리드 알고리듬은 양의 GCD와 + bt = gcd(a,b) ≥ 0, s < b/gcd(a,b) 및 t < a/gcd(a,b)와 같은 두 쌍의 베주트 계수 중 하나를 생성합니다.모듈러 역에 대해 권장되는 대로 >0을 원한다면 모듈러 역에 대해 확장 유클리드 알고리즘에 주어진 유사 코드에서와 같이 코드의 한 줄이 더 필요합니다.만약 입력이 필요한 긍정적이지 않다면, 결과는 아마도 동일할 것이지만, (확장 유클리드 알고리즘의 이 부분을 쓸 때), 나는 그것을 확인하고 크누스가 그의 책에서 이것을 논의했는지 확인하기가 너무 게을렀습니다(그는 아마도, 적어도 연습에서).D.Lazard (대화) 17:49, 2013년 12월 12일 (UTC) [
- 그나저나, 나는 두 가지 다른 버전에 대한 Osob의 제안을 따릅니다: 하나는 gcd 단독(계산하지 않고, 하나는 연속된 계수도 계산하지 않음)과 Bézout의 동일성(오래된 것과 오래된 것의 마지막 값도 계산함). 그러나 분수를 단순화하기 위해 세 번째 버전을 추가합니다(s의 마지막 값을 사용함).그리고 마지막에 긍정적인 분모를 갖기 위한 약간의 튜닝) D.라자드 (대화) 2013년 12월 12일 18:04 (UTC) [
- 나는 확장 유클리드 알고리즘에 "분수의 단순화" 섹션을 추가했습니다.D.Lazard (대화) 19:26, 2013년 12월 12일 (UTC) [
- @D.Lazard: 두 개 이상의 숫자의 경우 베즈아웃 계수와 몫을 반환하는 것이 말이 됩니까?저는 gcd(a, b, c) = gcd(gcd(a, b, c)를 수행하여 두 개 이상의 숫자의 gcd를 계산할 수 있다는 것을 알고 있습니다. 하지만 이것이 베즈아웃 계수와 계수에 어떻게 작용할지는 잘 모르겠습니다.Stradivarius씨♪ talk ♪ 02:35, 2013년 12월 13일 (UTC) [
- 말이 되는군요.gcd(a, b, c) = gcd(gcd(a, b, c)처럼 재귀적으로 진행됩니다.먼저 sa + tb = g, 여기서 g = gcd(a, b)와 같은 s를 찾습니다.그런 다음 ug + vc = h, 여기서 h = gcd(g, c)가 되도록 u와 v를 찾습니다.대체하면 u(sa + tb) + vc = h가 표시됩니다. 여기서 (us)a + (ut)b + vc = h, sus, ut 및 v는 베즈아웃 계수입니다.오조브 (대화) 14:36, 2013년 12월 13일 (UTC) [
- 이 방법을 사용하면 확실히 일부 베즈아웃 계수를 얻을 수 있습니다.그러나 (예를 들어 gcd(gcd(a, c), b)를 계산하여) 다항식의 순서를 변경하면 이 두 계열의 베즈아웃 계수 사이의 관계에 대한 정보나 이들 계열과 "최소" 베즈아웃 계수 사이의 관계에 대한 정보 없이 서로 다른 베즈아웃 계수를 얻을 수 있습니다.저는 이러한 일반화된 베즈아웃 계수의 적용을 전혀 모릅니다.어디가 문제인지 설명해 보겠습니다.베즈아웃 계수는 ax + ... 방정식의11 해입니다.+axkk = gcd.필드 위의 방정식의 경우와 마찬가지로, 이 방정식의 해는 특정 해와 오른쪽 사이드 멤버가 없는 방정식의 일반 해의 합입니다.k=2일 경우, 우측 부재 ax+by=0이 없는 방정식의 해는 (ub/gcd(a,b), ua/gcd(a,b))이며, 여기서 u는 임의의 정수입니다.즉, 그들은 1차원의 자유 아벨 군을 형성합니다.만약 k>2라면, 해는 또한 자유 아벨 군을 형성하지만, 그 차원은 k-1입니다.따라서 흥미로운 문제는 이 그룹의 기초를 찾는 것입니다.이 작업은 Smith 일반 형식 알고리즘으로 수행할 수 있지만 이 스레드의 주제는 아닙니다.D.Lazard (talk) 2013년 12월 13일 16:02 (UTC) [
- 동의합니다만, 이것이 이 코드와 관련이 있는지 잘 모르겠습니다.올바른 논리적 설정은 다음과1 같습니다. 정수k a, ..., a 및 -1을 자유 그룹 Z의k+1 요소 v로 배열합니다.그러면 v에 수직인 Z의 하위k+1 격자는 가능한 모든 베즈아웃 계수의 집합입니다.이 하위 격자에 대한 근거(어떤 근거)를 찾는 것과 "좋은" 근거(즉, 계산상 편리함)를 찾는 것 모두가 흥미로운 문제입니다.첫 번째는 말씀하신 대로 Smith normal 형식으로 해결할 수 있고, 두 번째는 LLL 형식으로 해결할 수 있습니다.이 두 가지 모두 이 모듈의 범위를 벗어납니다.그러나 위에서 제시한 구성을 사용하여 단일 선택 베즈아웃 계수를 찾는 것은 간단합니다.어떤 애플리케이션이 있을지는 모르겠지만, 적어도 계산하기는 쉽습니다.
- @스트라디바리우스 씨:저는 당신의 질문에 대한 올바른 대답이 "네, 하지만 좋은 생각은 아닙니다."라고 생각합니다.오조브 (대화) 2013년 12월 14일 03:11 (UTC) [
- 이 방법을 사용하면 확실히 일부 베즈아웃 계수를 얻을 수 있습니다.그러나 (예를 들어 gcd(gcd(a, c), b)를 계산하여) 다항식의 순서를 변경하면 이 두 계열의 베즈아웃 계수 사이의 관계에 대한 정보나 이들 계열과 "최소" 베즈아웃 계수 사이의 관계에 대한 정보 없이 서로 다른 베즈아웃 계수를 얻을 수 있습니다.저는 이러한 일반화된 베즈아웃 계수의 적용을 전혀 모릅니다.어디가 문제인지 설명해 보겠습니다.베즈아웃 계수는 ax + ... 방정식의11 해입니다.+axkk = gcd.필드 위의 방정식의 경우와 마찬가지로, 이 방정식의 해는 특정 해와 오른쪽 사이드 멤버가 없는 방정식의 일반 해의 합입니다.k=2일 경우, 우측 부재 ax+by=0이 없는 방정식의 해는 (ub/gcd(a,b), ua/gcd(a,b))이며, 여기서 u는 임의의 정수입니다.즉, 그들은 1차원의 자유 아벨 군을 형성합니다.만약 k>2라면, 해는 또한 자유 아벨 군을 형성하지만, 그 차원은 k-1입니다.따라서 흥미로운 문제는 이 그룹의 기초를 찾는 것입니다.이 작업은 Smith 일반 형식 알고리즘으로 수행할 수 있지만 이 스레드의 주제는 아닙니다.D.Lazard (talk) 2013년 12월 13일 16:02 (UTC) [
- 말이 되는군요.gcd(a, b, c) = gcd(gcd(a, b, c)처럼 재귀적으로 진행됩니다.먼저 sa + tb = g, 여기서 g = gcd(a, b)와 같은 s를 찾습니다.그런 다음 ug + vc = h, 여기서 h = gcd(g, c)가 되도록 u와 v를 찾습니다.대체하면 u(sa + tb) + vc = h가 표시됩니다. 여기서 (us)a + (ut)b + vc = h, sus, ut 및 v는 베즈아웃 계수입니다.오조브 (대화) 14:36, 2013년 12월 13일 (UTC) [
- @D.Lazard: 두 개 이상의 숫자의 경우 베즈아웃 계수와 몫을 반환하는 것이 말이 됩니까?저는 gcd(a, b, c) = gcd(gcd(a, b, c)를 수행하여 두 개 이상의 숫자의 gcd를 계산할 수 있다는 것을 알고 있습니다. 하지만 이것이 베즈아웃 계수와 계수에 어떻게 작용할지는 잘 모르겠습니다.Stradivarius씨♪ talk ♪ 02:35, 2013년 12월 13일 (UTC) [
- 저는 최근에 파이썬에서 이러한 기능이 필요했습니다.Python 표준 라이브러리 gcd는 부호를 확인하지 않으며 입력 중 하나가 음수이면 음수를 반환할 수 있습니다.일부 숫자 이론 텍스트는 gcd를 양의 값으로 정의하며(gcd(0,0) 제외), imo는 몇 줄의 추가 코드를 실행하는 비용을 들여도 좋은 프로그래밍 관행입니다. 프로그램은 고유하게 정의된 결과를 반환해야 합니다.Python 문서는 출력을 고유하게 정의하지만 정의는 다소 복잡합니다.)확장 유클리드 알고리즘이라고 하는 베주트의 항등식 계수를 계산할 때, 대부분의 버전은 해를 계산하지만 가능한 많은 해 중 어떤 해가 반환되는지에 대해서는 진술하지 않습니다.솔루션은 추가적인 불평등이 부과되면 고유하게 정의되지만 코드 몇 줄을 더 실행하는 비용으로 다시 정의됩니다. --RDBury (대화) 16:31, 2013년 12월 12일 (UTC)
위에 mod(%)에 대한 언급이 있었는데, 제가 작업 중인 모듈에서 이상한 이유를 발견했기 때문에 공유하려고 했습니다.저는 고장이 나지 않는지 확인하기 위해 매우 큰 입력을 사용하여 테스트를 하고 있었는데 다음과 같은 이유로 버그가 발생했습니다.Lua는 5250000000000001200000000% 3을 68719476736으로 평가합니다!그것은 그것이 계산하기 때문입니다.
a % b == a - math.floor(a/b)*b
그리고 그것은 결국 계산으로 끝납니다.
525000000000000120000000000 - 525000000000000060000000000
와 함께68719476736결과적으로—부동점 분해능 한계를 초과하지 않습니다.Johnuniq (talk) 23:37, 2013년 12월 17일 (UTC) [
- 흠, 우리도 모듈과 비슷한 문제가 있었습니다.무작위 - 여기서 해결 방법을 참조하십시오.그러나 귀하가 설명한 문제에 대한 좋은 해결 방법이 있는지, 또는 이를 어떻게 구현할지는 잘 모르겠습니다.스트라디바리우스♪ talk ♪ 씨, 2013년 12월 17일 23:49 (UTC) [
- 좋은 방법은 아니지만, 제가 한 일은 다음과 같습니다.
x = value % scaleif not (0 <= x and x < scale) then x = 0 end
- Johnuniq (talk) 00:23, 2013년 12월 18일 (UTC) 응답
- 그럴 줄 알았어요.저는 2^53 이상의 정수를 다룰 때 상황이 매우 까다로워진다고 들었습니다.저는 당신의 해킹을 구현했고, 샌드박스에서 모듈을 업데이트했습니다.이것은 우리가 이제 모드 기능을 사용할 수 있다는 것을 의미하며, 민 응우옌, 그것은 당신이 이제 마침내 gcd 기능에 접근할 수 있다는 것을 의미합니다.:) 꼭 필요한 설명서도 추가했습니다. 제가 잘못했거나 놓친 부분이 있으면 수정해 주십시오.Stradivarius씨♪ talk ♪ 02:18, 2013년 12월 18일 (UTC) [
- 큰 난수를 생성하기 위해 논의된 솔루션과 여기서 필요한 솔루션의 종류는 모두 큰 정수 산술이 필요하다는 공통점을 가지고 있습니다.이 모든 것은 큰 숫자가 기계 단어 배열로 표시된다는 것을 의미합니다.추가는 운반체가 적절하게 전파되면서 단어별로 수행됩니다.곱셈도 비슷합니다.신호도 있어야 합니다.큰 정수를 사용하는 산술은 일반적으로 프로그래밍 언어에 내장되어 있지 않기 때문에 일반 산술보다 덜 편리하지만, 그렇지 않으면 동일합니다.특히 큰 정수 라이브러리를 사용하면 모드 작업을 정확하게 수행하고 큰 난수를 계산하는 등의 작업이 가능합니다.오조브 (대화) 02:34, 2013년 12월 18일 (UTC) [
- 그럴 줄 알았어요.저는 2^53 이상의 정수를 다룰 때 상황이 매우 까다로워진다고 들었습니다.저는 당신의 해킹을 구현했고, 샌드박스에서 모듈을 업데이트했습니다.이것은 우리가 이제 모드 기능을 사용할 수 있다는 것을 의미하며, 민 응우옌, 그것은 당신이 이제 마침내 gcd 기능에 접근할 수 있다는 것을 의미합니다.:) 꼭 필요한 설명서도 추가했습니다. 제가 잘못했거나 놓친 부분이 있으면 수정해 주십시오.Stradivarius씨♪ talk ♪ 02:18, 2013년 12월 18일 (UTC) [
- 좋은 방법은 아니지만, 제가 한 일은 다음과 같습니다.
큰 정수
모듈이 업데이트되고 가능한 새로운 기능이나 업데이트에 대해 이야기하고 있으므로, 새로운 섹션을 시작하면 좋겠다고 생각했습니다.매우 큰 숫자를 다루는 것은 이 모듈뿐만 아니라 Lua의 모든 산술 연산에 문제가 있기 때문에 이것을 별도의 모듈로 구현하는 것이 가장 좋을 것 같습니다.또한, 저는 이미 같은 일을 하는 루아 코드인 BigNum을 찾았습니다.하지만 스크리분토로 포팅하는 것이 얼마나 쉬울지는 아직 확실하지 않고, 어디에서도 라이선스를 찾을 수 없어서 아예 사용하지 못할 수도 있습니다.하지만 이 기능이 있는 다른 라이브러리가 있을 수도 있습니다. 찾으시면 알려주십시오.Stradivarius♪ talk ♪ 씨, 2013년 12월 18일 02:45 (UTC) [
2014년 4월 8일에 보호된 편집 요청
이 편집 요청에 응답했습니다.설정 answered=또는 ans=요청을 다시 활성화하려면 매개 변수를 no로 지정합니다. |
"frame:preprocess('{#expr: ' ... number_string ..)"를 변경하십시오.'}')'에서 "frame:callParserFunction('#expr', number_string)"으로 변경합니다.Jackmcbarn (대화) 2014년 4월 8일 23:08 답변 [
완료 - Stradivarius♪ talk ♪ 씨, 2014년 4월 11일 03:32 (UTC)
2014년 6월 20일에 보호된 편집 요청
이 편집 요청에 응답했습니다.설정 answered=또는 ans=요청을 다시 활성화하려면 매개 변수를 no로 지정합니다. |
이러한 변경을 수행하십시오.Jackmcbarn (talk) 02:21, 2014년 6월 20일 (UTC) [
완료 - Stradivarius♪ talk ♪ 씨, 2014년 6월 20일 02:47 (UTC) [
_mod 문서
모듈이 다음과 같을 수:Math#mod 문서에 다음과 같은 오류가 있습니다.mm._round저는 그 기능을 기대할 수 있었습니다.mm._mod사용할 수 있습니다(공개되는 동안 다른 곳에서는 문서화되지 않음).나는 계산을 확인하거나 비교하지 않았습니다.mm._round바로 안에 있을 수도 있습니다. - 드피프 (대화) 11:43, 2014년 7월 2일 (UTC) [
- 오 이런, 제가 마지막으로 /doc 페이지를 편집했을 때부터 그랬을 거예요 - 그리고 그건 오래 전 일이에요.고정. — Stradivarius♪ talk ♪ 씨, 2014년 7월 2일 13:29 (UTC)
추가 가능성
이 편집 요청에 응답했습니다.설정 answered=또는 ans=요청을 다시 활성화하려면 매개 변수를 no로 지정합니다. |
의도된 말장난은 아니다.템플릿을 변환했습니다.더 효율적인 모듈 외에도 다른 모든 수학 함수를 처리하는 이 모듈과 함께 그룹화하는 것이 효과적일 수 있다고 생각했습니다. moluɯ 20:45, 2014년 7월 2일 (UTC)
완료되지 않았습니다. 먼저 모듈의 샌드박스를 변경하십시오. WP:TESTCASE를 참조하십시오.Jackmcbarn (대화) 20:47, 2014년 7월 2일 (UTC) 응답 - 이 템플릿이 어떻게 작동하는지 정확하게 이해하지 못한 채 기본적인 루아를 이해한다고 말하는 것은 이상합니다.Lua에 능숙한 관리자가 간단한 기능을 변환해주길 바랐지만, 일단 모듈에 통합해 보겠습니다. moluɯ 20:53, 2014년 7월 2일 (UTC) [응답
모드 오류
모드는 다음과 같이 사용합니다.
- {{#math:math mod 123.61}} → 0.599999999999999
- {{#math:math mod 345.61}} → 0.600000000002
- (충돌 편집)이것은 FP 정밀 오차처럼 보이는데, 계산 방법에 따라 나눗셈을 한 다음 뺄셈을 함으로써 증폭됩니다.매뉴얼 섹션 2.5.1을 참조하십시오.예를 들어 라운드를 사용하여 제거할 수 있습니다.
- {{#based:mathround {{#based:math mod 123.61}} 5} → 0.6
- 예상 결과는 소수점 종료이므로 이 경우에만 작동하지만, 2015년wordsdeeds 5월 22일 (UTC) :12 응답[
- 당신은 내가 연구하고 사용하기를 원합니다.
round서브? (그런 오류가 있는지 어떻게 알 수 있습니까?)확실히 FP로 인한 것입니다.나의 원인은 믿을 수 없기 때문입니다.mod그래서 그것은 쓸모가 없습니다.누군가가 다음과 같이 덧붙일 것으로 예상합니다.mod_correct-DePiep (talk) 23:38, 2015년 5월 22일 (UTC) [- 그렇지 않으면 어떻게 작동할지 상상하기 어렵습니다.모드, 즉 %는 종종 이론적으로 정확한 정수 결과를 제공하는 정수에 대해 정의됩니다.그러나 Lua의 버전은 그렇게 작동하지 않으며 정수가 아닌 입력이 있는 당신의 예에서는 작동하지 않을 것입니다.그래서 정확하지 않은 FP 수학(실제로는 두 배의 정밀도)을 사용해야 합니다.정확하게 이해되지 않은 방식으로, 예상 출력이 소수점 이하인 경우 라운드 사용과 같은 쉬운 해결 방법이 있습니다.즉, 가능한 모든 입력에 대해 작동하는 '올바른' 버전의 모드를 제공할 수 없습니다. --John Blackburnewordsdeeds 23:51, 2015년 5월 22일 (UTC)
- 당신은 내가 연구하고 사용하기를 원합니다.
아뇨, 그건 제 의도가 아니었어요.저는 단지 당신의 예를 '수정'하는 제 '수정'이 임의의 입력으로 더 일반적으로 사용될 수 없다는 것을 지적한 것입니다.아무도 이것에 대해 잘못이 없습니다. 단지 수학이 어떻게 작동하는지에 대한 것입니다. --John Blackburnewordsdeeds 01:43, 2015년 5월 23일 (UTC)
- 드피프, 당신의 사용 사례는 무엇입니까?부동 소수점 산술은 특정 규칙을 따르고 컴퓨터 관점에서는 의미가 있지만 인간 관점에서는 종종 이상하게 보입니다.다른 사람들이 말했듯이, 부동소수점 산술을 완전히 포기하는 것을 제외하고는 완전히 일반적인 해결책은 없지만, 많은 특정 용도에서 해결책을 찾는 것이 가능합니다.예를 들어, 입력이 종료 소수점으로 미리 알려진 경우 반올림은 일반적으로 인간 디스플레이 기대치를 복원할 수 있습니다.사용 사례는 무엇입니까?드래곤즈 비행 (토크) 2015년 5월 23일 01:52, 2015년 5월 23일 (UTC) [
- 저는 여기에 잘 정의된 수학적 연산이 있다고 생각합니다.그룹 R/αZ의 원소는 [0,α]에서 실수로 표시됩니다.그러나 일반적으로 표현을 결정하는 것은 계산적으로 불가능합니다. 어렵지는 않지만 무한한 메모리가 필요할 수 있습니다.위의 예들은 잘못된 것이 없다고 생각합니다. 부동소수점 숫자는 유한한 정밀도를 가지고 있고, 그것들을 사용한 계산은 자연스럽게 약간의 오류를 가지고 있습니다.Ozob (대화) 03:59, 2015년 5월 23일 (UTC) [
- 저의 원인은 FP 오류가 필요하지 않기 때문입니다.더욱 강력합니다. FP는 전혀 필요하지 않습니다.모드 작업을 보는 사람은 누구나 결과를 볼 수 있습니다.제가 이걸 확인하지 않았다면요?re Ozob: "일반적으로, 표현이 계산적으로 불가능하다는 것을 결정하는 것은" - 저는 받아들이기를 거부합니다, 그것은 단지 당신이 '계산적'이 ~1980년의 상태로 제한된다고 가정하기 때문입니다.Donald Knuth는 그때까지 컴퓨터가 처리할 수 있어야 한다고 언급했습니다.
7/9정확하게(저의 새로운 생각, 그리고 아이디어를 만들어 내는 것:mod_better세 번째 매개 변수가 있어야 합니다.precision등). - 드피프 (대화) 2015년 5월 23일 21:30, UTC- 부동소수점에 대해 읽어보기 크리스찬75 (토크) 21:51, 2015년 5월 23일 (UTC)
- 입력 중 하나가 123.6이면 FP 산술이 필요합니다.정수인 1을 반복적으로 빼서 계산할 수 있지만 FP 숫자에서 1을 빼면 FP 산술을 하게 됩니다.정수 연산(Lua에는 없는 옵션)을 사용하는 경우 모든 입력을 정수로 변환해야 하므로 123 또는 124는 분명히 오답을 제공합니다.그것을 보고 결과를 보는 것은 적어도 그것이 효과적으로 'frac' 연산을 하기 때문에 컴퓨팅에서 일반적인 연산인 FP 숫자의 분수 부분을 추출합니다.결과가 어떻게 되어야 하는지가 명백하다는 것을 깨닫기만 하면. --John Blackburnewordsdeeds 21:59, 2015년 5월 23일 (UTC)
- 입력 중 하나가 123.6이면 FP 연산이 필요합니다. 아니요, 필요 없습니다.저는 숫자를 보고 정신적으로 할 수 있습니다.저는 문자열 처리 기능으로 할 수 있습니다. 문자만 잘라내면 됩니다.제 요점 1은 FP가 불필요하게 도입되고 FP 자체가 문제를 일으킨다는 것입니다.요점-2는 당신들이 계속해서 나에게 그것은 그렇지 않으면 할 수 없다고 말하고 있다는 것입니다. -DePiep (대화) 22:07, 2015년 5월 23일 UTC []
- Lua 함수는 부동소수점 함수를 사용하며(그 문제에 대해서는 파서 함수 #expr), 많은 경우 기본 식을 입력으로 허용합니다.만약 여러분이 정확한 수학 공식을 사용하고 싶다면, 여러분은 물론 자유롭게 그렇게 할 수 있습니다. 여러분은 아마도 그것을 손으로 하거나 그것을 위한 여러분만의 함수를 쓸 필요가 있을 것입니다.정확한 수학을 사용하려는 경우 다른 에지 사례 집합을 얻을 수 있습니다. 예를 들어, 분수, 상수 및 기타 식을 나타내는 방법을 선택합니다. 예를 들어 {{#computer:math mod 11/31} = 0.66666667 또는 {{#computer:math mode^pi 1}} = 0.14069262779입니다.두 가지 모두 여기서 잘린 소수이지만 합리적인 근사치를 제공합니다.개인적으로, 저는 {{#basic:math mod 345.61}} → 0.6000000002도 합리적인 근사치라고 생각합니다. 물론 동의하지 않으시겠지만요.후자의 경우 반올림을 통해 정확한 답변을 복구할 수 있지만, 앞의 두 예제 중 하나는 반올림을 추가하면 정확도가 다소 떨어집니다.사용자가 허용하는 입력 클래스를 제한하면(예: 유한 소수점만) 해당 식 클래스에서 더 정확한 함수를 작성할 수 있지만(예: 문자열 연산을 사용하여) 여기서 사용되는 현재 모드와는 다른 기능 및 제한 집합을 가질 수 있습니다.드래곤즈 비행 (토크) 2015년 5월 23일 23:58, (UTC) [
- "루아 함수는 부동소수점 함수를 사용합니다" - 오.왜 이것이 저와 관련이 있습니까?"만약 당신이 사용하고 싶다면..." -- 아니요, 원하지 않습니다.내가 어디서 그렇게 말했습니까?저는 다른 걸 원했어요.(또 다른 좋은 편집자가 나를 이해하지 못하는 사람이라고 설명합니다.지금쯤이면 12개에 도달할 것입니다.)그냥 FOP를 읽으세요. - 드파이프 (토크) 02:28, 2015년 5월 27일 (UTC) [
- 다시 한 번 말씀드리지만 모듈에서 이 문제를 해결할 수 없습니다.정말 안됐군요, 알아요, 하지만 우리가 할 수 있는 건 아무것도 없어요.Stradivarius씨♪ talk ♪ 02:46, 2015년 5월 27일 (UTC) [
- "루아 함수는 부동소수점 함수를 사용합니다" - 오.왜 이것이 저와 관련이 있습니까?"만약 당신이 사용하고 싶다면..." -- 아니요, 원하지 않습니다.내가 어디서 그렇게 말했습니까?저는 다른 걸 원했어요.(또 다른 좋은 편집자가 나를 이해하지 못하는 사람이라고 설명합니다.지금쯤이면 12개에 도달할 것입니다.)그냥 FOP를 읽으세요. - 드파이프 (토크) 02:28, 2015년 5월 27일 (UTC) [
- Lua 함수는 부동소수점 함수를 사용하며(그 문제에 대해서는 파서 함수 #expr), 많은 경우 기본 식을 입력으로 허용합니다.만약 여러분이 정확한 수학 공식을 사용하고 싶다면, 여러분은 물론 자유롭게 그렇게 할 수 있습니다. 여러분은 아마도 그것을 손으로 하거나 그것을 위한 여러분만의 함수를 쓸 필요가 있을 것입니다.정확한 수학을 사용하려는 경우 다른 에지 사례 집합을 얻을 수 있습니다. 예를 들어, 분수, 상수 및 기타 식을 나타내는 방법을 선택합니다. 예를 들어 {{#computer:math mod 11/31} = 0.66666667 또는 {{#computer:math mode^pi 1}} = 0.14069262779입니다.두 가지 모두 여기서 잘린 소수이지만 합리적인 근사치를 제공합니다.개인적으로, 저는 {{#basic:math mod 345.61}} → 0.6000000002도 합리적인 근사치라고 생각합니다. 물론 동의하지 않으시겠지만요.후자의 경우 반올림을 통해 정확한 답변을 복구할 수 있지만, 앞의 두 예제 중 하나는 반올림을 추가하면 정확도가 다소 떨어집니다.사용자가 허용하는 입력 클래스를 제한하면(예: 유한 소수점만) 해당 식 클래스에서 더 정확한 함수를 작성할 수 있지만(예: 문자열 연산을 사용하여) 여기서 사용되는 현재 모드와는 다른 기능 및 제한 집합을 가질 수 있습니다.드래곤즈 비행 (토크) 2015년 5월 23일 23:58, (UTC) [
- 입력 중 하나가 123.6이면 FP 연산이 필요합니다. 아니요, 필요 없습니다.저는 숫자를 보고 정신적으로 할 수 있습니다.저는 문자열 처리 기능으로 할 수 있습니다. 문자만 잘라내면 됩니다.제 요점 1은 FP가 불필요하게 도입되고 FP 자체가 문제를 일으킨다는 것입니다.요점-2는 당신들이 계속해서 나에게 그것은 그렇지 않으면 할 수 없다고 말하고 있다는 것입니다. -DePiep (대화) 22:07, 2015년 5월 23일 UTC []
- 저의 원인은 FP 오류가 필요하지 않기 때문입니다.더욱 강력합니다. FP는 전혀 필요하지 않습니다.모드 작업을 보는 사람은 누구나 결과를 볼 수 있습니다.제가 이걸 확인하지 않았다면요?re Ozob: "일반적으로, 표현이 계산적으로 불가능하다는 것을 결정하는 것은" - 저는 받아들이기를 거부합니다, 그것은 단지 당신이 '계산적'이 ~1980년의 상태로 제한된다고 가정하기 때문입니다.Donald Knuth는 그때까지 컴퓨터가 처리할 수 있어야 한다고 언급했습니다.
- 저는 여기에 잘 정의된 수학적 연산이 있다고 생각합니다.그룹 R/αZ의 원소는 [0,α]에서 실수로 표시됩니다.그러나 일반적으로 표현을 결정하는 것은 계산적으로 불가능합니다. 어렵지는 않지만 무한한 메모리가 필요할 수 있습니다.위의 예들은 잘못된 것이 없다고 생각합니다. 부동소수점 숫자는 유한한 정밀도를 가지고 있고, 그것들을 사용한 계산은 자연스럽게 약간의 오류를 가지고 있습니다.Ozob (대화) 03:59, 2015년 5월 23일 (UTC) [
@Stradivarius씨와 DePiep: 사실, 모든 사람들을 행복하게 할 수 있는 방법이 있을지도 모릅니다.위키텍스트에서 호출되면 반환 값을 15개의 유의한 숫자로 반올림할 수 있습니다.모듈을 이미 설정했습니다.얼마 전까지만 해도 소수만이 그랬었습니다.Jackmcbarn (talk) 16:11, 2015년 5월 27일 (UTC) [
2016년 3월 27일 보호된 편집 요청
이 편집 요청에 응답했습니다.설정 answered=또는 ans=요청을 다시 활성화하려면 매개 변수를 no로 지정합니다. |
모듈에서 몇 가지를 단순화했습니다.새 값을 만들어 연산/샌드박스binary_fold()min 및 max에 대한 함수는 "min" 값이 다음 값이어야 할 때 true를 반환하고 그렇지 않으면 false를 반환하며, 로컬 함수의 일부를 익명 함수로 변경했습니다.그리고 "applyFuncToArgs"를 "fold"로 변경했습니다. 이는 목록을 접거나 하나의 값으로 줄이는 대신 함수에 따라 "맵"한다는 의미입니다.Diff + 수정안(최종 Diff는 후자 또는 현재 버전), 테스트 사례.기능 변경 없음.동등성 01:48, 2016년 3월 27일 () [응답
Johnuniq (대화) 02:43, 2016년 3월 27일 UTC) 회신 [
완료 저는 "applyFuncToArgs"가 형편없는 함수 이름이라는 것을 항상 알고 있었지만, 그때는 프로그래밍을 충분히 알지 못했고, 바이너리 버전을 사용하여 기능을 확장할 수 있다는 것을 깨달았습니다.이것은 대단한 발전입니다.스트라디바리우스♪ talk ♪ 씨, 2016년 3월 28일 12:17, (UTC)
2018년 6월 25일에 보호된 편집 요청
이 편집 요청에 응답했습니다.설정 answered=또는 ans=요청을 다시 활성화하려면 매개 변수를 no로 지정합니다. |
주석의 오타 수정: 변경{{#invoke:Math log x }}로.{{#invoke:Math log10 x }}바로 위 댓글에wrap.log10함수의 이름이 "log10"이기 때문입니다.{{3xp}}ery (talk) 03:41, 2018년 6월 25일 (UTC)
- 저는 오타로 160만 페이지를 치는 것보다 그것을 작업관리 목록에 넣을 것입니다.Johnuniq (talk) 2018년 6월 25일 03:55 (UTC) 응답
- 현재 사용할 수 없습니다.샌드박스에 이것을 남겨두면 더 실질적인 변화가 있을 때 동시에 배치될 수 있습니다. - Martin (MSGJ · talk ) 2018년 6월 26일 (UTC) :22 Reply [
- 2020년쯤, 과거의 역사가 보여주는 것이 있다면요?{{3xp}}ery (talk) 21:46, 2018년 6월 26일 (UTC)
2018년 9월 30일에 보호된 편집 요청
이 편집 요청에 응답했습니다.설정 answered=또는 ans=요청을 다시 활성화하려면 매개 변수를 no로 지정합니다. |
@Primefac: 모듈의 내용을 바꿉니다.모듈을 사용한 수학:산술/샌드박스, 이러한 수정을 통해 중위수 함수는 소수점 숫자를 허용하고 입력이 없을 때 오류 메시지를 반환하지 않습니다.사용자 보기:브랜든 XLF/샌드박스/5 및 템플릿:중위수 - Brandon XLF 2018년 9월 30일 23:13 (UTC) [
가장 가까운 정수로 반올림하는 값에 대해 라운드의 정밀도= 매개 변수가 작동합니까?
서류에 따르면, 나는 예상합니다.{{#invoke:Math precision_format value=1.02 precision=1}}결과적으로 "1.0"이 됩니다.현재 결과는 "1"입니다.값 "1.12"를 올바르게 사용하면 "1.1"을 반환합니다.제가 무엇을 빠뜨리고 있나요?
업데이트: precision_format 기능이 더 잘 작동하는 것 같은데, 제가 원하는 대로 작동하는지 모르겠습니다.템플릿 참조:인플레이션/테스트 사례 #상당한 자릿수.Jonesey95 (talk) 2019년 10월 21일 23:27 (UTC) [
- 이것은 이 모듈의 개발자들이 기능을 서투르게 작성했기 때문입니다.formatnum을 호출해 보십시오.대신 formatNum(숫자, lang, prec)을 입력합니다.{{#invoke}}개의 래퍼를 사용할 수 있을지 확신할 수 없지만 Lua, 즉 모듈에서 이 기능을 호출할 수 있습니다.복합_날짜.Innis Mrsi (talk) 10:12, 2019년 10월 22일 (UTC) [
precision_format
작은 숫자에 과학적 표기법을 사용하지 않는 precision_format 버전이 가능합니까?예를 들면 …이 있습니다. {{#invoke:Math precision_format 1/30000 7 scinote=n}}0 대신 0.0000333을 반환하시겠습니까?출력물을 후처리해서 해킹을 할 수도 있겠지만, 모듈이 맨 마지막에 이 부분을 하기 때문에 모듈에서 해킹을 할 수 있는 방법이 더 좋을 것 같습니다.프리제스 (토크) 18:36, 2019년 12월 7일 (UTC) [
두 숫자의 차이를 얻는 방법
두 숫자 값의 차이를 얻기 위해 코드를 작성하는 방법.?-JinOy ❚❙❙❙❚❙❙❙❚❚▁19✉ 2020년 4월 8일(UTC) 19:50 ]
- 아니요, 당신은 그것을 위해 모듈을 사용하지 않을 것이고, 당신은 그것을 사용할 것입니다.
#expr차이를 계산하는 조건식입니다.예를들면,{{#expr: 2-1}}→1프라임팩 (토크) 2020년 4월 8일 20:13, 2020년 4월 8일 (UTC) [- @Primefac: - 감사합니다.방금 테스트 케이스를 시도했습니다.
{{#invoke:math sum 10 -5}}and it works-jinOy ❚❙❙❙❚❚✉ 2020년 4월 8일 (UTC) 20:22, ]- 엄밀히 말하면 그것도 효과가 있을 것 같습니다.#expr은 훨씬 사용하기 쉽고 프로세스 집약적이지 않습니다.프라임팩(토크) 2020년 4월 8일(UTC : 답변 [답장
- 케랄라에서 2020년 코로나바이러스 대유행 기사에 추가하여 활성 사례의 수를 확인했습니다.위키데이터에서 사망자 수와 회복자 수를 가져왔습니다.Wikidata에서는 활성 사례를 사용할 수 없습니다.그래서 #expr과 함께 코드를 추가하고 그 기능을 수행합니다.하지만 제 모국어 위키(말레이야람)에서 #expr은 제가 시도했을 때 약간의 오류를 보여줍니다.그래서 저기서 '수학'을 사용했습니다.-JinOy ❚❙❙❙❚❙❙❙❚❚✉ 2020년 4월 8일(UTC) :58 Reply[
- 엄밀히 말하면 그것도 효과가 있을 것 같습니다.#expr은 훨씬 사용하기 쉽고 프로세스 집약적이지 않습니다.프라임팩(토크) 2020년 4월 8일(UTC : 답변 [답장
- @Primefac: - 감사합니다.방금 테스트 케이스를 시도했습니다.
버그 "bug"
안녕하세요, 이것은 엔위키 문제가 아닙니다.bnwiki에서 이 모듈은 때때로 잘못된 결과를 제공합니다."precision_format"에 문제가 있습니다.예를 들어 {{#invoke:산술 정밀도_format 2.00043}}은(는) ২,০০ 대신 �000을 제공합니다(더 보기, bn:Module:수학, 샌드박스).이걸 어떻게 고칠 수 있을까요?는 자유롭게 편집해주세요.
- @bug: 이 버그는 다음과 같은 낙관적인 코드 때문입니다.
local zero_message = lang:formatNum(1.1) formated_num = formated_num .. 0_message:sub(2,2)
- 코드가 소수점 문자를 확인하려고 합니다(예:
.또는,코드는 지역 번호가 영어 숫자를 사용한다고 가정합니다.:sub(2,2)그들이 희망하는 두 번째 캐릭터를 추출할 것입니다..또는,그러나 bnwiki 1.1은 ."이고 코드는 첫 번째 자리의 두 번째 바이트를 얻어서 부서진 유니코드 기호를 제공합니다.간단한 해결 방법은 첫 번째 줄을 주석 처리하거나 삭제하고 두 번째 줄을 편집하여 위의 내용을 변경하는 것입니다.
--local zero_message = lang:formatNum(1.1) format_num = formated_num ..'.'
- 좀 더 현명한 방법은 mw.ustring.sub을 사용하도록 다시 정렬하는 것이지만 점을 원하는 것을 알기 때문에 의미가 없습니다.결과는 10자리 숫자를 사용합니다.우리가 과거에 논의했던 변환 코드 외에는 할 수 있는 일이 별로 없습니다.Jonuniq (talk) 05:09, 2020년 6월 3일 (UTC) [
@আতাবুজনামাজ্ফ:흠, 그것은 lang:formatNum의 버그인 것 같습니다.모듈 샌드박스에 다음을 넣고 테스트합니다.{{#invoke:SANDBOXNAME main}}.
local function main(로컬 함수) lang = mw.getContentLanguage() local r = lang:formatNum(0.00002) 반환 #r../' .. r ... '/' 끝 반환 {main=main} 이를 시도하면 다음과 같은 결과가 표시됩니다.
- bnwiki에서: 7 /sla.sl/ (숫자로, "7/2.0/"입니다.)
- 아텐위키: 6/2.0E-5/
7은 결과의 길이(바이트 수)입니다.각각의 2bn 자리는 UTF-8에서 3바이트이고 점은 1이므로 최대 7이 됩니다.그 요점은 출력에 숨겨진 것은 아무것도 없다는 것입니다. 단 7바이트입니다.그것에 대해서는 파브리카토르에서 물어보셔도 될 것 같습니다.일반적으로 사용되지 않는 언어에서는 e 표기법이 지원되지 않는 것이 아닐까요?사용하나요?Johnuniq (talk) 03:59, 2020년 6월 4일 (UTC)
- @Johnuniq: 네, e 표기법은 벵골에서 흔하지 않습니다.이에 대한 버그를 제출할 때 무엇을 요청해야 하는지 잘 모르겠습니다.가능하다면 그렇게 해주세요.어쨌든, 많은 시간을 들인 후에, 저는 이것을 할 수 있었습니다, 이것이 문제를 해결하는 것처럼 보입니다.구현할까요? --আফাবমানাজ (talk) 00:44, 2020년 6월 7일 (UTC)Reply
위 이후 소프트웨어 업데이트로 인해 발생하는 상황이 변경되었습니다. bn:모듈 토크:খাঘরল/Johnuniq/format은 다음을 나타내는 데 사용됩니다.lang:formatNum(0.00002)여기 엔위키에서 "2.0E-5"를 준 반면, bn은 "2.0"(잘못됨)에 해당합니다.이제 두 결과 모두 "0"과 동일합니다.몇 가지 결과:
{{#invoke:Math precision_format 2.0004 3}}2.000(양호){{round 0.00019 4}}0.0002(양호){{round 0.000019 5}}→ 0{{round 0.000020004 7}}→ 000
Jonuniq (talk) 2021년 1월 11일 06:26 (UTC) [
2021년 3월 10일 보호된 편집 요청
이 편집 요청에 응답했습니다.설정 answered=또는 ans=요청을 다시 활성화하려면 매개 변수를 no로 지정합니다. |
모듈에서 복사하십시오.모듈 병합을 구현하기 위한 연산/샌드박스:위키백과별 패스수학:토론/로그/2021년 2월 28일 #모듈:PassMath * Pppery * 2021년 3월 10일 20:14 UTC [
완료 프라임팩 (토크) 2021년 3월 11일 18:09, UTC [- 이 병합을 구현할 때 주석을 입력했습니다.수정하는 데 이렇게 많이 사용되는 모듈을 편집하는 것은 가치가 없을 수도 있지만 샌드박스에서 수정했습니다.Pppery it has begun...* 2021년 3월 11일 20:34 (UTC) [
lang:주문 수 -5 이하의 소수에 대한 formatNum fix
lang:formatNum(순서 -5 이하의 경우)은 0을 반환합니다(언어의 경우).루아 유사 코드의 임시(?) 수정:
한다면 주문(수학, 수학, 수학 시험답(가치)) < -4 formated_num = 랑그:formatNum(수학, 수학, 수학 시험답(가치), 노코마피=진실의) 또 다른 formated_num = 랑그:formatNum(수학, 수학, 수학 시험답(가치)) 컨텍스트:Template_talk:라운드 #Bug_in_rounding_0.000020004?MarMi Wiki (대화) 2021년 4월 26일 19:49 (UTC) [