プログラミングのお題スレ Part15

■ このスレッドは過去ログ倉庫に格納されています
2019/07/28(日) 19:39:57.54ID:832c/ukY
プログラミングのお題スレです。

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文
  結果がある場合はそれも

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。

※前スレ
プログラミングのお題スレ Part14
http://mevius.5ch.net/test/read.cgi/tech/1558168409/
234デフォルトの名無しさん
垢版 |
2019/08/30(金) 11:37:28.31ID:Kz4M8rdT
>>233
評価。
235デフォルトの名無しさん
垢版 |
2019/08/30(金) 12:26:06.17ID:VkI78Ia/
>>228
同じ数字でできている数って?どういう意味?
236デフォルトの名無しさん
垢版 |
2019/08/30(金) 12:27:00.95ID:VkI78Ia/
あ、わかった。ごめん。
2019/08/30(金) 13:32:59.48ID:Tn7+4gKU
>>228 Pharo/Squeak Smalltalk

(1 to: 8) gather: [:n | (1 to: 9) collect: [:m | (Array new: n withAll: m) polynomialEval: 10]]

#(1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999)
2019/08/30(金) 16:39:32.33ID:BnHn7wdj
遅いけど perl5
for (1..100_000_000) { print if s{\A (.) \1* \z}{$& }x }
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999
239デフォルトの名無しさん
垢版 |
2019/08/30(金) 18:36:49.98ID:9N6Bd3Tw
>>91
Haskell

main = mapM_ (print.only)
[
[1,1,1,1,2,2,2,3,3,4],
[1,2,3,4,5,5,4,3,2,1],
[3,1,4,1,5,9,2,6,5,3,5]
]

only ns = f [xs | xs <- (group.sort) ns, length xs == 1]
where
f [] = -1
f ([x]:_) = x


ワンライナーも出来るけど、何やってるか読み取り辛い。

only ns = if lst == [] then -1 else (head.head) lst where lst = [xs | xs <- (group.sort) ns, length xs == 1]
240デフォルトの名無しさん
垢版 |
2019/08/30(金) 19:34:06.70ID:9dkB4daP
>>228
あほ
2019/08/30(金) 23:12:37.99ID:aECV+bPz
>>228 Perl5

@s = map{$a=$_; map{$_ x $a} 1..9} 1..8;
print "@s";

実行;
~ $ perl 15_228.pl
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333
444 555 666 777 888 999 1111 2222 3333 4444 5555 6666
7777 8888 9999 11111 22222 33333 44444 55555 66666 77777
88888 99999 111111 222222 333333 444444 555555 666666 777777
888888 999999 1111111 2222222 3333333 4444444 5555555 6666666
7777777 8888888 9999999 11111111 22222222 33333333 44444444
55555555 66666666 77777777 88888888 99999999
242デフォルトの名無しさん
垢版 |
2019/08/30(金) 23:55:50.54ID:olp7cGEF
>>228
Kotlin
https://paiza.io/projects/AFbELIff7j3sUnxSndQLvg
243デフォルトの名無しさん
垢版 |
2019/08/31(土) 05:23:58.92ID:aUqRNM/Y
a = 0
for i = 1, 8 do
  a = a * 10 + 1
  for j = a, a * 9, a do
    print(j)
  end
end
>>228 Lua
244デフォルトの名無しさん
垢版 |
2019/08/31(土) 08:18:15.37ID:rAMLyuja
>>228
Haskell

import Data.List

main = (print.sort.concat) [[(sum.take a) [x * 10 ^ y | y <- [0..9]] | x <- [1..9]]| a <- [1..8]]
2019/08/31(土) 08:45:29.92ID:h26kuCJS
お題
>>228 を求めることができる
特に最適化を施さないナイーブな実装(例えば>>238 )を書いて
その実行にかかる時間(ミリ秒、秒等)を計測し出力してください

なお遅い言語処理系で1億以下が無理な場合は1千万以下でも構いません
2019/08/31(土) 10:03:16.75ID:4OmVCRqb
time perl -e 'for (1..100_000_000) { print if s{\A (.) \1* \z}{$& }x }'
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999
real 1m30.031s
user 1m29.046s
sys 0m0.093s
2019/08/31(土) 10:56:28.19ID:Z8IDlpBx
>>245 Pharo/Squeak Smalltalk

