プログラミングのお題スレです。
【出題と回答例】
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/
宿題は宿題スレがあるのでそちらへ。
前スレ
プログラミングのお題スレ Part10
https://mevius.5ch.net/test/read.cgi/tech/1514772904/
プログラミングのお題スレ Part11
https://mevius.5ch.net/test/read.cgi/tech/1524570314/
探検
プログラミングのお題スレ Part12
■ このスレッドは過去ログ倉庫に格納されています
2018/09/28(金) 10:09:07.13ID:phwOkayR
180デフォルトの名無しさん
2018/10/25(木) 16:24:37.58ID:aKbYC4uC181デフォルトの名無しさん
2018/10/25(木) 16:39:59.02ID:wLNEFoo1 >>176
>Aは0扱いでよい。
>与えられた文字列を str にとして x = str[A-Zの26進数] に対して
それだと "A" も "AAAAAA" も x = 0 になるから g がダメだな
>Aは0扱いでよい。
>与えられた文字列を str にとして x = str[A-Zの26進数] に対して
それだと "A" も "AAAAAA" も x = 0 になるから g がダメだな
182デフォルトの名無しさん
2018/10/25(木) 16:46:00.18ID:9VVQwm/j やっぱり36進数[0-9a-z]使った横着は出来ないのか…
183デフォルトの名無しさん
2018/10/25(木) 17:18:04.60ID:BFrEhhQu perlのbasecalcだとマジカルなことができる
184デフォルトの名無しさん
2018/10/25(木) 17:29:09.19ID:/ssDOiD4 >>181
文字列にするときは適当な10*n[26進数]を足してやればよいからやはり基本は26進数でよい
文字列にするときは適当な10*n[26進数]を足してやればよいからやはり基本は26進数でよい
185デフォルトの名無しさん
2018/10/25(木) 17:46:06.11ID:wLNEFoo1 デコードは A-Z を 1 から 26 とする 0 を持たない変則 26 進数として数値化すりゃあいいんだよ
以下J
26 #. _64 + a. i. 'ABC'
==> 731
26 #. _64 + a. i. 'ODAI'
==> 266379
エンコードはちょっと1行では説明しにくい
以下J
26 #. _64 + a. i. 'ABC'
==> 731
26 #. _64 + a. i. 'ODAI'
==> 266379
エンコードはちょっと1行では説明しにくい
186デフォルトの名無しさん
2018/10/25(木) 17:52:55.69ID:Toapoewp 27進だろ…
187デフォルトの名無しさん
2018/10/25(木) 17:53:10.85ID:hw/Q19JU188デフォルトの名無しさん
2018/10/25(木) 18:17:57.30ID:wLNEFoo1 >>186
下からn桁目の重み付けが 26^n で(1番下を0桁とする)、
各桁の数字が1〜26なんだよ
これで0以外の数は表記できる
AAA は 1*26*26 + 1 *26 + 1
ABC は 1*26*26 + 2 *26 + 3
YAZ は 25*26*26 + 1*26 + 26
下からn桁目の重み付けが 26^n で(1番下を0桁とする)、
各桁の数字が1〜26なんだよ
これで0以外の数は表記できる
AAA は 1*26*26 + 1 *26 + 1
ABC は 1*26*26 + 2 *26 + 3
YAZ は 25*26*26 + 1*26 + 26
189デフォルトの名無しさん
2018/10/25(木) 19:37:38.82ID:gO/HWAcm190デフォルトの名無しさん
2018/10/25(木) 20:05:21.59ID:na0fZQbz 全くの素人質問で申し訳ありませんが、お知恵拝借したくお願いします。
http://www.cjh.com.cn/
の画面左まんなか辺りの
三峡水? 25日 19?00分 174.64 -(入) 15200(出)
を自動で毎日夜21時に取得して
https://egg.5ch.net/test/read.cgi/river/1507607675/
に自動で書き込む方法はありますでしょうか?
長年誰かが手写しでしたが、死屍累々でございます、、、、なのです、、
http://www.cjh.com.cn/
の画面左まんなか辺りの
三峡水? 25日 19?00分 174.64 -(入) 15200(出)
を自動で毎日夜21時に取得して
https://egg.5ch.net/test/read.cgi/river/1507607675/
に自動で書き込む方法はありますでしょうか?
長年誰かが手写しでしたが、死屍累々でございます、、、、なのです、、
191デフォルトの名無しさん
2018/10/25(木) 20:16:07.42ID:na0fZQbz192デフォルトの名無しさん
2018/10/25(木) 20:33:47.72ID:TSZxWHJ/ sssqold.htmlのソース見たが読むほうは簡単そうだな
書き込む方はしらん
書き込む方はしらん
193デフォルトの名無しさん
2018/10/25(木) 20:33:50.34ID:BSekExc/ スレタイ
194デフォルトの名無しさん
2018/10/25(木) 23:54:56.07ID:Hzy8+5Se あらしのおもちゃになるソースを公開するのはさすがにちょっとなあ
195デフォルトの名無しさん
2018/10/25(木) 23:59:06.56ID:9OC64j5F >>190
2chのcgiは仕様変更ちょいちょいあって追いかけるの面倒だから書き込みは自動保守ツールとか任せるとして、
powershellのスクリプトをタスクスケジューラで動かして出力をテキストファイルにリダイレクトして自動保守ツールに食わせりゃいいんじゃね
スクリプトはこんな感じかね
$html= Invoke-WebRequest -UseBasicParsing http://nweb.cjh.com.cn/sssqold.html
$pattern = "`"oq`":`"(\d*)`",`"q`":`"(\d*)`"[^}]+`"三峡水库`",`"tm`":(\d+),[^}]+`"z`":`"([0-9\.]+)`""
if ($html.RawContent -match $pattern) {
$time = (Get-Date "1970/1/1 0:0:0 GMT").AddMilliseconds($Matches[3])
"三峡水库 {2:dd}日 {3}m {1}(入) {0}(出)"-f $Matches[1],$Matches[2],$time,$Matches[4]
}
2chのcgiは仕様変更ちょいちょいあって追いかけるの面倒だから書き込みは自動保守ツールとか任せるとして、
powershellのスクリプトをタスクスケジューラで動かして出力をテキストファイルにリダイレクトして自動保守ツールに食わせりゃいいんじゃね
スクリプトはこんな感じかね
$html= Invoke-WebRequest -UseBasicParsing http://nweb.cjh.com.cn/sssqold.html
$pattern = "`"oq`":`"(\d*)`",`"q`":`"(\d*)`"[^}]+`"三峡水库`",`"tm`":(\d+),[^}]+`"z`":`"([0-9\.]+)`""
if ($html.RawContent -match $pattern) {
$time = (Get-Date "1970/1/1 0:0:0 GMT").AddMilliseconds($Matches[3])
"三峡水库 {2:dd}日 {3}m {1}(入) {0}(出)"-f $Matches[1],$Matches[2],$time,$Matches[4]
}
196デフォルトの名無しさん
2018/10/26(金) 01:56:21.09ID:zqmCYDLg 無駄に一行だな
197デフォルトの名無しさん
2018/10/26(金) 03:39:31.47ID:c84xrxY5 >>171
(fold + 0 (map-with-index (lambda (i c) (* (- (char->integer c) #x40) (expt 26 i))) (reverse (string->list "ABC"))))
(fold + 0 (map-with-index (lambda (i c) (* (- (char->integer c) #x40) (expt 26 i))) (reverse (string->list "ABC"))))
198デフォルトの名無しさん
2018/10/26(金) 19:50:36.71ID:/kG4owY9 お題
ぷよぷよの連鎖数を求めよ。0-9がぷよ、.が空きマスを表す。
0013
0123
122.
013.
0123
=> 4
9.9.9.9.9.9
.9.9.9.9.9.
=> 1
0123
3012
2301
1230
=> 0
ぷよぷよの連鎖数を求めよ。0-9がぷよ、.が空きマスを表す。
0013
0123
122.
013.
0123
=> 4
9.9.9.9.9.9
.9.9.9.9.9.
=> 1
0123
3012
2301
1230
=> 0
199デフォルトの名無しさん
2018/10/26(金) 20:45:47.09ID:yqPKU+uE >>195
おお、素晴らしいアドレスありがとうございます。後は何とか頑張ってみます!!
おお、素晴らしいアドレスありがとうございます。後は何とか頑張ってみます!!
200デフォルトの名無しさん
2018/10/26(金) 20:51:49.05ID:8JGFizba >>198
2番目のパターンは実際のゲームではあり得ないものだとは思うが、とにかく何もない所があれば落ちてそれから何連鎖するかを求めればいいのかな?
2番目のパターンは実際のゲームではあり得ないものだとは思うが、とにかく何もない所があれば落ちてそれから何連鎖するかを求めればいいのかな?
201デフォルトの名無しさん
2018/10/29(月) 19:22:44.11ID:PHNS982/ >>171
Kotlin
https://paiza.io/projects/1ZkMBpYcAWRTjh1ic8RIIQ
入力が A-Z なら数値に変換(小文字も可)、数字だけの文字列はいわゆるA1の形式に変換。それ以外は入力異常でエラー。
Kotlin
https://paiza.io/projects/1ZkMBpYcAWRTjh1ic8RIIQ
入力が A-Z なら数値に変換(小文字も可)、数字だけの文字列はいわゆるA1の形式に変換。それ以外は入力異常でエラー。
202デフォルトの名無しさん
2018/10/30(火) 17:20:53.74ID:xBpFVgTt203デフォルトの名無しさん
2018/10/30(火) 21:09:38.22ID:RM3bKAov お題: ページャーを実装してください。標準入力から以下のデータが与えられます。不正な入力にはいい感じに対応してください。
1行目: 現在のページ番号
2行目: 総ページ数
3行目: 表示するリンク数
例1
入力:
1
10
5
出力:
[1] 2 3 4 5
例2
入力:
5
10
5
出力:
3 4 [5] 6 7
例3
入力:
10
10
5
出力:
6 7 8 9 [10]
1行目: 現在のページ番号
2行目: 総ページ数
3行目: 表示するリンク数
例1
入力:
1
10
5
出力:
[1] 2 3 4 5
例2
入力:
5
10
5
出力:
3 4 [5] 6 7
例3
入力:
10
10
5
出力:
6 7 8 9 [10]
204デフォルトの名無しさん
2018/10/30(火) 22:21:08.83ID:Mk80lxDb >>203 perl
$now = shift or die $! ;
$all = shift or die $! ;
$show = shift or die $! ;
$x = 1 + int $show/2;
$y = $all - $x + 1;
if($now <= $x){
$start = 1;
}elsif($y <= $now){
$start = $all - $show + 1;
}else{
$start = $now - int $show/2;
}
$end = $start + $show - 1;
print join " ", map{ $_ == $now ? "[$_]" : "$_" }($start..$end);
$now = shift or die $! ;
$all = shift or die $! ;
$show = shift or die $! ;
$x = 1 + int $show/2;
$y = $all - $x + 1;
if($now <= $x){
$start = 1;
}elsif($y <= $now){
$start = $all - $show + 1;
}else{
$start = $now - int $show/2;
}
$end = $start + $show - 1;
print join " ", map{ $_ == $now ? "[$_]" : "$_" }($start..$end);
205デフォルトの名無しさん
2018/10/30(火) 22:51:09.23ID:N8SwgYLQ >>203
Python3
current = int(input())
total = int(input())
n_links = int(input())
assert 1 <= current <= total and n_links <= total
if current <= n_links//2:
seq = range(1, n_links+1)
elif current >= total-n_links//2:
seq = range(total-n_links+1, total+1)
else:
left = current - n_links//2
right = current + n_links//2 + (0 if n_links%2 == 0 else 1)
seq = range(left, right)
seq = ["[{}]".format(s) if s == current else str(s) for s in seq]
print(" ".join(seq))
Python3
current = int(input())
total = int(input())
n_links = int(input())
assert 1 <= current <= total and n_links <= total
if current <= n_links//2:
seq = range(1, n_links+1)
elif current >= total-n_links//2:
seq = range(total-n_links+1, total+1)
else:
left = current - n_links//2
right = current + n_links//2 + (0 if n_links%2 == 0 else 1)
seq = range(left, right)
seq = ["[{}]".format(s) if s == current else str(s) for s in seq]
print(" ".join(seq))
206デフォルトの名無しさん
2018/10/30(火) 22:54:52.47ID:N8SwgYLQ うまく貼れなかった
https://ideone.com/2ch1r3
https://ideone.com/2ch1r3
207デフォルトの名無しさん
2018/11/02(金) 11:25:03.96ID:b7bQuZgR >>203 Squeak Smalltalk
| fn |
fn := [:pg :tot :wd |
| start pages |
start := pg - (wd // 2) min: tot - wd + 1 max: 1.
pages := start to: start + wd - 1.
(pages collect: [:x | (x = pg ifTrue: ['[{1}]'] ifFalse: ['{1}']) format: {x}]) joinSeparatedBy: ' '
].
#((1 10 5) (5 10 5) (10 10 5)) collect: [:tri | fn valueWithArguments: tri]
"=> #('[1] 2 3 4 5' '3 4 [5] 6 7' '6 7 8 9 [10]') "
| fn |
fn := [:pg :tot :wd |
| start pages |
start := pg - (wd // 2) min: tot - wd + 1 max: 1.
pages := start to: start + wd - 1.
(pages collect: [:x | (x = pg ifTrue: ['[{1}]'] ifFalse: ['{1}']) format: {x}]) joinSeparatedBy: ' '
].
#((1 10 5) (5 10 5) (10 10 5)) collect: [:tri | fn valueWithArguments: tri]
"=> #('[1] 2 3 4 5' '3 4 [5] 6 7' '6 7 8 9 [10]') "
208デフォルトの名無しさん
2018/11/02(金) 23:41:59.56ID:8MYT0pgk 三峡水? 02日 23?00分 174.53 -(入)14700(出)
209デフォルトの名無しさん
2018/11/03(土) 04:09:45.11ID:vg8hCxXN210デフォルトの名無しさん
2018/11/03(土) 08:08:00.00ID:BMDI0yEn211デフォルトの名無しさん
2018/11/03(土) 23:34:36.36ID:BMDI0yEn212デフォルトの名無しさん
2018/11/04(日) 13:46:33.88ID:pidkuN2F >>203
Haskell
main = mapM_ put [(1,10,5),(5,10,5),(10,10,5)]
put (x,y,z) = return (pager x y z) >>= print
pager a b c | a <= (c `div` 2) = mklist a $ take c [1..b]
pager a b c | a > (b - c `div` 2) = mklist a $ drop (b - c) [1..b]
pager a b c = mklist a $ take c $ drop (a - c `div` 2 -1) [1..b]
mklist a xs = [small a xs , jst a xs , big a xs]
small a = filter (< a)
big a = filter (> a)
jst a = filter (== a)
結果
[[],[1],[2,3,4,5]]
[[3,4],[5],[6,7]]
[[6,7,8,9],[10],[]]
[executed "pager.hs"]
Haskell
main = mapM_ put [(1,10,5),(5,10,5),(10,10,5)]
put (x,y,z) = return (pager x y z) >>= print
pager a b c | a <= (c `div` 2) = mklist a $ take c [1..b]
pager a b c | a > (b - c `div` 2) = mklist a $ drop (b - c) [1..b]
pager a b c = mklist a $ take c $ drop (a - c `div` 2 -1) [1..b]
mklist a xs = [small a xs , jst a xs , big a xs]
small a = filter (< a)
big a = filter (> a)
jst a = filter (== a)
結果
[[],[1],[2,3,4,5]]
[[3,4],[5],[6,7]]
[[6,7,8,9],[10],[]]
[executed "pager.hs"]
213デフォルトの名無しさん
2018/11/04(日) 13:47:27.44ID:pidkuN2F 結果が切れた。。。
改めて結果。
[[],[1],[2,3,4,5]]
[[3,4],[5],[6,7]]
[[6,7,8,9],[10],[]]
[executed "pager.hs"]
改めて結果。
[[],[1],[2,3,4,5]]
[[3,4],[5],[6,7]]
[[6,7,8,9],[10],[]]
[executed "pager.hs"]
214デフォルトの名無しさん
2018/11/05(月) 17:57:48.99ID:GRwYYoWB お題
3つの自然数A,B,Cが与えられる。
初項A、第二項Bであるフィボナッチ数列に対してCがその数列に含まれるかを判定せよ。
含まれる場合は第何項であるかを返し、含まれない場合は偽を返すものとする。
3つの自然数A,B,Cが与えられる。
初項A、第二項Bであるフィボナッチ数列に対してCがその数列に含まれるかを判定せよ。
含まれる場合は第何項であるかを返し、含まれない場合は偽を返すものとする。
215デフォルトの名無しさん
2018/11/05(月) 20:17:41.49ID:0wNeh4D8 >>214 python
def fibo(a, b):
_yield a
_yield b
_while True:
__yield a + b
__a, b = b, a+b
def func(fb, n):
_count = 1;
_while True:
__num = fb.next()
__print "{} th term = {}".format(count, num)
__if num >= n:
___if num == n:
____return count
___else:
____return False
__count = count + 1
_return False
a, b, c = 1, 1, 100
print func(fibo(a, b), c)
def fibo(a, b):
_yield a
_yield b
_while True:
__yield a + b
__a, b = b, a+b
def func(fb, n):
_count = 1;
_while True:
__num = fb.next()
__print "{} th term = {}".format(count, num)
__if num >= n:
___if num == n:
____return count
___else:
____return False
__count = count + 1
_return False
a, b, c = 1, 1, 100
print func(fibo(a, b), c)
216デフォルトの名無しさん
2018/11/05(月) 20:25:58.31ID:0wNeh4D8 同じもの
ttps://ideone.com/Dff2U9
ttps://ideone.com/Dff2U9
217デフォルトの名無しさん
2018/11/05(月) 21:15:45.04ID:b01o/g5T218デフォルトの名無しさん
2018/11/05(月) 23:33:04.48ID:6d8cBeMO >>214 Ruby
require 'matrix'
def hoge(a, b, c)
rm, fm, im = Matrix[[1, 1], [1, 0]], Matrix[[1, 0], [0, 1]], Matrix[[b], [a]]
(0..Float::INFINITY).each do |n|
m = fm * im
return m[1, 0] > c ? false : n if m[1, 0] >= c
fm *= rm
end
end
p hoge(0,1,88) #=> false
p hoge(0,1,89) #=> 11
p hoge(0,1,90) #=> false
require 'matrix'
def hoge(a, b, c)
rm, fm, im = Matrix[[1, 1], [1, 0]], Matrix[[1, 0], [0, 1]], Matrix[[b], [a]]
(0..Float::INFINITY).each do |n|
m = fm * im
return m[1, 0] > c ? false : n if m[1, 0] >= c
fm *= rm
end
end
p hoge(0,1,88) #=> false
p hoge(0,1,89) #=> 11
p hoge(0,1,90) #=> false
219デフォルトの名無しさん
2018/11/06(火) 03:12:12.75ID:BD76rR44220デフォルトの名無しさん
2018/11/06(火) 07:54:03.24ID:GFB90oOd C
初項の次第二項って書いてるのに、みんな何故0始まりなの。。。
#include <stdio.h>
int fibin(int,int,int);
int main(void)
{
for(int i = 0;i < 6;i++) printf("%d:%d\n",i,fibin(1,1,i));
return 0;
}
int fibin(int fst,int snd,int num)
{
int i = 2,fib = fst;
if(fst == num) return 1;
if(snd == num) return 2;
while(fib != num)
{
fib = fst;
fib += snd;
if(fib <= num) i++;
else return -1;
fst = snd;
snd = fib;
}
return i;
}
初項の次第二項って書いてるのに、みんな何故0始まりなの。。。
#include <stdio.h>
int fibin(int,int,int);
int main(void)
{
for(int i = 0;i < 6;i++) printf("%d:%d\n",i,fibin(1,1,i));
return 0;
}
int fibin(int fst,int snd,int num)
{
int i = 2,fib = fst;
if(fst == num) return 1;
if(snd == num) return 2;
while(fib != num)
{
fib = fst;
fib += snd;
if(fib <= num) i++;
else return -1;
fst = snd;
snd = fib;
}
return i;
}
221デフォルトの名無しさん
2018/11/06(火) 09:23:46.31ID:jl2IXbjS (A,B,C)が(0,0,0),(0,1,0),(0,1,1),(1,0,0),(1,0,1)の時はCが無限回、(1,1,1),(0,X,X),(X,0,X),(X,X,X)(2≦X)の時はCが2回出現することがあるが考慮した方が良いか?
222デフォルトの名無しさん
2018/11/06(火) 10:48:03.28ID:VF9SVEaj A,Bによっては無限ループになり得ないか?
223219
2018/11/06(火) 11:49:20.62ID:13CfGTjW そういやa,bが0,0だと足しても0だからcも0じゃないと無限ループするかな。
224219
2018/11/06(火) 11:52:26.86ID:13CfGTjW した。見事にした。
足してゼロなら特別扱いして終わらせる処理がないとダメだったということだな。
今さら直す気は起きんが。
足してゼロなら特別扱いして終わらせる処理がないとダメだったということだな。
今さら直す気は起きんが。
225デフォルトの名無しさん
2018/11/06(火) 11:52:29.61ID:GFB90oOd226デフォルトの名無しさん
2018/11/06(火) 12:34:42.11ID:jAy4xbYh >>214 Squeak/Pharo Smalltalk
| fibGen fn |
fibGen := [:fst :snd |
Generator on: [:g |
| a b |
a := fst. b := snd.
g yield: a. [b := a+b. g yield: (a := b-a)] repeat
]
].
fn := [:A :B :C |
| count fib last |
count := 1. fib := fibGen value: A value: B.
[(last := fib next) < C] whileTrue: [count := count + 1].
last = C ifTrue: [count] ifFalse: [false]
].
fn value: 1 value: 1 value: 89. "=> 11 "
fn value: 1 value: 1 value: 90. "=> false "
| fibGen fn |
fibGen := [:fst :snd |
Generator on: [:g |
| a b |
a := fst. b := snd.
g yield: a. [b := a+b. g yield: (a := b-a)] repeat
]
].
fn := [:A :B :C |
| count fib last |
count := 1. fib := fibGen value: A value: B.
[(last := fib next) < C] whileTrue: [count := count + 1].
last = C ifTrue: [count] ifFalse: [false]
].
fn value: 1 value: 1 value: 89. "=> 11 "
fn value: 1 value: 1 value: 90. "=> false "
227デフォルトの名無しさん
2018/11/06(火) 14:46:16.34ID:GFB90oOd Haskell
main = mapM_
(\x -> putStr (show x ++ ":") >> print (fibin 0 1 x))
[0..6]
fibin 0 0 c | c /= 0 = Nothing
fibin a b c = lookup c $
zip (take (10 + c) fib) [1..]
where fib = a:b:(zipWith (+) fib (tail fib))
main = mapM_
(\x -> putStr (show x ++ ":") >> print (fibin 0 1 x))
[0..6]
fibin 0 0 c | c /= 0 = Nothing
fibin a b c = lookup c $
zip (take (10 + c) fib) [1..]
where fib = a:b:(zipWith (+) fib (tail fib))
228デフォルトの名無しさん
2018/11/06(火) 18:51:28.38ID:2YnZy0Ze >>214 ruby
https://ideone.com/Q6aVfo
AとB足してゼロ問題に対しては
fib = ->a, b {Enumerator.new {|y| loop {y << a; a, b = b, a + b; break if b == 0}}}
https://ideone.com/Q6aVfo
AとB足してゼロ問題に対しては
fib = ->a, b {Enumerator.new {|y| loop {y << a; a, b = b, a + b; break if b == 0}}}
229デフォルトの名無しさん
2018/11/06(火) 22:17:30.30ID:Nv8RqtnA お題
xy平面上の点がn+1個与えられる(各点のx座標は互いに異なる)
与えられた点をすべて通る関数 y=a[i]x^n+...+a[1]x+a[0] の係数a[i]を求めよ
[入力]
点の個数(n+1)
x[0] y[0]
...
x[n] y[n]
[出力]
a[n] ... a[0]
2
0 1
1 3
=> 2 1 (y=2x+1)
1
100 100
=> 100
5
0 1
-1 5
2 2
4 -1
1 0
=> -2/15 4/15 49/30 -83/30 1
xy平面上の点がn+1個与えられる(各点のx座標は互いに異なる)
与えられた点をすべて通る関数 y=a[i]x^n+...+a[1]x+a[0] の係数a[i]を求めよ
[入力]
点の個数(n+1)
x[0] y[0]
...
x[n] y[n]
[出力]
a[n] ... a[0]
2
0 1
1 3
=> 2 1 (y=2x+1)
1
100 100
=> 100
5
0 1
-1 5
2 2
4 -1
1 0
=> -2/15 4/15 49/30 -83/30 1
230デフォルトの名無しさん
2018/11/06(火) 23:24:52.38ID:bpzsP6yI 【ラグランジュ補間】
Σ[i=1,n] )y[i]Π[k≠i](x-x[k])/ (x[i]-x[k])
この係数を計算するだけ。
こういう純数学的な処理は、お題としてはどうかな?
応用上、常に展開した係数を求めるのに意味がある
とも限らんし、精度評価が重要だったりとか
Σ[i=1,n] )y[i]Π[k≠i](x-x[k])/ (x[i]-x[k])
この係数を計算するだけ。
こういう純数学的な処理は、お題としてはどうかな?
応用上、常に展開した係数を求めるのに意味がある
とも限らんし、精度評価が重要だったりとか
231デフォルトの名無しさん
2018/11/06(火) 23:43:20.04ID:iVEsbroy >>229
線形代数は偉大
import numpy as np
N = int(input())
x, y = [], []
for i in range(N):
_x, _y = map(float, input().split())
x.append(_x)
y.append(_y)
x = np.array(x)
y = np.array(y)
px = np.array([x**k for k in range(N)])
a = np.dot(y, np.linalg.inv(px))
print(a[::-1])
線形代数は偉大
import numpy as np
N = int(input())
x, y = [], []
for i in range(N):
_x, _y = map(float, input().split())
x.append(_x)
y.append(_y)
x = np.array(x)
y = np.array(y)
px = np.array([x**k for k in range(N)])
a = np.dot(y, np.linalg.inv(px))
print(a[::-1])
232デフォルトの名無しさん
2018/11/06(火) 23:51:57.59ID:bpzsP6yI [1 x[0] x[0]^2...x[0]^n] [a[n]] =[y[0]]
[1 x[1] x[1]^2... x[1]^n] [a[n-1]]=[y[1]
[1 x[2] x[2]^2...x[2]^n] [a[n-2]]=[y[2]]
...
[1 x[n] x[n]^2 .... x[n]^n] [a[0] ]=[y[n]]
を解かせたというわけか...
[1 x[1] x[1]^2... x[1]^n] [a[n-1]]=[y[1]
[1 x[2] x[2]^2...x[2]^n] [a[n-2]]=[y[2]]
...
[1 x[n] x[n]^2 .... x[n]^n] [a[0] ]=[y[n]]
を解かせたというわけか...
233デフォルトの名無しさん
2018/11/07(水) 00:03:06.07ID:q3WQuIHF また数学板から荒らしにきたのか
234デフォルトの名無しさん
2018/11/07(水) 00:56:30.16ID:yYgCxC/p お題: 四則演算の文字列を受け取って計算結果を返す
1+2+3+4
=> 10
4+5*6-2*3
=> 28
5+12*(2+9/3)/((2+3)*5-7*3)
=> 20
1+2+3+4
=> 10
4+5*6-2*3
=> 28
5+12*(2+9/3)/((2+3)*5-7*3)
=> 20
235デフォルトの名無しさん
2018/11/07(水) 00:58:06.61ID:B66LtM9k >>229 Ruby
s = ->a, b{a.zip(b).map{|i, j| i - j}}
t = ->a, k{a.map{|i| i * k}}
n = gets.to_i - 1
m = $<.read.split($/).map{|e| f[n, *e.split.map(&:to_r)]}
(1..n+1).each do |r|
(nonzero = m[r- 1..-1].find_index{|e| e[r].nonzero?} + r - 1) && next
m[r - 1], m[nonzero] = m[nonzero], m[r - 1]
m[r - 1] = t[m[r - 1], 1/m[r - 1][r]]
[*[*(0..n)] - [r - 1]].each{|i| m[i] = s[m[i], t[m[r - 1], m[i][r]/m[r - 1][r]]]}
end
puts m.transpose[0].map{|i| i.denominator == 1 ? i.to_i : i} * ' '
2
0 1
1 3
#=> 2 1 (y=2x+1)
3
1 1 1 1
5 4 2 1
8 9 3 1
#=> -1/2 11/2 -4
s = ->a, b{a.zip(b).map{|i, j| i - j}}
t = ->a, k{a.map{|i| i * k}}
n = gets.to_i - 1
m = $<.read.split($/).map{|e| f[n, *e.split.map(&:to_r)]}
(1..n+1).each do |r|
(nonzero = m[r- 1..-1].find_index{|e| e[r].nonzero?} + r - 1) && next
m[r - 1], m[nonzero] = m[nonzero], m[r - 1]
m[r - 1] = t[m[r - 1], 1/m[r - 1][r]]
[*[*(0..n)] - [r - 1]].each{|i| m[i] = s[m[i], t[m[r - 1], m[i][r]/m[r - 1][r]]]}
end
puts m.transpose[0].map{|i| i.denominator == 1 ? i.to_i : i} * ' '
2
0 1
1 3
#=> 2 1 (y=2x+1)
3
1 1 1 1
5 4 2 1
8 9 3 1
#=> -1/2 11/2 -4
236デフォルトの名無しさん
2018/11/07(水) 01:00:36.71ID:B66LtM9k237デフォルトの名無しさん
2018/11/07(水) 01:50:15.65ID:B66LtM9k >>234
ruby -nle'puts [$_,eval($_)]*" => "'
1+2+3+4 => 10
4+5*6-2*3 => 28
5+12*(2+9/3)/((2+3)*5-7*3) => 20
ruby -nle'puts [$_,eval($_)]*" => "'
1+2+3+4 => 10
4+5*6-2*3 => 28
5+12*(2+9/3)/((2+3)*5-7*3) => 20
238デフォルトの名無しさん
2018/11/07(水) 02:11:40.28ID:B66LtM9k >>235 訂正
s = ->a, b{a.zip(b).map{|i, j| i - j}}
t = ->a, k{a.map{|i| i * k}}
n = gets.to_i
m = $<.read.split($/).map{|e| f[n + 1, *e.split.map(&:to_r)]}
n.times do |r|
(nonzero = m[r..-1].find_index{|e| e[r].nonzero?} + r) || next
m[r], m[nonzero] = t[m[nonzero], 1/m[nonzero][r + 1]], m[r]
[*[*(0..n + 1)] - [r]].each{|i| m[i] = s[m[i], t[m[r], m[i][r + 1]/m[r][r + 1]]]}
end
puts m.transpose[0].map{|i| i.denominator == 1 ? i.to_i : i} * ' '
s = ->a, b{a.zip(b).map{|i, j| i - j}}
t = ->a, k{a.map{|i| i * k}}
n = gets.to_i
m = $<.read.split($/).map{|e| f[n + 1, *e.split.map(&:to_r)]}
n.times do |r|
(nonzero = m[r..-1].find_index{|e| e[r].nonzero?} + r) || next
m[r], m[nonzero] = t[m[nonzero], 1/m[nonzero][r + 1]], m[r]
[*[*(0..n + 1)] - [r]].each{|i| m[i] = s[m[i], t[m[r], m[i][r + 1]/m[r][r + 1]]]}
end
puts m.transpose[0].map{|i| i.denominator == 1 ? i.to_i : i} * ' '
239デフォルトの名無しさん
2018/11/07(水) 12:58:28.67ID:jk7t6Ngg >>229 Squeak Smalltalk
| fn |
fn := [:points |
| xs ys fi gi |
xs := points collect: #x.
ys := points collect: #y.
fi := [:x :i | ((1 to: xs size) copyWithout: i) inject: 1 into: [:prod :k | prod * (x - (xs at: k))]].
gi := [:i |
(0 to: xs size - 1) collect: [:n | n = 0 ifTrue: [1] ifFalse: [
(Array streamContents: [:ss |
(xs copyWithoutIndex: i) combinations: n atATimeDo: [:comb |
ss nextPut: (comb negated reduce: #*)]
]
) sum
]]
].
(ys * ((1 to: xs size) collect: gi) / (xs collectWithIndex: fi)) sum
].
fn value: {0@1. 1@3}. "=> #(2 1) "
fn value: {100@100}. "=> #(100) "
fn value: {0@1. -1@5. 2@2. 4@ -1. 1@0}. "=> {(-2/15) . (4/15) . (49/30) . (-83/30) . 1} "
| fn |
fn := [:points |
| xs ys fi gi |
xs := points collect: #x.
ys := points collect: #y.
fi := [:x :i | ((1 to: xs size) copyWithout: i) inject: 1 into: [:prod :k | prod * (x - (xs at: k))]].
gi := [:i |
(0 to: xs size - 1) collect: [:n | n = 0 ifTrue: [1] ifFalse: [
(Array streamContents: [:ss |
(xs copyWithoutIndex: i) combinations: n atATimeDo: [:comb |
ss nextPut: (comb negated reduce: #*)]
]
) sum
]]
].
(ys * ((1 to: xs size) collect: gi) / (xs collectWithIndex: fi)) sum
].
fn value: {0@1. 1@3}. "=> #(2 1) "
fn value: {100@100}. "=> #(100) "
fn value: {0@1. -1@5. 2@2. 4@ -1. 1@0}. "=> {(-2/15) . (4/15) . (49/30) . (-83/30) . 1} "
240デフォルトの名無しさん
2018/11/07(水) 13:01:59.20ID:jk7t6Ngg >>229 Pharo Smalltalk w/PolyMath >>231っぽく
"Metacello new
repository: 'github://PolyMathOrg/PolyMath:master/src';
baseline: 'PolyMath';
load"
| fn |
fn := [:points |
| xs ys xp |
xs := points collect: #x.
ys := points collect: #y.
xp := (PMMatrix rows: ((xs size - 1 to: 0 by: -1) collect: [:m | xs raisedTo: m])) transpose.
(xp inverse * ys asPMVector) asArray
].
fn value: {0@1. 1@3}. "=> #(2 1) "
fn value: {100@100}. "=> #(100) "
fn value: {0@1. -1@5. 2@2. 4@ -1. 1@0}. "=> {(-2/15) . (4/15) . (49/30) . (-83/30) . 1} "
"Metacello new
repository: 'github://PolyMathOrg/PolyMath:master/src';
baseline: 'PolyMath';
load"
| fn |
fn := [:points |
| xs ys xp |
xs := points collect: #x.
ys := points collect: #y.
xp := (PMMatrix rows: ((xs size - 1 to: 0 by: -1) collect: [:m | xs raisedTo: m])) transpose.
(xp inverse * ys asPMVector) asArray
].
fn value: {0@1. 1@3}. "=> #(2 1) "
fn value: {100@100}. "=> #(100) "
fn value: {0@1. -1@5. 2@2. 4@ -1. 1@0}. "=> {(-2/15) . (4/15) . (49/30) . (-83/30) . 1} "
241デフォルトの名無しさん
2018/11/07(水) 18:36:22.03ID:LRSzKna1 お題
Windows bitmap画像(.bmp)は通常、下から上に向かって画像が記録されているが、
高さに負の値を指定することで、上から下へ向かって画像を記録することができる。
これを利用してbmp画像の上下を反転せよ。
Windows bitmap画像(.bmp)は通常、下から上に向かって画像が記録されているが、
高さに負の値を指定することで、上から下へ向かって画像を記録することができる。
これを利用してbmp画像の上下を反転せよ。
242デフォルトの名無しさん
2018/11/07(水) 18:45:22.44ID:oTVd6hn3 どこが問題なのw
仕様に沿った解決法言っちゃってるじゃんw
仕様に沿った解決法言っちゃってるじゃんw
243219
2018/11/07(水) 19:20:37.53ID:bimd4khF >>242
プログラムを作るのがお題だろう。
ここはプログラミングのお題スレなんだからこれでいいんだよ。
むしろ人がある程度プログラムの仕様を考えなければならないような数学問題みたいなやつがダメなお題。
プログラムを作るのがお題だろう。
ここはプログラミングのお題スレなんだからこれでいいんだよ。
むしろ人がある程度プログラムの仕様を考えなければならないような数学問題みたいなやつがダメなお題。
244デフォルトの名無しさん
2018/11/07(水) 19:56:07.71ID:5DjOPE5m >>241 Ruby
in_fname = 'hoge.bmp'
out_fname = 'hoge_ud.bmp'
File.binwrite(out_fname, File.binread(in_fname).tap{|b| b[22, 4] = [-b[22, 4].unpack(?l).pop].pack(?l))
in_fname = 'hoge.bmp'
out_fname = 'hoge_ud.bmp'
File.binwrite(out_fname, File.binread(in_fname).tap{|b| b[22, 4] = [-b[22, 4].unpack(?l).pop].pack(?l))
245デフォルトの名無しさん
2018/11/07(水) 20:06:47.46ID:umLQTzF1246デフォルトの名無しさん
2018/11/07(水) 20:14:12.09ID:Lazgvcn1247219
2018/11/07(水) 21:05:56.46ID:bimd4khF248デフォルトの名無しさん
2018/11/07(水) 21:15:41.59ID:wOCAlbJb まあ式を実装するだけの数学問題と大差ないお題にしてしまうような要素は不要だったな
249デフォルトの名無しさん
2018/11/07(水) 21:15:43.65ID:h4FWJh3K250デフォルトの名無しさん
2018/11/07(水) 21:17:30.61ID:h4FWJh3K そう考えると、プログラミングの能力って言語覚えるより問題を理解する能力だよな。。。
251デフォルトの名無しさん
2018/11/07(水) 22:05:04.79ID:DuFCNJWg 噛み砕くとこうだな
ファイルの22バイトめから保存されている4バイト長の整数値の符号を反転せよ。
ただし数値は下位バイトから順に格納されており、負数は2の補数表現を用いるものとする。
ファイルの22バイトめから保存されている4バイト長の整数値の符号を反転せよ。
ただし数値は下位バイトから順に格納されており、負数は2の補数表現を用いるものとする。
252デフォルトの名無しさん
2018/11/07(水) 22:06:17.13ID:DuFCNJWg 出力は反転した数値以外は元のファイルと同じ内容のファイルとする
も要るか
も要るか
254デフォルトの名無しさん
2018/11/07(水) 22:28:14.93ID:/kHK9X1+ それこそ数学の質問スレでやってくれない?
255デフォルトの名無しさん
2018/11/08(木) 03:03:27.47ID:yQlGi5bN >>243
>ここはプログラミングのお題スレなんだからこれでいいんだよ。
>むしろ人がある程度プログラムの仕様を考えなければならないような数学問題みたいなやつがダメなお題。
スレタイ『プログラマーは何を勉強すべきか?』
プログラマーは何を勉強すべきかということだが、最新のトレンドに適応した勉強が必要だ。
俺は今までこれだけ沢山勉強してきたという人も、実は最新のトレンドに適応していない可能性もある。
5、結論
以上の結果より導き出される京大英語で8割を超すための対策は、「ネイティブ英語とは何か」
を定義づけして学ぶことに尽きるだろう。
たとえば、「この料理はまずい」という英作文なら受験生に多いのが
This dish tastes poor.
しかし、これは評価されない。なぜなら、英語として正しくてもマナー違反。英検英語なら否定文にして、
This dish isn't good. これでマナーは改善された。
しかし、ネイティブなら I don't like this dish. と言うだろう。本当に不味い場合は、
Yuck! と叫ぶ。そういう違いだ。
問題は、
「受験英語の参考書や問題集で取り上げられている構文や表現が現実に使われている英語と違う」
という事実。それを指導している教師や講師も、外国生活がなく50年前の表現を気づかずに指導して
いること。そのために、校内テストや模試で高得点や上位の順位をとっても落ちてしまうこと。
https://storys.jp/story/18159
>ここはプログラミングのお題スレなんだからこれでいいんだよ。
>むしろ人がある程度プログラムの仕様を考えなければならないような数学問題みたいなやつがダメなお題。
スレタイ『プログラマーは何を勉強すべきか?』
プログラマーは何を勉強すべきかということだが、最新のトレンドに適応した勉強が必要だ。
俺は今までこれだけ沢山勉強してきたという人も、実は最新のトレンドに適応していない可能性もある。
5、結論
以上の結果より導き出される京大英語で8割を超すための対策は、「ネイティブ英語とは何か」
を定義づけして学ぶことに尽きるだろう。
たとえば、「この料理はまずい」という英作文なら受験生に多いのが
This dish tastes poor.
しかし、これは評価されない。なぜなら、英語として正しくてもマナー違反。英検英語なら否定文にして、
This dish isn't good. これでマナーは改善された。
しかし、ネイティブなら I don't like this dish. と言うだろう。本当に不味い場合は、
Yuck! と叫ぶ。そういう違いだ。
問題は、
「受験英語の参考書や問題集で取り上げられている構文や表現が現実に使われている英語と違う」
という事実。それを指導している教師や講師も、外国生活がなく50年前の表現を気づかずに指導して
いること。そのために、校内テストや模試で高得点や上位の順位をとっても落ちてしまうこと。
https://storys.jp/story/18159
256デフォルトの名無しさん
2018/11/08(木) 03:57:11.05ID:AySxWi85 「この料理はまずい」の時点でマナー違反なんだからそのまま訳すのが正しい
料理がまずいときの一言を答えさせたいならそう出題すればいいことだ
そういう出題側の質とか意識してんのかなこいつ
料理がまずいときの一言を答えさせたいならそう出題すればいいことだ
そういう出題側の質とか意識してんのかなこいつ
257デフォルトの名無しさん
2018/11/08(木) 04:48:49.11ID:QHwNiY6E 数学のように、頭の中で正しいかどうかを、証明するような問題は、面倒くさい。
このスレでは、頭を使わず、単純な総当たり問題が好まれる
その方が、プログラミング的な問題
このスレでは、頭を使わず、単純な総当たり問題が好まれる
その方が、プログラミング的な問題
258デフォルトの名無しさん
2018/11/08(木) 05:18:56.02ID:HOEn5tLb お題:
自然数Nと、N個の「半角の小文字アルファベットと数字からなる1文字以上の文字列」が標準入力から順次与えられます。
文字列をNatural Sort*して標準出力から順次出力してください。
追加問題:
お題1を正規表現を使わず実装してください。
*:
"a120"と"a13"が与えられた場合、"a13","a120"の順番にソートするようにする。
また、今回は"a01"と"a1"が与えられた場合、連続する数字が少ない方を先にする、すなわち"a1","a01"の順になるようにするものとし、
"0"と"a"のどちらが先に来るかについては自由とします。
自然数Nと、N個の「半角の小文字アルファベットと数字からなる1文字以上の文字列」が標準入力から順次与えられます。
文字列をNatural Sort*して標準出力から順次出力してください。
追加問題:
お題1を正規表現を使わず実装してください。
*:
"a120"と"a13"が与えられた場合、"a13","a120"の順番にソートするようにする。
また、今回は"a01"と"a1"が与えられた場合、連続する数字が少ない方を先にする、すなわち"a1","a01"の順になるようにするものとし、
"0"と"a"のどちらが先に来るかについては自由とします。
259デフォルトの名無しさん
2018/11/08(木) 05:51:13.63ID:yQlGi5bN >>257
>数学のように、頭の中で正しいかどうかを、証明するような問題は、面倒くさい。
>このスレでは、頭を使わず、単純な総当たり問題が好まれる
ならば、「チンポがシコシコする」という日本語表現は、文法的に正しいのか?
チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。
オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンボ)が別々になっている場合とが考えられる。けれども「チンボ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。
違うか?
「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
>数学のように、頭の中で正しいかどうかを、証明するような問題は、面倒くさい。
>このスレでは、頭を使わず、単純な総当たり問題が好まれる
ならば、「チンポがシコシコする」という日本語表現は、文法的に正しいのか?
チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。
オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンボ)が別々になっている場合とが考えられる。けれども「チンボ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。
違うか?
「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
260デフォルトの名無しさん
2018/11/08(木) 07:42:34.26ID:Tu3rCJEk >>257
まあそうなんだけど、数学スレでガンガンプログラミング言語で答え出してる奴がいて正直羨ましい。
まあそうなんだけど、数学スレでガンガンプログラミング言語で答え出してる奴がいて正直羨ましい。
261デフォルトの名無しさん
2018/11/08(木) 09:21:24.69ID:UCtqQ5sl なぜそのスレで頑張らないのか。
二軍でヒーローになろうと思ってここで数学の問題出してるの?
二軍でヒーローになろうと思ってここで数学の問題出してるの?
262デフォルトの名無しさん
2018/11/08(木) 09:28:43.02ID:Tu3rCJEk ?
私は出題者じゃ無いよ。
私は出題者じゃ無いよ。
263デフォルトの名無しさん
2018/11/08(木) 09:57:33.73ID:2oWgTmr1264デフォルトの名無しさん
2018/11/08(木) 09:57:41.43ID:llemawmF265デフォルトの名無しさん
2018/11/08(木) 10:23:04.41ID:Cbg63GbQ >>259
君が何を言いたいのかよくわからない。
君が何を言いたいのかよくわからない。
266デフォルトの名無しさん
2018/11/08(木) 10:34:41.85ID:yQlGi5bN >>265
『チンポ』についての生態学は、俺にもよくわからん。
『チンポ』についての生態学は、俺にもよくわからん。
267デフォルトの名無しさん
2018/11/08(木) 11:03:16.65ID:WO5MlDuJ >>258 Ruby
puts$<.readlines.sort_by{|a|[a.scan(/\d+|\D+/).map{|e|e.to_i(36)},a.size]}
puts$<.readlines.sort_by{|a|[a.scan(/\d+|\D+/).map{|e|e.to_i(36)},a.size]}
268デフォルトの名無しさん
2018/11/08(木) 14:52:40.11ID:9PdT3eEJ269デフォルトの名無しさん
2018/11/08(木) 15:03:35.30ID:5p9g1xrz270デフォルトの名無しさん
2018/11/08(木) 15:08:17.09ID:9PdT3eEJ271デフォルトの名無しさん
2018/11/08(木) 15:11:12.86ID:5p9g1xrz272デフォルトの名無しさん
2018/11/08(木) 15:11:38.15ID:rrpg0ZUw273デフォルトの名無しさん
2018/11/08(木) 15:14:27.12ID:tjdDhH3P274デフォルトの名無しさん
2018/11/08(木) 15:33:18.20ID:quzojjRV ソートの問題、
連続する数字はその連を数値として比較しつつ同じ数値のときは桁数少を前としているわけだよな
つまり
a01a
a1b
a01b
をソートすると
a01a
a1b
a01b
連続する数字はその連を数値として比較しつつ同じ数値のときは桁数少を前としているわけだよな
つまり
a01a
a1b
a01b
をソートすると
a01a
a1b
a01b
275デフォルトの名無しさん
2018/11/08(木) 16:29:56.18ID:Tu3rCJEk >>258
Haskell
main = concat $ map qsort grop
grop = map filterlen [1..(maximum $ map length input)]
filterlen n = filter (\x -> n == length x) input
qsort [] = []
qsort (x:xs) = small ++ [x] ++ big
where small = qsort [a |a <- xs, a <= x]
big = qsort [a | a <- xs, a > x]
input = ["a130","a12","a001","a01","a1","1"]
Haskell
main = concat $ map qsort grop
grop = map filterlen [1..(maximum $ map length input)]
filterlen n = filter (\x -> n == length x) input
qsort [] = []
qsort (x:xs) = small ++ [x] ++ big
where small = qsort [a |a <- xs, a <= x]
big = qsort [a | a <- xs, a > x]
input = ["a130","a12","a001","a01","a1","1"]
276デフォルトの名無しさん
2018/11/08(木) 16:31:19.84ID:Tu3rCJEk input = ["a130","a12","a001","a01","a1","1"]
277デフォルトの名無しさん
2018/11/08(木) 18:41:10.95ID:e5hl87sZ278デフォルトの名無しさん
2018/11/08(木) 18:52:29.20ID:B0s1LWLV279デフォルトの名無しさん
2018/11/08(木) 19:15:05.42ID:85A5tG8V お題
M行N列の領域をジグザグスキャンするときの順序を求めよ
3 3
=>
1 2 6
3 5 7
4 8 9
4 2
=>
1 2
3 5
4 6
7 8
3 5
=>
01 02 06 07 12
03 05 08 11 13
04 09 10 14 15
1 8
=>
1 2 3 4 5 6 7 8
M行N列の領域をジグザグスキャンするときの順序を求めよ
3 3
=>
1 2 6
3 5 7
4 8 9
4 2
=>
1 2
3 5
4 6
7 8
3 5
=>
01 02 06 07 12
03 05 08 11 13
04 09 10 14 15
1 8
=>
1 2 3 4 5 6 7 8
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】日本代表MF 中村敬斗 ボリビア戦のスーパーゴールに「惚れるわ」「痺れる程のゴールこれでご飯何杯いけるのよ」 [阿弥陀ヶ峰★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「クマはなるべく山に返す努力を」「クマと戦争は間違っている」動物保護活動家の主張 棲み分けと学習放獣でクマ被害なくなるのか?★7 [ぐれ★]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 【悲報】大分市佐賀関の火事、20軒→170軒に延焼🔥 [481941988]
- 自閉症が「んなっしょい」と連呼するお🏡
- 日本人の海外旅行したきのマナーよくなったのはいつから
- へそグリグリ
- 結婚しないやつは異性は嫌いなの?