| time ans |

time := [ans := (1 to: 100000000) select: [:n | n asString asSet size = 1]] timeToRun.
^{time. ans}

"Core m3-8100Y => an Array(0:00:02:55.58 #(1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111
222 333 444 555 666 777 888 999 1111 2222 3333 4444 5555 6666 7777 8888 9999 11111
22222 33333 44444 55555 66666 77777 88888 99999 111111 222222 333333 444444 555555
666666 777777 888888 999999 1111111 2222222 3333333 4444444 5555555 6666666 7777777
8888888 9999999 11111111 22222222 33333333 44444444 55555555 66666666 77777777
88888888 99999999)) "
2019/08/31(土) 10:58:35.47ID:8/I1hpDH
>>245 Perl5、1千万以下、CPU: Core i5 M520@2.4GHz

use Time::HiRes qw(gettimeofday tv_interval);
$t0 = [gettimeofday];
for (1..1e8) {
 push @s, $_ if /^(.)\1*$/;
}
$elapse = tv_interval($t0, [gettimeofday]);
printf "@s\n%.3f[s]\n", $elapse;

実行結果
~ $ perl 15_245.pl
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999
49.732[s]
2019/08/31(土) 11:35:18.32ID:weQXwxl4
>>245 Java
https://ideone.com/0ddTLO

Pentium G6950@2.8GHz
整数演算: 1,073ms
正規表現: 46,450ms

Ideone
整数演算: 495ms
正規表現: 2,592ms (これだけ1千万以下で計測)
250デフォルトの名無しさん
垢版 |
2019/08/31(土) 12:36:03.19ID:E0AleLqQ
>>120
Haskell

main = map (\n -> f n 0) [15,93,77,123]

f n a | n < 10 = (n,a)
f n a = f (product [read [x] | x <- show n]) (a + 1)
2019/08/31(土) 12:47:22.94ID:8/I1hpDH
>>245 c99、 Core i5 M520@2.4GHz

#include <time.h>
#include <math.h>
#include <stdio.h>
int main() {
 int b = 1, n = 1;
 clock_t s = clock();
 for (int e = 1; e <= 9; e++) {
  int j = pow(10, e) - pow(10, e - 1);
  for (int i = 1; i <= j; i++) {
   if (n == (n / b) * b)
    printf("%d ", n);
   n++;
  }
  b *= 10; b += 1;
 }
 clock_t e = clock();
 printf("\n%.3f[s]\n", (double)(e - s)/1e6);
}

実行結果
$ cc -std=c99 -O2 15_245.c -lm
$ time ./a.out
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777
888 999 1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333
44444 55555 66666 77777 88888 99999 111111 222222 333333 444444 555555
666666 777777 888888 999999 1111111 2222222 3333333 4444444 5555555
6666666 7777777 8888888 9999999 11111111 22222222 33333333 44444444
55555555 66666666 77777777 88888888 99999999 111111111 222222222
333333333 444444444 555555555 666666666 777777777 888888888 999999999
3.890[s]
2019/08/31(土) 13:39:39.88ID:u8Io5isX
>>228
https://ideone.com/0Hy6a6
C++。いつもなら数え上げで書くところだが、今回は趣向を変えてみた。
2019/08/31(土) 13:43:00.43ID:weQXwxl4
>>252
>>231
> 自然数を対象とします。なので0は対象外。
すぺしゃらいずいらねw
2019/08/31(土) 13:44:48.13ID:u8Io5isX
ぶー!!!
・・・これが・・・!!!・・・これこそが・・・!!!
・・・だ・・・!!!・・・だそく・・・!!!!
2019/08/31(土) 13:45:31.08ID:u8Io5isX
間に合った。 >>253 サンキュー。
256デフォルトの名無しさん
垢版 |
2019/08/31(土) 15:12:57.30ID:RMcMP/J8
>>245

Haskell ナイーブな方
Atomコア(Celeron N3050@1.6GHz)
1億以下で約31秒

main = print [x | x <- [1..100000000], let (s:ss) = show x, all (== s) ss]

time ./zorome
real 0m31.426s
user 0m31.123s
sys 0m0.248s

ナイーブな方は探すアルゴリズムで、最適化の方(>>244)は数列を作るアルゴリズム。
(1から99999999までの(1桁から8桁までの)ゾロ目を作る)

[
[[1],[1,10],[1,10,100]...],
[[2],[2,20],[2,20,200]...],
...,
[[9],[9,90],[9,90,900]...]]
]

って言う数列を生成して、合計出してフラットにしてソートしてるだけだよ。
(他の言語のも多少の手順の違い(フラット化とソートしないで「合計出した時点で表示」を縦方向に繰り返したり)はあるけど、基本のアルゴリズムとしては同じ)
2019/09/01(日) 18:40:58.06ID:lGQcNl0x
お題: nバイトのデータxをビット列にして出力しなさい
2019/09/01(日) 19:01:25.42ID:KcbCTlPY
>>257 Java
https://ideone.com/4I2YQt
2019/09/01(日) 19:32:51.46ID:VqTK6sxa
>>257 Perl5

$n = 24;
@a = map{int rand 255} 1..$n;;
print "@a\n";
@b = map{sprintf'%08b', $_} @a;
$" = '';
print "@b\n

実行例
~ $ perl 15_257.pl
155 105 94 58 85 82 124 6 242 94 119 175 69 205 95 25 79 154 237 248 169 254 46 93
100110110110100101011110001110100101010101010010011111000000011011110010010111100111011110101111010001011100110101011111000110010100111110011010111011011111100010101001111111100010111001011101
260デフォルトの名無しさん
垢版 |
2019/09/01(日) 19:42:33.97ID:931SdLmv
>>257 Common Lisp
https://ideone.com/EmGPSF
2019/09/01(日) 20:53:53.13ID:kwhZ+eUh
>>259
rand 255 ⇒ 256 の方がヨカタ
2019/09/01(日) 21:45:06.97ID:CELgatxy
>>259 コピペミス
print "@b\n

print "@b\n";
263デフォルトの名無しさん
垢版 |
2019/09/02(月) 02:56:48.97ID:oioFkvSQ
>>120

>>125 みたいに、1桁になるまでの変化の様子もリストで渡すようにした。

Haskell

main = mapM put [4,15,93,77,123,277777788888899]

put x = (putStrLn.concat) [show x," -> ",show a,
" loop and value is ",show n,". list = ",show l]
where (l,a,n) = f [] 0 x

f l a n| n < 10 = (reverse l,a,n)
f l a n = f (m:l) (a + 1) m
where m = product [read [x] | x <- show n]
264デフォルトの名無しさん
垢版 |
2019/09/02(月) 02:57:17.93ID:oioFkvSQ
out:

4 -> 0 loop and value is 4. list = []
15 -> 1 loop and value is 5. list = [5]
93 -> 3 loop and value is 4. list = [27,14,4]
77 -> 4 loop and value is 8. list = [49,36,18,8]
123 -> 1 loop and value is 6. list = [6]
277777788888899 -> 11 loop and value is 0. list = [4996238671872,438939648,4478976,338688,27648,2688,768,336,54,20,0]
2019/09/02(月) 06:37:20.55ID:6t6D41pn
>>257 Ruby

n = 16
x = Array.new(n){rand(0x100)}
b = n.times.reduce(0){|s, i| x[~i] * 0x100**i + s}

puts "%p => %0#{n}b" % [x, b]

# => [31, 95, 43, 108, 105, 54, 1, 122, 100, 48, 137, 121, 131, 188, 105, 244] =>
11111010111110010101101101100011010010011011000000001011110100110010000110000100010010111100110000011101111000110100111110100
2019/09/02(月) 06:39:28.02ID:6t6D41pn
typo

puts "%p => %0#{n * 8}b" % [x, b]

# => [31, 95, 43, 108, 105, 54, 1, 122, 100, 48, 137, 121, 131, 188, 105, 244] =>
00011111010111110010101101101100011010010011011000000001011110100110010000110000100010010111100110000011101111000110100111110
100
267デフォルトの名無しさん
垢版 |
2019/09/02(月) 12:10:04.08ID:rT9Zixkt
>>233
勉強になりましたw
2019/09/02(月) 12:49:28.87ID:YYsNPCXj
>>257
https://ideone.com/L5lkiU
C++。気が向いたのでstd::byte動かしてみたけど、ideonが対応してなくてグレードダウンした・・・。
269デフォルトの名無しさん
垢版 |
2019/09/02(月) 15:10:33.79ID:rT9Zixkt
全滅エンドか!?
270デフォルトの名無しさん
垢版 |
2019/09/02(月) 21:31:28.92ID:qij/0ceW
>>247
VB
https://paiza.io/projects/ij82oWiswOxWM0VnAgVbWQ
271デフォルトの名無しさん
垢版 |
2019/09/03(火) 02:08:35.68ID:FeqFVaAA
>>228
aa=$(echo ^{1..9}\\\{1,\\\}\$\\\| |sed -e "s/ //g; s/\\\|$//;"); seq 1 $((10**8)) |grep -e "$aa"
272デフォルトの名無しさん
垢版 |
2019/09/03(火) 03:13:14.41ID:4SpqHsfM
数学的な解き方わからず
このx>=3の自然数解を見つける

a>b、 (a^2 - b^2)^x + (2ab)^y = (a^2 + b^2)^z
273272
垢版 |
2019/09/03(火) 05:28:10.06ID:VYSmTHvF
a=2 b=1で 3^x + 4^y = 5^z
は解無し
2019/09/03(火) 08:27:27.03ID:Sk67xQLY
a b は実数? 正の整数?
275デフォルトの名無しさん
垢版 |
2019/09/03(火) 08:38:58.69ID:VYSmTHvF
出てくる文字、a b x y z はすべて自然数、正の整数です
2019/09/03(火) 08:39:49.44ID:03sYx3ae
a > b > 0 なの?
0 > a なら意味ないんだけど
出題者が問題をそもそも理解してなさそう
277デフォルトの名無しさん
垢版 |
2019/09/03(火) 08:44:26.60ID:VYSmTHvF
すべて1以上の整数として、
x>=3、  a>b、  (a^2 - b^2)^x + (2ab)^y = (a^2 + b^2)^z
を満たすものを見つける

そこでa=2 b=1の場合は解無しがわかっていて
任意のa,bに対して、(a^2 - b^2)^2 + (2ab)^2 = (a^2 + b^2)^2 が成り立つことも判っています
278デフォルトの名無しさん
垢版 |
2019/09/03(火) 08:57:07.87ID:VYSmTHvF
指数2だと必ず成立するのはこれだからです
指数3以上で解けるのはどれか、あるかです


ピタゴラス数は無数にある
中学校の数学で習う定理に、「三平方の定理」或いは「ピタゴラスの定理」と呼ばれるものがある。
a^2 + b^2 = c^2 を満たす正の整数の組 (a, b, c) のことを、ピタゴラス数と呼ぶ。
例えば、(3, 4, 5) や (5, 12, 13) などは有名なピタゴラス数である。

ピタゴラス数が無限個存在する
任意の原始的ピタゴラス数 が (|m^2 ? n^2|, 2mn, m^2 + n^2) の形で表せることを示す。
https://nue2004.info/knowledge/knowledge97.htm
279デフォルトの名無しさん
垢版 |
2019/09/03(火) 09:27:31.81ID:fMS/rXUz
\   / .::::::::::::::::::::::::;;:;;::,ッ、:::::::::   )  く   数  す
  \ l  ,ッィrj,rf'"'"'"    lミ::::::: く   れ  学  ま
     Y           ,!ミ::::::: ヽ  な  野  な
`ヽ、  |           くミ:::::::: ノ   い  郎  い
     |、__  ャー--_ニゞ `i::::,rく   か  は
``''ー- ゝ、'l   ゙̄´彑,ヾ   }::;! ,ヘ.)  !  帰
      ゙ソ   """"´`     〉 L_      っ
      /          i  ,  /|    て    r
≡=- 〈´ ,,.._        i  't-'゙ | ,へ     ,r┘
,、yx=''" `ー{゙ _, -、    ;  l   レ'  ヽr、⌒ヽ'
        ゙、`--─゙      /!         `、
  _,,、-     ゙、 ー''    / ;           `、
-''"_,,、-''"    ゙、    /;;' ,'  /         、\
-''"    /   `ー─''ぐ;;;;' ,'  ノ      
   //    /     ヾ_、=ニ゙
2019/09/03(火) 13:20:54.78ID:SA/JpX4x
どう考えてもスレチだよなぁ
必要なのはプログラムじゃなく紙と鉛筆っぽいし
2019/09/03(火) 13:43:33.95ID:WMTa8Qij
このスレは数学嫌いな奴多いなぁ
べつにちょっとぐらいいいじゃないか
2019/09/03(火) 13:52:03.24ID:/IQ7x87c
むしろこのスレは本当にコンピューター使わないと解けないような
パズル問題とかの方が解答つかないことが多い
2019/09/03(火) 14:53:42.89ID:R1k47NOJ
掛け算があるので加速的に左の解が増えるので追い付かなくなる予感。
2019/09/03(火) 15:14:05.99ID:R1k47NOJ
>>272
https://ideone.com/NIuUAj
C++。コードが正しければ解ナシ。
2019/09/03(火) 15:15:29.58ID:R1k47NOJ
(a^2 - b^2)^x + (2ab)^y=0
(a^2 + b^2)^z=0

の連立方程式解くとよさそうに見えるが。
解くのむずくて俺は無理。
2019/09/03(火) 15:28:15.62ID:03sYx3ae
>>285
何かの冗談? それじゃ明らかに解無しなんですが
2019/09/03(火) 15:31:15.82ID:FbgAnO5f
>>257 Ruby
N = 10
X = Random.new.bytes(N)
puts X.unpack('C*').map{|c| '%02X' % c}.join(' '), X.unpack('B*')

結果
82 30 D4 E1 07 32 27 3E A2 E5
10000010001100001101010011100001000001110011001000100111001111101010001011100101
2019/09/03(火) 15:38:54.45ID:R1k47NOJ
自分で移項して解こうと思ったがキャパ超えててギブアップ。

>>286
解があることは証明されているのですか?数学ダメなんだよ。
2019/09/03(火) 15:40:16.69ID:03sYx3ae
>>288
(a^2 + b^2)^z=0 <=> a = 0 and b = 0
a > b はどこ行ったの?
てか勝手に両辺=0にしちゃその時点で必要性満たしてないよね
2019/09/03(火) 15:45:42.09ID:R1k47NOJ
数学ダメなのでセオリー知らないんだけど。マジ解らん。

正直すまんかった。
2019/09/03(火) 15:47:50.03ID:R1k47NOJ
あと、ちょっとだけ。
>>289
俺はaとbをゼロには規定してないよ。
2019/09/03(火) 15:50:06.71ID:gHL/qcPl
>>284
18行目の不等号逆じゃない?
x=y=z=2の時に出力出るはずだけど。

(元のお題ではxは3以上)
2019/09/03(火) 15:52:04.84ID:R1k47NOJ
>>292
https://ideone.com/ZNkEYb
弄ってみた。
2019/09/03(火) 15:56:44.07ID:gHL/qcPl
doubleの演算誤差出てるなwwww
2019/09/03(火) 15:57:29.86ID:R1k47NOJ
>>293 直しました。
大きな数で発見できているかな?
2019/09/03(火) 16:00:10.37ID:R1k47NOJ
いや、精度飛んでて、うまく測れてないな。
2019/09/03(火) 16:01:59.48ID:gHL/qcPl
演算誤差ではないか 誤差で=になるレベルじゃない
AとB出力してみ?
2019/09/03(火) 16:02:55.16ID:R1k47NOJ
多倍長無いと証明には至らないな。
というわけで今回は抜けるわ。
乱文申し訳ない。
2019/09/03(火) 16:03:35.69ID:gHL/qcPl
あ、doubleからstd::size_tになってたw
2019/09/03(火) 16:10:08.37ID:R1k47NOJ
色々弄ってみたけど、これで凍結しておくわ。
すまんかった。
2019/09/03(火) 16:42:54.68ID:03sYx3ae
>>291
規程してないよって言ってるけど
貴方が提示した条件は a=0 and b=0 と同値ですよって指摘してるんですけど難しいですか私が言ってる事
2019/09/03(火) 16:46:54.03ID:R1k47NOJ
>>301
正直言えば難しいね。手を出さなければよかったとちょっと思ってる。
すまんな。
303デフォルトの名無しさん
垢版 |
2019/09/03(火) 21:38:14.04ID:MpIMqTuu
>>277
なんでxだけ3以上なの?
yとzは本当に1以上の整数として解いていいの?
aとbは定数として扱うの?
なんなの?
304デフォルトの名無しさん
垢版 |
2019/09/03(火) 22:12:17.83ID:VYSmTHvF
x=y=z=2以外の解があるか?

すべて自然数、変数 a>b、 (a^2 - b^2)^x + (2ab)^y = (a^2 + b^2)^z の解

答えしらず。 a=2 b=1だけはいまのところ他にないを証明可能
305デフォルトの名無しさん
垢版 |
2019/09/03(火) 22:33:37.84ID:dCTs9gWx
>>257
VB
https://paiza.io/projects/grWlkqU1Rb-dk-QNh69rRQ
306デフォルトの名無しさん
垢版 |
2019/09/03(火) 22:40:59.77ID:MpIMqTuu
>>304
だからxだけ3以上でyとzは1以上の整数として計算していいか聞いてんだけど?
で、もしそうだったとしてなんでxだけ3以上に仮定してんのかも合わせて聞いてんだけど答えろよ
307デフォルトの名無しさん
垢版 |
2019/09/04(水) 00:41:31.51ID:5HyNYB53
304は3以上を仮定してない、すべて自然数
308デフォルトの名無しさん
垢版 |
2019/09/04(水) 02:57:47.93ID:5U+WeLbN
あーこりゃ致命的に頭悪い奴か
数学も日本語も通じないとは
309デフォルトの名無しさん
垢版 |
2019/09/04(水) 07:57:08.75ID:FC7xGJ7s
定理を発見したら著作権で保護されるのかな。
2019/09/04(水) 08:46:01.17ID:HTJbgiFI
日本数学会に提出する前に
大学の教授にみてもらわないと
2019/09/04(水) 09:59:12.24ID:bj6rvw0v
次スレは数学禁止ってスレタイに入れないとな
2019/09/04(水) 10:54:57.98ID:wUnebE5/
>>310
そして手柄を横取りされる定期
2019/09/04(水) 11:24:41.75ID:P7o6e2y0
お題: 平面上にいくつかの円 (内部も含む円) がある
それが重なったり重ならなかったりしていて、最も重なっている箇所ではN個の円が重なっているとする
このとき、各円の座標と半径が与えられた場合にNを返すプログラムを書け
2019/09/04(水) 13:52:37.01ID:aB3hMBX/
半年くらい前にそのお題あったが思いつかなかったんだよなー…モンテカルロなら作れるがw

https://mevius.5ch.net/test/read.cgi/tech/1549160513/405
2019/09/04(水) 14:06:48.93ID:HTJbgiFI
それ円周率パイとネイピア数のe の積が
N個の円の重なる唯一の x座標とy座標の円達を与えられて返すの辛くないか?
316デフォルトの名無しさん
垢版 |
2019/09/04(水) 14:13:24.75ID:yXyTPmQk
>>315
辛くねえよ
どうやったら方程式解いて超越数が出てくんだよ
ちょっとは考えてからレスしろ
2019/09/04(水) 14:29:48.47ID:HTJbgiFI
例として313が N=4 で、それを与える円4つが
(x-ePi-1)^2+(y-ePi)^2=1
(x-ePi+1)^2+(y-ePi)^2=1
(x-ePi )^2+(y-ePi-1)^2=1
(x-ePi )^2+(y-ePi+1)^2=1
だったら大変かもしれない?
318デフォルトの名無しさん
垢版 |
2019/09/04(水) 17:19:01.11ID:reYoOADS
>>273
これ解無しって言ってるけど自明じゃないよね
ホントにあってんのか?
2019/09/04(水) 18:34:12.43ID:6EOP5CCF
>>306
横レスだが
騒ぐ前に元の>>272の問題文を良く見なさい
それで自分で判断できなければ数学的な問題に取り組むのは止めておいたほうが良い
320デフォルトの名無しさん
垢版 |
2019/09/04(水) 18:42:19.25ID:8qjE+V3b
>>319
一連のやり取り見て出題者がそこら辺理解してなさそうだったから改めて確認しただけなんですけど
>>272を見ただけでは>>306の全ての質問に答えられないことは明白なのに何いってんの?
数学の論理もわからねえくせに見当違いのお説教してんじゃねえよ
2019/09/04(水) 18:49:05.83ID:A7beDSD/
5chはペアプレイではなくマルチプレイということをお忘れなく。
322デフォルトの名無しさん
垢版 |
2019/09/04(水) 19:10:06.78ID:5HyNYB53
>>318
省いててわかりずらいかもしれないがアウトライン。一般化はできないだろう解き方。


3^x + 4^y = 5^z の自然数解は(2,2,2)唯一つ

mod 3で1 ≡ (-1)^z、 z偶数が必要
z=2wとおくと 3^x = (5^w + 2^y) (5^w - 2^y)
簡単な考察で右辺の後項が3の倍数ならば前項は3の倍数になりえないので後項=1、前項=3^xが必要
w偶数とすると結果2式をmod 3で比較して不成立、w奇数が必要
y>=3ならばmod 8で5 ≡ 3^x、任意のxで不成立
y=1ならば解なし
323デフォルトの名無しさん
垢版 |
2019/09/04(水) 19:23:20.13ID:5HyNYB53
かいてから考えたら間違ってるところがでてきた
ここまではいいとして、これあってないな


> y>=3ならばmod 8で5 ≡ 3^x、任意のxで不成立
324デフォルトの名無しさん
垢版 |
2019/09/04(水) 19:26:32.69ID:5HyNYB53
いやあってた
5^2 ≡ 1 (mod 8)になってしまうとおもったら
w奇数だから、5^3 ≡ 5 (mod 8)だった
5しかでない
2019/09/04(水) 20:01:35.58ID:P7o6e2y0
>>314
あら既出だったのか
Twitterで見つけてきたんだけど、その人もこのスレ見てたのかな
それとも問題自体が有名な問題なのかな?
2019/09/04(水) 22:19:56.37ID:bGWgoiea
少なくとも自分はAOJで見た記憶がある
たしか高校生向けのコンテストの問題だったはず…
2019/09/04(水) 22:31:18.96ID:A7beDSD/
>>313
座標と半径が与えられたら、ひたすらHypotするんだ!!
これ、ゲーム技術だから覚えておくとよいよ。(偉そう
328デフォルトの名無しさん
垢版 |
2019/09/04(水) 22:47:39.03ID:5HyNYB53
自作かとおもってたがWikipediaにほぼおなじのあった。解は指数2に限るという。
のってて解けてないとすると難問か


ピタゴラスの定理 - Wikipedia

Jesmanowicz 予想
1956年に Jesmanowicz が以下の予想を提出した。

(a, b, c) を原始ピタゴラス数、n を自然数とする。x, y, z が
(an)^x + (bn)^y = (cn)^z
で自然数解を持つには、x=y=z=2 であることが必要である。
329デフォルトの名無しさん
垢版 |
2019/09/04(水) 22:56:59.22ID:5HyNYB53
Jesmanowicz予想で検索


KAKEN 研究期間 2011 ? 2012 不定方程式におけるTerai予想とJesmanowicz予想

まず始めに、Terai予想のケース(1)のP=q=r=2の場合(Jesmanowicz予想)について考察した。
藤田育嗣氏(日本大学)との共同研究で、Jesmanowicz予想を三つ組みa,b,cがある合同条件を満たす場合に証明した。
Pingzhi Yuan氏(華南師範大学)との共同研究では、申請者の以前の研究結果を大幅に拡張することが出来た。
次に、Terai予想のケース(1)の一般的な場合について考察した。
最近、Florian Luca氏(メキシコ自治国立大学モレリア数学研究所)が、以前の研究の多くを(本質的に)一般化する結果を与えた。
その手法は、Baker理論とそのp進版の理論が有効に用いられていた。しかし、その結果は、不完全な点があり、申請者はその部分を補う計算を行なった。

さらに、申請者はTerai予想の類似問題を提起した。それは、
2以上の自然数p,q,rに対して、a^p+b^q=c^rを満たすa,b,cに対して、
指数型ディオファントス方程式c^x+b^y=a^zは、q=r=2かつc=b+1のときに限り自然数解x,y,zを持ち、
そのときにただ一つの自然数解(x,y,z)=(1,1,p)を持つである。
申請者は、Terai予想で扱われている三つ組みa,b,cについて考察を行い、
Baker理論とそのp進版の理論を用いて、いくつかの場合に予想は成立することを証明した。
特に、後半の主張である"解の一意性"を証明した。

最後に、Terai予想では扱われない三つ組みについても研究結果を得た。
まず、Alain Togbe氏(Purdue大学)との共同研究を行い、氏の以前の連続整数に関する研究を広く拡張することが出来た。
また、申請者は、三つ組みがある線形回帰数列の項として与えられる場合に方程式の解を決定した。
それによって寺井伸浩氏(足利工業大学)によって提起されたフィボナッチ数列に関する予想を解決した。
https://kaken.nii.ac.jp/grant/KAKENHI-PROJECT-11J05674/
330デフォルトの名無しさん
垢版 |
2019/09/04(水) 23:07:59.22ID:5HyNYB53
完全解決してないが、結構解けてるらしい


早稲田大学整数論セミナーの予定 (2014年度 第5回)

タイトル: 原始ピタゴラス数に関する Jesmanowicz 予想について

アブストラクト: 1956 年, Jesmanowiczはピタゴラス数に関する指数型不定方程式
(m^2 - n^2)^x + (2mn)^y = (m^2 + n^2)^z  は, ただ一つの正の整数解 (x; y; z) = (2; 2; 2) を持つことを予想した.
ただし, m > n, gcd(m; n) = 1, m ≠ n mod 2 を満たす正の整数とする.

Journal of Number Theory の論文 (2014 年) において, n = 2 とき Jesmanowicz 予想が成り立つことを証明した.
これは, 与えられた n > 1 に対し m について何も仮定せず Jesmanowicz 予想が成り立つ最初の結果である.
最先端の楕円曲線や modular formの理論から導かれる一般化された Fermat 方程式に関する結果を用いて, m に何も条件を付けずに Jesmanowicz 予想が成り立つことを証明することができた.

本講演では, これをさらに拡張して, n=2 が奇素数の冪でかつ m > 72n のときJesmanowicz予想が成り立つことを証明できたので紹介する.
これらの結果の系として, n=2 が 50 未満の奇数のとき Jesmanowicz 予想が成り立つことが容易に得られる.

https://www.waseda.jp/sem-wnt/kako/pdf2014/20140516.pdf
331デフォルトの名無しさん
垢版 |
2019/09/04(水) 23:25:42.22ID:4CPx11+J
>>313
VB
https://paiza.io/projects/JW7K9hSmkAVtXbO3II21Nw
2019/09/05(木) 00:10:35.11ID:ymsvBiyv
>>313
https://ideone.com/DdvszK
C++。暇だったので解いてみた。が、あってるかわからない。
2019/09/05(木) 10:41:35.98ID:jPhMORz8
置く場所の最大サイズ2000*2000くらいまでだとprocessingとかで半透明の円を重ね合わせれば一番濃いところが正解だから合ってるかどうかだいたい見て分かる
rが小数で半径が0.0001から1億くらいまでまちまちだと面倒
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況