プログラミングのお題スレです。
【出題と回答例】
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/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part19
https://mevius.5ch.net/test/read.cgi/tech/1606662245/
探検
プログラミングのお題スレ Part20
レス数が1000を超えています。これ以上書き込みはできません。
2021/06/19(土) 00:02:57.84ID:MQWrKSb7
2021/06/19(土) 00:37:51.46ID:qGn/On1S
>>1
オツ
オツ
>>1
お疲れ様です
お疲れ様です
2021/06/19(土) 09:51:25.47ID:bhsM+Hmb
2021/06/19(土) 11:32:47.24ID:HedGQGNJ
部分解答可
1. クリップボードの内容を取得
2. 現在の日時を次のように出力する 2021/06/19/第3土曜日/10:19/
前スレ参照
#!/bin/sh
for num in "896" "967" "968" "972" "975" "977-982" "994" "996"
do
firefox $( echo '/5422666061/hcet/igc.daer/tset/ten.hc5.suivem//:sptth' | rev )$num
sleep 30
done
3. 現在の日時、キーワード、クリップボードの内容を1行にして指定のファイルに追記。キーワードはプログラム実行時にキーボード入力する。
4. 今日が第3土曜日なら指定の画像ファイルを表示
1. クリップボードの内容を取得
2. 現在の日時を次のように出力する 2021/06/19/第3土曜日/10:19/
前スレ参照
#!/bin/sh
for num in "896" "967" "968" "972" "975" "977-982" "994" "996"
do
firefox $( echo '/5422666061/hcet/igc.daer/tset/ten.hc5.suivem//:sptth' | rev )$num
sleep 30
done
3. 現在の日時、キーワード、クリップボードの内容を1行にして指定のファイルに追記。キーワードはプログラム実行時にキーボード入力する。
4. 今日が第3土曜日なら指定の画像ファイルを表示
2021/06/19(土) 11:34:07.84ID:HedGQGNJ
解答例
#!/bin/sh
# 1
clipb=$(xclip -o)
# 2
day=$(date "+%e")
num=$(( ($day + 6) / 7 ))
today=$( date "+%Y/%m/%d/"第$num"$(date +%a)"曜日"/%H:%M/" )
# 3 キーボード入力した文字列を変数ahaに入れる
read -p "キーワードを入力してください:" aha
# trコマンドを使ってクリップボードにコピペした文章から改行文字\nを削除
copipe=$( echo "$today *$aha $clipb" | tr --delete '\n' )
# >>は追記、>は上書きしてしまうので注意
echo "$copipe" >> "$HOME/Documents/memo.txt"
# backディレクトリの中にmemoディレクトリを作成
# --parentsは指定の親ディレクトリbakが存在しない場合に作成してくれるオプション引数、mkdir -pでもOK
mkdir --parents "$HOME/Documents/bak/memo/"
cp --backup "$HOME/Documents/memo.txt" "$HOME/Documents/bak/memo/"
xdg-open "$HOME/Documents/memo.txt"
# 4 xdg-openは既定のアプリを起動するコマンド
if [ $( echo $today | grep "第3土曜日" ) ] ; then
xdg-open "$HOME/Pictures/image.jpg"
sleep 10 ; exit
fi
#!/bin/sh
# 1
clipb=$(xclip -o)
# 2
day=$(date "+%e")
num=$(( ($day + 6) / 7 ))
today=$( date "+%Y/%m/%d/"第$num"$(date +%a)"曜日"/%H:%M/" )
# 3 キーボード入力した文字列を変数ahaに入れる
read -p "キーワードを入力してください:" aha
# trコマンドを使ってクリップボードにコピペした文章から改行文字\nを削除
copipe=$( echo "$today *$aha $clipb" | tr --delete '\n' )
# >>は追記、>は上書きしてしまうので注意
echo "$copipe" >> "$HOME/Documents/memo.txt"
# backディレクトリの中にmemoディレクトリを作成
# --parentsは指定の親ディレクトリbakが存在しない場合に作成してくれるオプション引数、mkdir -pでもOK
mkdir --parents "$HOME/Documents/bak/memo/"
cp --backup "$HOME/Documents/memo.txt" "$HOME/Documents/bak/memo/"
xdg-open "$HOME/Documents/memo.txt"
# 4 xdg-openは既定のアプリを起動するコマンド
if [ $( echo $today | grep "第3土曜日" ) ] ; then
xdg-open "$HOME/Pictures/image.jpg"
sleep 10 ; exit
fi
2021/06/19(土) 11:53:11.09ID:wmUlN/CJ
まだやってるのか
2021/06/21(月) 21:15:15.50ID:h4Y3M1Y8
0 と "n + 1" を任意に定義して自然数を作り、
足し算と掛け算を実装せよ
なお "n + 1" は次を満たすこと
・ n + 1 == m + 1 ⇒ n == m
・ n が自然数 ⇒ n + 1 は自然数
・ n が自然数 ⇒ n + 1 != 0
足し算と掛け算を実装せよ
なお "n + 1" は次を満たすこと
・ n + 1 == m + 1 ⇒ n == m
・ n が自然数 ⇒ n + 1 は自然数
・ n が自然数 ⇒ n + 1 != 0
9デフォルトの名無しさん
2021/06/22(火) 13:23:44.46ID:VRgeVVL3 お題
リストを受け取って、重複のないリストに分割してください
入力:[b,d,e,c,b,a,a,d,d,a]
出力:[a,b,c,d,e],[a,b,d],[a,d]
リストを受け取って、重複のないリストに分割してください
入力:[b,d,e,c,b,a,a,d,d,a]
出力:[a,b,c,d,e],[a,b,d],[a,d]
10デフォルトの名無しさん
2021/06/22(火) 14:29:49.78ID:q0OZcNy5 「すいませーん パンください」
「なんだとー!パンクはダサくねえ!」
「なんだとー!パンクはダサくねえ!」
11デフォルトの名無しさん
2021/06/22(火) 18:35:38.31ID:3KNNvFBI >>9
Ruby
s = "b,d,e,c,b,a,a,d,d,a".split(",")
t = s.group_by{_1}.values.map{(_1 + [nil] * s.size).take(s.size)}.transpose.map{_1.compact}.reject{_1 == []}
p t
[["b", "d", "e", "c", "a"], ["b", "d", "a"], ["d", "a"]]
Ruby
s = "b,d,e,c,b,a,a,d,d,a".split(",")
t = s.group_by{_1}.values.map{(_1 + [nil] * s.size).take(s.size)}.transpose.map{_1.compact}.reject{_1 == []}
p t
[["b", "d", "e", "c", "a"], ["b", "d", "a"], ["d", "a"]]
2021/06/22(火) 18:38:56.74ID:3KNNvFBI
FBIだ
2021/06/22(火) 19:37:22.20ID:KgqIpy+v
>>9 Ruby
s = '[b,d,e,c,b,a,a,d,d,a]'
a = s.gsub(/[\[\]]/,'').split(',').sort
ans = []
while (u = a.uniq).empty?.!
ans << u
u.each{|x| a.delete_at( a.index(x) ) }
end
puts "[" + ans.map{|x| x * ','} * '],[' + "]" #=> [a,b,c,d,e],[a,b,d],[a,d]
s = '[b,d,e,c,b,a,a,d,d,a]'
a = s.gsub(/[\[\]]/,'').split(',').sort
ans = []
while (u = a.uniq).empty?.!
ans << u
u.each{|x| a.delete_at( a.index(x) ) }
end
puts "[" + ans.map{|x| x * ','} * '],[' + "]" #=> [a,b,c,d,e],[a,b,d],[a,d]
2021/06/23(水) 00:49:21.38ID:1nP79viV
>>9
haskell
iimport Data.List
splitSet = transpose . group . sort
main = print $ splitSet $ "bdecbaadda"
----
["abcde","abd","ad"]
haskell
iimport Data.List
splitSet = transpose . group . sort
main = print $ splitSet $ "bdecbaadda"
----
["abcde","abd","ad"]
2021/06/23(水) 01:16:40.91ID:P132dmNh
>>9
python
li = ["b","d","e","c","b","a","a","d","d","a"]
t = 0
while len(li) != 0:
__s = list(set(li))
__print(s)
__for x in s: li.remove(x)
前から順番に重複がないように分割した
li = ["b","d","e","c","b","a","a","d","d","a"]
t = 0
for i in range(len(li)):
__if t>i: continue
__ for j, x in enumerate(li[i:]):
____if j==0: continue
____if x in li[i:i+j]:
______print(x,li[i:i+j])
______t = i+j
______break
else: print(li[t:])
python
li = ["b","d","e","c","b","a","a","d","d","a"]
t = 0
while len(li) != 0:
__s = list(set(li))
__print(s)
__for x in s: li.remove(x)
前から順番に重複がないように分割した
li = ["b","d","e","c","b","a","a","d","d","a"]
t = 0
for i in range(len(li)):
__if t>i: continue
__ for j, x in enumerate(li[i:]):
____if j==0: continue
____if x in li[i:i+j]:
______print(x,li[i:i+j])
______t = i+j
______break
else: print(li[t:])
2021/06/23(水) 03:03:47.96ID:yaBz/mVt
何分割するか指定がないんだからこれで十分だよね
s = "b,d,e,c,b,a,a,d,d,a".split(",")
puts s.map{|e| "[#{e}]" }.join(",")
出力: [b],[d],[e],[c],[b],[a],[a],[d],[d],[a]
s = "b,d,e,c,b,a,a,d,d,a".split(",")
puts s.map{|e| "[#{e}]" }.join(",")
出力: [b],[d],[e],[c],[b],[a],[a],[d],[d],[a]
17デフォルトの名無しさん
2021/06/23(水) 19:57:35.36ID:PDI/0UM/18デフォルトの名無しさん
2021/06/23(水) 19:59:10.71ID:VBbwJDrL 指定は無いがそうすると自明になりつまんなくなる、
つまり問題としてwell-definedじゃなくなるから、Ruby使ってる人は空気と行間を読む訓練をした方がいい
つまり問題としてwell-definedじゃなくなるから、Ruby使ってる人は空気と行間を読む訓練をした方がいい
2021/06/23(水) 20:41:17.73ID:N3JUxele
皮肉を理解できないのは統合失調症の症状だそうで
2021/06/23(水) 23:35:40.56ID:gV4gb+yX
お題
正整数2つを入力として、それらの商を互いに異なる正整数の逆数の和で表せ
ただし、分母となる正整数の最大のものが極力小さくなるようにせよ
例
入力 37, 60
出力 37/60 = 1/4 + 1/5 + 1/6
入力 3,1
出力 3/1 = 1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/8 + 1/9 + 1/10 + 1/15 + 1/18 + 1/20 + 1/24
正整数2つを入力として、それらの商を互いに異なる正整数の逆数の和で表せ
ただし、分母となる正整数の最大のものが極力小さくなるようにせよ
例
入力 37, 60
出力 37/60 = 1/4 + 1/5 + 1/6
入力 3,1
出力 3/1 = 1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/8 + 1/9 + 1/10 + 1/15 + 1/18 + 1/20 + 1/24
21デフォルトの名無しさん
2021/06/24(木) 12:40:28.82ID:QkkrxV02 お題
月最後の金曜日をプレミアムフライデーといいますが
指定した年のプレミアムフライデー一覧を出力してください
入力: 2021
出力:
2021-01-29
2021-02-26
2021-03-26
2021-04-30
2021-05-28
2021-06-25
2021-07-30
2021-08-27
2021-09-24
2021-10-29
2021-11-26
2021-12-31
月最後の金曜日をプレミアムフライデーといいますが
指定した年のプレミアムフライデー一覧を出力してください
入力: 2021
出力:
2021-01-29
2021-02-26
2021-03-26
2021-04-30
2021-05-28
2021-06-25
2021-07-30
2021-08-27
2021-09-24
2021-10-29
2021-11-26
2021-12-31
22デフォルトの名無しさん
2021/06/24(木) 13:22:13.95ID:mpRYRE1b >>20
極小ってのはかんたんに分かるモンなの?
極小ってのはかんたんに分かるモンなの?
2021/06/24(木) 13:33:05.04ID:x/nvCroK
「極力小さく」だから
プログラマの能力でできる限り、
じゃないの?
プログラマの能力でできる限り、
じゃないの?
24デフォルトの名無しさん
2021/06/24(木) 14:07:33.05ID:mpRYRE1b 要するにこれエジプト分数だろ
極小かどうかが面倒くさい話だった
エジプト式分数 - Wikipedia
https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%B8%E3%83%97%E3%83%88%E5%BC%8F%E5%88%86%E6%95%B0
極小かどうかが面倒くさい話だった
エジプト式分数 - Wikipedia
https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%B8%E3%83%97%E3%83%88%E5%BC%8F%E5%88%86%E6%95%B0
2021/06/24(木) 19:38:29.60ID:XMpTcDaC
>>21 Ruby
require 'date'
y = 2021
12.times{|m|
d = Date.new( y, m+1 ).next_month().prev_day()
puts d.prev_day( (d.wday-5) % 7 ).strftime( '%F' )
}
require 'date'
y = 2021
12.times{|m|
d = Date.new( y, m+1 ).next_month().prev_day()
puts d.prev_day( (d.wday-5) % 7 ).strftime( '%F' )
}
2021/06/24(木) 19:39:02.06ID:XMpTcDaC
>>21 Ruby
y = 2021
w = Time.new( y ).wday
tbl = ( (y & 3) == 0 && (y % 100) != 0 || (y % 400) == 0 )?
[ [25,23,25,24,25,24,25,25,24,25,24,25], [2,1,5,3,0,5,2,6,4,1,6,3] ] :
[ [25,22,25,24,25,24,25,25,24,25,24,25], [2,2,6,4,1,6,3,0,5,2,0,4] ]
12.times{|m|
puts "%04d-%02d-%02d" % [ y, m+1, tbl[0][m] + ((tbl[1][m]-w) % 7) ]
}
y = 2021
w = Time.new( y ).wday
tbl = ( (y & 3) == 0 && (y % 100) != 0 || (y % 400) == 0 )?
[ [25,23,25,24,25,24,25,25,24,25,24,25], [2,1,5,3,0,5,2,6,4,1,6,3] ] :
[ [25,22,25,24,25,24,25,25,24,25,24,25], [2,2,6,4,1,6,3,0,5,2,0,4] ]
12.times{|m|
puts "%04d-%02d-%02d" % [ y, m+1, tbl[0][m] + ((tbl[1][m]-w) % 7) ]
}
27デフォルトの名無しさん
2021/06/24(木) 22:03:03.66ID:HCLTIuII >>21
Kotlin
https://paiza.io/projects/mOAfjYjLJx67zhwlGiIuJw
次の月の1日の曜日を求めてそこから何日引くかを計算して引いているだけ。
java.time.LocalDate クラス使っているので Java でも似たようなプログラムは作れると思う。
Kotlin
https://paiza.io/projects/mOAfjYjLJx67zhwlGiIuJw
次の月の1日の曜日を求めてそこから何日引くかを計算して引いているだけ。
java.time.LocalDate クラス使っているので Java でも似たようなプログラムは作れると思う。
2021/06/25(金) 05:25:13.97ID:RM7Ajj8i
>>5-6
# (コマンド),"文字列",(コマンド2) | パイプラインで渡されたコマンド実行結果や文字列を連結して1行の文字列にするJoin-String |
# 連結して1行にした文字列で変数初期化(Tee-Object -Variable 変数) | memo.txtに追記(Tee-Object -Append)
(Get-Date).ToString("yyyy/MM/dd/第"),
[Math]::Floor( ( (Get-Date).Day + 6 ) / 7 ).ToString(),
(Get-Date).ToString("dddd/HH:mm/"),
" #tag#", ( Read-Host "キーワードを入力" ), " ",
( Get-Clipboard ) | Join-String | Tee-Object -Variable kopipe |
Tee-Object -FilePath "$HOME/Documents/memo.txt" -Append
# memo.txtをバックアップ
Copy-Item -Path "$HOME/Documents/memo.txt" -Destination "$HOME/Documents/bak/memo_bak.txt"
# $kopipe = 2021/06/25/第4金曜日/ ###タグ
# 今日が"第4金曜日"なら何かをする
if ( $( Write-Output $kopipe | Select-String -Pattern "第4金曜日" ) ) {
Write-Host "PowerShell"
} else {
Write-Host "Shell Script"
}
# Visual Studio Codeでファイルを開く
code "$HOME/Documents/memo.txt"
# (コマンド),"文字列",(コマンド2) | パイプラインで渡されたコマンド実行結果や文字列を連結して1行の文字列にするJoin-String |
# 連結して1行にした文字列で変数初期化(Tee-Object -Variable 変数) | memo.txtに追記(Tee-Object -Append)
(Get-Date).ToString("yyyy/MM/dd/第"),
[Math]::Floor( ( (Get-Date).Day + 6 ) / 7 ).ToString(),
(Get-Date).ToString("dddd/HH:mm/"),
" #tag#", ( Read-Host "キーワードを入力" ), " ",
( Get-Clipboard ) | Join-String | Tee-Object -Variable kopipe |
Tee-Object -FilePath "$HOME/Documents/memo.txt" -Append
# memo.txtをバックアップ
Copy-Item -Path "$HOME/Documents/memo.txt" -Destination "$HOME/Documents/bak/memo_bak.txt"
# $kopipe = 2021/06/25/第4金曜日/ ###タグ
# 今日が"第4金曜日"なら何かをする
if ( $( Write-Output $kopipe | Select-String -Pattern "第4金曜日" ) ) {
Write-Host "PowerShell"
} else {
Write-Host "Shell Script"
}
# Visual Studio Codeでファイルを開く
code "$HOME/Documents/memo.txt"
2021/06/25(金) 05:30:47.47ID:RM7Ajj8i
using InteractiveUtils, Dates
# 1 clipboardの文字列に含まれる改行文字を半角スペースに変換
clipb = replace( clipboard(), "\n" => " " )
# 2 曜日名や月名を日本語で取得するための設定
# docs.julialang.org/en/v1/stdlib/Dates/#Query-Functions
japanese_months = [""] ; japanese_monts_abbrev = [""]
japanese_days = ["月曜日","火曜日","水曜日","木曜日","金曜日","土曜日","日曜日"]
Dates.LOCALES["nihongo"] = Dates.DateLocale(japanese_months, japanese_monts_abbrev, japanese_days, [""])
# 実行結果例:2021/06/25/第
year_month_day = Dates.format( now(), "yyyy/mm/dd/第" )
# floor( 3.9 )の実行結果は3.0でfloor( Int, 3.9 )の実行結果は3
第num = floor( Int, ( Dates.day( now() ) + 6 ) / 7 )
# 実行結果例:金/04:21/ 、locale="上で設定した名前"は曜日名を英語以外の言語で取得するためのオプション
youbi_time = Dates.format( now(), "E/HH:MM/" ; locale="nihongo" )
# 3.grepで一覧表示するときに使うハッシュタグを入力。grep ###5ch, grep ###日記, grep ###英語, grep ###エラー, grep /第2金曜日/")
print("タグを入力:") ; hashtag = readline()
from_year_to_hashtag = year_month_day * string(第num) * youbi_time * " ###" * hashtag
# Juliaで文字列連結は+ではなく*
# docs.julialang.org/en/v1/manual/faq/#Why-does-Julia-use-*-for-string-concatenation?-Why-not-or-something-else?
copipe = from_year_to_hashtag * " " * clipb * "\n"
# docs.julialang.org/en/v1/base/file/#Base.Filesystem.homedir
# docs.julialang.org/en/v1/base/io-network/#Base.open
# "a"はwrite(書き込み), create(作成), append(追記)
io = open( homedir() * "/Documents/memo.txt", "a" )
write( io, copipe )
close(io)
# 1 clipboardの文字列に含まれる改行文字を半角スペースに変換
clipb = replace( clipboard(), "\n" => " " )
# 2 曜日名や月名を日本語で取得するための設定
# docs.julialang.org/en/v1/stdlib/Dates/#Query-Functions
japanese_months = [""] ; japanese_monts_abbrev = [""]
japanese_days = ["月曜日","火曜日","水曜日","木曜日","金曜日","土曜日","日曜日"]
Dates.LOCALES["nihongo"] = Dates.DateLocale(japanese_months, japanese_monts_abbrev, japanese_days, [""])
# 実行結果例:2021/06/25/第
year_month_day = Dates.format( now(), "yyyy/mm/dd/第" )
# floor( 3.9 )の実行結果は3.0でfloor( Int, 3.9 )の実行結果は3
第num = floor( Int, ( Dates.day( now() ) + 6 ) / 7 )
# 実行結果例:金/04:21/ 、locale="上で設定した名前"は曜日名を英語以外の言語で取得するためのオプション
youbi_time = Dates.format( now(), "E/HH:MM/" ; locale="nihongo" )
# 3.grepで一覧表示するときに使うハッシュタグを入力。grep ###5ch, grep ###日記, grep ###英語, grep ###エラー, grep /第2金曜日/")
print("タグを入力:") ; hashtag = readline()
from_year_to_hashtag = year_month_day * string(第num) * youbi_time * " ###" * hashtag
# Juliaで文字列連結は+ではなく*
# docs.julialang.org/en/v1/manual/faq/#Why-does-Julia-use-*-for-string-concatenation?-Why-not-or-something-else?
copipe = from_year_to_hashtag * " " * clipb * "\n"
# docs.julialang.org/en/v1/base/file/#Base.Filesystem.homedir
# docs.julialang.org/en/v1/base/io-network/#Base.open
# "a"はwrite(書き込み), create(作成), append(追記)
io = open( homedir() * "/Documents/memo.txt", "a" )
write( io, copipe )
close(io)
2021/06/25(金) 05:33:54.12ID:RM7Ajj8i
# 4. 今日が第4金曜日なら指定の画像ファイルを表示。ゴミの日とかを登録しておくと便利。
# docs.julialang.org/en/v1/manual/control-flow/
if contains( from_year_to_hashtag, "第4金曜日" )
imagefile = homedir() * "/Pictures/image.jpg"
# docs.julialang.org/en/v1/manual/running-external-programs/
# xdg-openの部分はmspaintとかでもOK
run(`xdg-open $imagefile`)
else
println("5ch on")
end
# docs.julialang.org/en/v1/stdlib/REPL/#The-Julia-REPL
# 関数の説明と使用例は次のようにすれば見れるよ。
# julia>using Dates
# julia>? <- Enterキーは押さなくて良い
# help?>dまで入力した後にTabキーを2回押す
# help?>からjulia>に戻すにはBackSpaceキーを押す
# その他の使い方
# julia>usingの後に半角スペースを入力した後にTabキーを2回押してモジュール一覧表示
# julia>aを入力後にTabキーを2回押す
# julia>absの後に半角スペースを入力した後にTabキーを2回押して関数を一覧表示
# docs.julialang.org/en/v1/manual/control-flow/
if contains( from_year_to_hashtag, "第4金曜日" )
imagefile = homedir() * "/Pictures/image.jpg"
# docs.julialang.org/en/v1/manual/running-external-programs/
# xdg-openの部分はmspaintとかでもOK
run(`xdg-open $imagefile`)
else
println("5ch on")
end
# docs.julialang.org/en/v1/stdlib/REPL/#The-Julia-REPL
# 関数の説明と使用例は次のようにすれば見れるよ。
# julia>using Dates
# julia>? <- Enterキーは押さなくて良い
# help?>dまで入力した後にTabキーを2回押す
# help?>からjulia>に戻すにはBackSpaceキーを押す
# その他の使い方
# julia>usingの後に半角スペースを入力した後にTabキーを2回押してモジュール一覧表示
# julia>aを入力後にTabキーを2回押す
# julia>absの後に半角スペースを入力した後にTabキーを2回押して関数を一覧表示
2021/06/25(金) 05:50:35.99ID:RM7Ajj8i
IJulia
github.com/JuliaLang/IJulia.jl
julia> ]
(@v1.6) pkg>add IJulia
BackSpaceキーを押す
replからjupyter Labを起動
julia> using IJulia ; jupyterlab(dir="/home/xxxx/Documents/jupyterlab")
Ctrl-D
ターミナルから起動
$ jupyter lab --notebook-dir="$HOME/Documents/jupyterlab" --browser="/usr/bin/google-chrome"
Visual Studio Code拡張機能Code Runner
ファイル>ユーザー設定>設定を開き、画面右上にある三角アイコン右横の「設定(JSON)を開く」をクリック
例
"code-runner.executorMap": {
// Julia実行ファイルのフルパス
"julia": "$HOME/julia-1.6.1/bin/julia",
},
//コード実行結果をターミナルに表示する
"code-runner.runInTerminal": true,
github.com/JuliaLang/IJulia.jl
julia> ]
(@v1.6) pkg>add IJulia
BackSpaceキーを押す
replからjupyter Labを起動
julia> using IJulia ; jupyterlab(dir="/home/xxxx/Documents/jupyterlab")
Ctrl-D
ターミナルから起動
$ jupyter lab --notebook-dir="$HOME/Documents/jupyterlab" --browser="/usr/bin/google-chrome"
Visual Studio Code拡張機能Code Runner
ファイル>ユーザー設定>設定を開き、画面右上にある三角アイコン右横の「設定(JSON)を開く」をクリック
例
"code-runner.executorMap": {
// Julia実行ファイルのフルパス
"julia": "$HOME/julia-1.6.1/bin/julia",
},
//コード実行結果をターミナルに表示する
"code-runner.runInTerminal": true,
3227
2021/06/25(金) 15:31:39.30ID:F/zdAmk32021/06/25(金) 21:10:31.51ID:kVdfg08P
ともかく最小とか入れてしまうと途端に難しくなる
できればいいんだよ
できればいいんだよ
2021/06/26(土) 00:46:33.35ID:6gOgcdGN
>>21
haskell
import Data.Time.Calendar
premiumFridays y = let
baseDay = ( fromGregorian 2021 6 13 )
lastFriday y m = let
d = gregorianMonthLength y m
difflst = flip diffDays baseDay
$ fromGregorian y m d
lastDay = fromGregorian y m d
in addDays ( - ( mod ( difflst + 2 ) 7 ) ) lastDay
in [ lastFriday y m | m<- [ 1.. 12 ] ]
main = mapM_ print $ premiumFridays 2021
---
2021-01-29
2021-02-26
2021-03-26
2021-04-30
2021-05-28
2021-06-25
2021-07-30
2021-08-27
2021-09-24
2021-10-29
2021-11-26
2021-12-31
haskell
import Data.Time.Calendar
premiumFridays y = let
baseDay = ( fromGregorian 2021 6 13 )
lastFriday y m = let
d = gregorianMonthLength y m
difflst = flip diffDays baseDay
$ fromGregorian y m d
lastDay = fromGregorian y m d
in addDays ( - ( mod ( difflst + 2 ) 7 ) ) lastDay
in [ lastFriday y m | m<- [ 1.. 12 ] ]
main = mapM_ print $ premiumFridays 2021
---
2021-01-29
2021-02-26
2021-03-26
2021-04-30
2021-05-28
2021-06-25
2021-07-30
2021-08-27
2021-09-24
2021-10-29
2021-11-26
2021-12-31
2021/06/26(土) 05:00:02.78ID:m56tn/Vu
Rubyの公式リファレンスは docs.ruby-lang.org
36デフォルトの名無しさん
2021/06/30(水) 18:30:07.65ID:fCthiOXz お題: 年、月、週の初めの曜日を表す値(0=日曜日, 1=月曜日)を入力するとその月のカレンダーを出力する。
例
入力: 2021 6 0
出力:
日 月 火 水 木 金 土
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
上の例はスペースの幅の都合で表示が崩れているかも知れないが、等幅(漢字は2倍)と考えて作って良い。
(なんだったら出力を画像にしても良い)
例
入力: 2021 6 0
出力:
日 月 火 水 木 金 土
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
上の例はスペースの幅の都合で表示が崩れているかも知れないが、等幅(漢字は2倍)と考えて作って良い。
(なんだったら出力を画像にしても良い)
37デフォルトの名無しさん
2021/06/30(水) 23:36:42.12ID:0jpC4Abq 今年は休日変則だな
38デフォルトの名無しさん
2021/07/01(木) 03:39:10.59ID:fmzZ+/Bo2021/07/01(木) 08:32:02.86ID:rhoqKmqn
>>36 Ruby
str = '2021 7 0'
y, m ,s = str.scan(/\d+/).map(&:to_i)
a = '日月火水木金土'.chars.rotate(s)
a << [" "] * ((Time.new( y, m, 1 ).wday - s) % 7)
1.upto(31){|d|
break if Time.new( y, m, d ).month != m
a << '%2d' % d
}
a.flatten.each_slice(7){|w| puts w.join(' ') }
str = '2021 7 0'
y, m ,s = str.scan(/\d+/).map(&:to_i)
a = '日月火水木金土'.chars.rotate(s)
a << [" "] * ((Time.new( y, m, 1 ).wday - s) % 7)
1.upto(31){|d|
break if Time.new( y, m, d ).month != m
a << '%2d' % d
}
a.flatten.each_slice(7){|w| puts w.join(' ') }
2021/07/01(木) 15:44:48.02ID:fmzZ+/Bo
41デフォルトの名無しさん
2021/07/01(木) 15:53:06.10ID:x5n7ySmh >>40
しゅごい
しゅごい
4239
2021/07/01(木) 19:49:58.87ID:rhoqKmqn >>36 Ruby
str = '2021 7 0'
y, m, s = str.scan( /\d+/ ).map( &:to_i )
( '日月火水木金土'.chars.rotate(s) + [' '] * (( Time.new( y, m, 1 ).wday - s ) % 7) + (1 .. [31, 30, 29, 28].find{|d| Time.new( y, m, d ).month == m }).to_a.map{|d| '%2d' % d } ).flatten.each_slice(7){|w| puts w * ' ' }
str = '2021 7 0'
y, m, s = str.scan( /\d+/ ).map( &:to_i )
( '日月火水木金土'.chars.rotate(s) + [' '] * (( Time.new( y, m, 1 ).wday - s ) % 7) + (1 .. [31, 30, 29, 28].find{|d| Time.new( y, m, d ).month == m }).to_a.map{|d| '%2d' % d } ).flatten.each_slice(7){|w| puts w * ' ' }
2021/07/01(木) 21:15:18.27ID:FSqo0WtF
>>43
お前の存在、いるのですか?
お前の存在、いるのですか?
>>44
なぜ要らないとおもったのですか?
なぜ要らないとおもったのですか?
2021/07/01(木) 22:06:31.90ID:FSqo0WtF
47デフォルトの名無しさん
2021/07/02(金) 10:06:20.83ID:6rZLVHEq >>44
要る。
要る。
49デフォルトの名無しさん
2021/07/02(金) 13:39:10.26ID:E59Amcuv 本気で知らないんだろう
月曜始まりのカレンダーを見たことないご存じないとかじゃね?
月曜始まりのカレンダーを見たことないご存じないとかじゃね?
50デフォルトの名無しさん
2021/07/02(金) 16:10:17.73ID:lOCqtdeG2021/07/02(金) 22:18:49.57ID:IHzKftMK
2021/07/02(金) 22:25:49.60ID:6PmzgaZp
>>48
お前が一番日本語理解できてなくて草
お前が一番日本語理解できてなくて草
2021/07/02(金) 22:59:04.30ID:bqpqPyM3
>>49
むしろ全てのカレンダーを月曜始まりにして欲しいぐらい
むしろ全てのカレンダーを月曜始まりにして欲しいぐらい
54デフォルトの名無しさん
2021/07/03(土) 02:44:37.57ID:+PW8v28+ 月月火水木金金
2021/07/03(土) 12:07:58.36ID:gq7PWL9B
オプションの話なんてどうでもいいけど
1日を左上始まりの方が合理的だと思う
1日を左上始まりの方が合理的だと思う
2021/07/03(土) 18:17:25.88ID:IfvioC2j
どうかな
多くの場合
月の開始日を固定するより
曜日を固定した方が有用だ
月によって
多くの場合
月の開始日を固定するより
曜日を固定した方が有用だ
月によって
2021/07/03(土) 18:34:34.91ID:8vTMQXC9
曜日固定の暦も提案されたけど採用されることはなかったんだよね
2021/07/03(土) 19:07:03.68ID:uSbSUvL9
まあ大抵の人は基本的に曜日で休みが決まってたりするしな
2021/07/03(土) 19:13:38.83ID:DPpwWmVc
28日×13月、最終月で調整、がシンプルで良かったのにな
年初の時期も夏至とか分かりやすい日にすれば良かったのに
年初の時期も夏至とか分かりやすい日にすれば良かったのに
2021/07/03(土) 21:26:36.17ID:IfvioC2j
暦は農業をするうえで細かく日を読む必要から作られ発展してきた
農閑期には日付が定められなかったことも
ヨーロッパの言語で前半は神の名が付けられ、後ろの方がテキトーなことからもその時代における重要度が推し量れる
農閑期には日付が定められなかったことも
ヨーロッパの言語で前半は神の名が付けられ、後ろの方がテキトーなことからもその時代における重要度が推し量れる
2021/07/03(土) 21:35:30.23ID:TQwtnc11
そもそも古代ローマの暦では11-12月は名前がなかった
62デフォルトの名無しさん
2021/07/04(日) 00:40:14.83ID:FJOBYcj7 エチオピアではエチオピア歴が今も使われており13月があったりする。
https://www.hope.or.jp/2019/09/13/ethiopian-calendar
https://www.hope.or.jp/2019/09/13/ethiopian-calendar
6339
2021/07/04(日) 08:11:39.86ID:iOGAyFs7 >>36 Ruby
お題の仕様を拡張してみた
前後の月の日付も週単位で表示
・前月日付は週はじめから最小1日から最大7日
・翌月日付は週末まで最小0日から最大6日
require 'date'
str = '2021 7 0'
y, m ,s = str.scan( /\d+/ ).map( &:to_i )
a = '日月火水木金土'.chars.rotate(s)
sw = (Time.new( y, m, 1 ) - s % 7).wday
( (sw == 0)? 7 : sw ).downto(1){|d| a << Date.new( y, m, 1 ).prev_day( d ).mday.to_s }
1.upto( Date.new( y, m, 1 ).next_month.prev_day.mday ){|d| a << '%2d' % d }
(-a.size % 7).times{|d| a << '%2d' % (d+1) }
a.each_slice(7){|w| puts w * ' ' }
お題の仕様を拡張してみた
前後の月の日付も週単位で表示
・前月日付は週はじめから最小1日から最大7日
・翌月日付は週末まで最小0日から最大6日
require 'date'
str = '2021 7 0'
y, m ,s = str.scan( /\d+/ ).map( &:to_i )
a = '日月火水木金土'.chars.rotate(s)
sw = (Time.new( y, m, 1 ) - s % 7).wday
( (sw == 0)? 7 : sw ).downto(1){|d| a << Date.new( y, m, 1 ).prev_day( d ).mday.to_s }
1.upto( Date.new( y, m, 1 ).next_month.prev_day.mday ){|d| a << '%2d' % d }
(-a.size % 7).times{|d| a << '%2d' % (d+1) }
a.each_slice(7){|w| puts w * ' ' }
6439
2021/07/05(月) 00:26:38.86ID:e4Vm80Jj >>36 Ruby
>>63
> sw = (Time.new( y, m, 1 ) - s % 7).wday
は間違いでした
require 'date'
str = '2021 7 0'
y, m, s = str.scan( /\d+/ ).map( &:to_i )
m1 = Date.new( y, m, 1 )
sw = m1.wday - s % 7
pmd = m1.prev_day.mday
a = '日月火水木金土'.chars.rotate(s)
( pmd - ((sw == 0)? 7 : sw) + 1 ).upto( pmd ){|d| a << d.to_s }
1.upto( m1.next_month.prev_day.mday ){|d| a << '%2d' % d }
(-a.size % 7).times{|d| a << '%2d' % (d+1) }
a.each_slice(7){|w| puts w * ' ' }
>>63
> sw = (Time.new( y, m, 1 ) - s % 7).wday
は間違いでした
require 'date'
str = '2021 7 0'
y, m, s = str.scan( /\d+/ ).map( &:to_i )
m1 = Date.new( y, m, 1 )
sw = m1.wday - s % 7
pmd = m1.prev_day.mday
a = '日月火水木金土'.chars.rotate(s)
( pmd - ((sw == 0)? 7 : sw) + 1 ).upto( pmd ){|d| a << d.to_s }
1.upto( m1.next_month.prev_day.mday ){|d| a << '%2d' % d }
(-a.size % 7).times{|d| a << '%2d' % (d+1) }
a.each_slice(7){|w| puts w * ' ' }
2021/07/05(月) 17:31:47.07ID:7Yd2cijs
>>28-31
28はPowerShell版
お題:クロームブラウザーのヘッドレスモードを使って何かを作る
google-chrome --headless --disable-gpu --hide-scrollbars --window-size=700,8000 --virtual-time-budget=10000 --screenshot="$HOME/Pictures/$(date +"%H_%M_%S").png" 'yahooリアルタイム検索結果のURL'
--window-size=はスクリーンショットを撮る範囲
--virtual-time-budget=は検索結果が表示されるまで時間がかかるサイトで使う。これがないと検索結果のスクリーンショットがうまく撮れない。10000ミリ秒=10秒。
28はPowerShell版
お題:クロームブラウザーのヘッドレスモードを使って何かを作る
google-chrome --headless --disable-gpu --hide-scrollbars --window-size=700,8000 --virtual-time-budget=10000 --screenshot="$HOME/Pictures/$(date +"%H_%M_%S").png" 'yahooリアルタイム検索結果のURL'
--window-size=はスクリーンショットを撮る範囲
--virtual-time-budget=は検索結果が表示されるまで時間がかかるサイトで使う。これがないと検索結果のスクリーンショットがうまく撮れない。10000ミリ秒=10秒。
2021/07/06(火) 12:39:02.75ID:gfjghTPI
数学板から
お題
Σ[n:2〜∞]cos(n)/log(n)を小数第10まで求めよ
元々収束するか?で収束するなら10桁計算せよってついてたけど今のところ10桁計算してみせた人おらず
もちろん収束遅すぎて少し工夫しないと10桁出すのは難しいかなと
お題
Σ[n:2〜∞]cos(n)/log(n)を小数第10まで求めよ
元々収束するか?で収束するなら10桁計算せよってついてたけど今のところ10桁計算してみせた人おらず
もちろん収束遅すぎて少し工夫しないと10桁出すのは難しいかなと
68デフォルトの名無しさん
2021/07/06(火) 18:27:19.16ID:ifvAZrxB >>67
わからない。
わからない。
2021/07/07(水) 06:44:52.69ID:GHc1zSP4
2021/07/07(水) 07:00:20.59ID:GHc1zSP4
>>67 Haskell
sums xs = scanl1 (+) xs
ss n = sums [cos k / log k | k <- [2..n]]
avr xs = sum xs / (fromIntegral $ length xs)
結果:
λ> avr $ ss 10000
-1.3422141860097583
(0.02 secs, 6,244,872 bytes)
λ> avr $ ss 100000
-1.3422187431198473
(0.21 secs, 61,066,720 bytes)
λ> avr $ ss 1000000
-1.3422195503566596
(1.97 secs, 609,383,904 bytes)
λ> avr $ ss 10000000
-1.3422195021937073
(48.08 secs, 6,092,457,440 bytes)
これ以上は厳しそうだから何か工夫しないといけないけど8桁辺りまでは収束してそう
sums xs = scanl1 (+) xs
ss n = sums [cos k / log k | k <- [2..n]]
avr xs = sum xs / (fromIntegral $ length xs)
結果:
λ> avr $ ss 10000
-1.3422141860097583
(0.02 secs, 6,244,872 bytes)
λ> avr $ ss 100000
-1.3422187431198473
(0.21 secs, 61,066,720 bytes)
λ> avr $ ss 1000000
-1.3422195503566596
(1.97 secs, 609,383,904 bytes)
λ> avr $ ss 10000000
-1.3422195021937073
(48.08 secs, 6,092,457,440 bytes)
これ以上は厳しそうだから何か工夫しないといけないけど8桁辺りまでは収束してそう
2021/07/07(水) 07:19:49.97ID:GHc1zSP4
8桁って小数第七位ね
2021/07/07(水) 19:16:52.25ID:5d+e1myw
この文献
https://www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/1084-4.pdf
をもとに C
#include <math.h>
#include <stdio.h>
int main(){
double p=12.0,q=7.0,s=0;
long n,nmax=166;
for(n=2;n<nmax;n++) s+=(cos(n)/log(n))*0.5*erfc(n/p-q);
printf("s=%-20.16lf, N=%d\n",s,nmax-2);
return 0;
}
s=-1.3422195101745578 , N=164
https://www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/1084-4.pdf
をもとに C
#include <math.h>
#include <stdio.h>
int main(){
double p=12.0,q=7.0,s=0;
long n,nmax=166;
for(n=2;n<nmax;n++) s+=(cos(n)/log(n))*0.5*erfc(n/p-q);
printf("s=%-20.16lf, N=%d\n",s,nmax-2);
return 0;
}
s=-1.3422195101745578 , N=164
2021/07/07(水) 20:36:04.14ID:MZbePiNM
>>67 収束する。
B_k := Σ[n : 2..k] cos(n)
|B_k| = |cos((k + 1) / 2) sin(k / 2) / sin(1 / 2) - (1 + cos(1))|
(see https://math.stackexchange.com/questions/225941/proving-sum-limits-k-0n-coskx-frac12-frac-sin-frac2n12x)
<= 1 / sin(1 / 2) + 1 + cos(1) ... (i)
a_n := 1 / log(n)
Σ[n : 2..∞] |a_{n + 1} - a_n|
= Σ[n : 2..∞] |log(n / (n + 1)) / (log(n) log(n + 1))|
<= Σ[n : 2..∞] |log(2) / log(n + 1)^2|
< ∞ ... (ii)
lim a_n = 0 as n -> 0 ... (iii)
(i), (ii), (iii) よりアーベルの級数判定法の条件を満たすので所与の級数は収束する。
B_k := Σ[n : 2..k] cos(n)
|B_k| = |cos((k + 1) / 2) sin(k / 2) / sin(1 / 2) - (1 + cos(1))|
(see https://math.stackexchange.com/questions/225941/proving-sum-limits-k-0n-coskx-frac12-frac-sin-frac2n12x)
<= 1 / sin(1 / 2) + 1 + cos(1) ... (i)
a_n := 1 / log(n)
Σ[n : 2..∞] |a_{n + 1} - a_n|
= Σ[n : 2..∞] |log(n / (n + 1)) / (log(n) log(n + 1))|
<= Σ[n : 2..∞] |log(2) / log(n + 1)^2|
< ∞ ... (ii)
lim a_n = 0 as n -> 0 ... (iii)
(i), (ii), (iii) よりアーベルの級数判定法の条件を満たすので所与の級数は収束する。
2021/07/07(水) 21:23:56.34ID:GHc1zSP4
2021/07/07(水) 21:39:28.53ID:5d+e1myw
>>74
6節でFFTの計算とともに使ってるのでフーリエ級数全般に使えるはず
6節でFFTの計算とともに使ってるのでフーリエ級数全般に使えるはず
2021/07/07(水) 22:23:37.48ID:7LucU1Ml
>>5の2 Dart版
void main() {
DateTime today = new DateTime.now();
print(
"${today.year.toString()}/${
today.month.toString().padLeft(2,'0')}/${
today.day.toString().padLeft(2,'0')}/第${
((today.day + 6) / 7).floor()}${
{1:'月曜日',2:'火曜日',3:'水曜日',4:'木曜日',5:'金曜日',6:'土曜日',7:'日曜日'}[today.weekday]}/${
today.hour.toString().padLeft(2,'0')}:${
today.minute.toString().padLeft(2,'0')}/"
);
}
void main() {
DateTime today = new DateTime.now();
print(
"${today.year.toString()}/${
today.month.toString().padLeft(2,'0')}/${
today.day.toString().padLeft(2,'0')}/第${
((today.day + 6) / 7).floor()}${
{1:'月曜日',2:'火曜日',3:'水曜日',4:'木曜日',5:'金曜日',6:'土曜日',7:'日曜日'}[today.weekday]}/${
today.hour.toString().padLeft(2,'0')}:${
today.minute.toString().padLeft(2,'0')}/"
);
}
2021/07/07(水) 22:51:04.45ID:GHc1zSP4
>>75
やっぱり交代級数限定の話っぽいけど何で今回上手く行ってるのか良く分からない
やっぱり交代級数限定の話っぽいけど何で今回上手く行ってるのか良く分からない
2021/07/21(水) 03:52:07.59ID:s4XLTZzk
お題
2乗〜6乗
自然数nに対して方程式
n = p^2+q^3+r^4+s^5+t^6
の整数解をひとつ探し出す関数を実装せよ
例
-2 → [1,-2,1,0,0]
-1 → [1,-2,1,1,9]
0 → [1,-1,0,0,0]
1 → [1,0,0,0,0]
2 → [1,1,0,0,0]
100 → [2,0,0,2,2]
2021 → [3382713530574301803635446275486,-563785588429051426890762429768,2252569709434420,5488,750856569811473]
2乗〜6乗
自然数nに対して方程式
n = p^2+q^3+r^4+s^5+t^6
の整数解をひとつ探し出す関数を実装せよ
例
-2 → [1,-2,1,0,0]
-1 → [1,-2,1,1,9]
0 → [1,-1,0,0,0]
1 → [1,0,0,0,0]
2 → [1,1,0,0,0]
100 → [2,0,0,2,2]
2021 → [3382713530574301803635446275486,-563785588429051426890762429768,2252569709434420,5488,750856569811473]
2021/07/21(水) 04:00:54.83ID:s4XLTZzk
訂正
-2 → [2,-2,1,1,0]
-1 → [0,-1,0,0,0]
-2 → [2,-2,1,1,0]
-1 → [0,-1,0,0,0]
2021/07/21(水) 05:27:57.77ID:qAe+ZLCy
-1と-2は自然数じゃない
2021/07/21(水) 13:17:19.10ID:s4XLTZzk
2021/07/21(水) 16:30:29.39ID:s75CxDCd
2021/07/21(水) 20:59:05.44ID:qAe+ZLCy
寧ろ定義域を整数全体にすれば?
2021/07/21(水) 22:08:26.55ID:DfqCC9n+
85デフォルトの名無しさん
2021/07/22(木) 03:13:11.19ID:o3SPPMDQ2021/07/22(木) 13:52:09.29ID:mzts8Rpt
元の問題
面白い問題おしえて〜な 37問目
https://rio2016.5ch.net/test/read.cgi/math/1624644393/543
元の問題は7乗まで使って桶だったけど6乗までの解答が出た
https://rio2016.5ch.net/test/read.cgi/math/1624644393/588
あくまでプログラムの話、数学の部分はどうでもいいという方は参考にして下さい
この方法はn-t^5-76843が6630の倍数になるような整数tが取れる事を使います(t:0〜6629の中で探す)
面白い問題おしえて〜な 37問目
https://rio2016.5ch.net/test/read.cgi/math/1624644393/543
元の問題は7乗まで使って桶だったけど6乗までの解答が出た
https://rio2016.5ch.net/test/read.cgi/math/1624644393/588
あくまでプログラムの話、数学の部分はどうでもいいという方は参考にして下さい
この方法はn-t^5-76843が6630の倍数になるような整数tが取れる事を使います(t:0〜6629の中で探す)
2021/07/22(木) 20:25:25.04ID:giJnvKaJ
>>86
5次以下にはできない証明は?
5次以下にはできない証明は?
2021/07/22(木) 20:30:40.90ID:eIP4GB5u
>>87
それはまだ数学板では5以下でも可能も5以外では不可能もどっちも証明されてません
それはまだ数学板では5以下でも可能も5以外では不可能もどっちも証明されてません
2021/07/24(土) 11:44:46.01ID:uYrXTofe
お題: 端末上に地球を模した円の描画を行い、入力された緯度、経度のおおよその地点に印を付けろ
ただし描画される円の中心は常に日本の東京とし、東京が見えるようにすること
描画される円の大きさは自由とする
入力された座標が東京の裏側の半球上にあって印を描画できない場合は、印を描画しないか、あるいは円(地球)を透過させて印を描画する
地球の半径=6,371 km
東京の経度=139°41′30″
東京の緯度=35°41′22″
*出題者は自分で実装してません
ただし描画される円の中心は常に日本の東京とし、東京が見えるようにすること
描画される円の大きさは自由とする
入力された座標が東京の裏側の半球上にあって印を描画できない場合は、印を描画しないか、あるいは円(地球)を透過させて印を描画する
地球の半径=6,371 km
東京の経度=139°41′30″
東京の緯度=35°41′22″
*出題者は自分で実装してません
2021/07/24(土) 11:48:58.50ID:2jz91/WX
>>89
画面の上を地球上のどの方位にするとか、平行投影なのか透視投影なのか画角どうするかとか決めないといけないんでないの?
画面の上を地球上のどの方位にするとか、平行投影なのか透視投影なのか画角どうするかとか決めないといけないんでないの?
2021/07/24(土) 11:53:24.04ID:uYrXTofe
2021/07/24(土) 12:18:19.24ID:/U+1YhTs
地球は球体じゃないから無理じゃない?
2021/07/25(日) 16:25:19.73ID:YgX/LOmt
地形データってどっかから取って来れるの?そこも自作しろと?それとも地形描画なしのツルツルの地球で良い?
2021/07/26(月) 04:06:01.70ID:uFE88Z/4
いいよ
2021/07/27(火) 08:42:26.61ID:3vSla0fp
>>5の2 JavaScript版
let today = new Date()
console.log(
today.getFullYear().toString() + '/' +
today.getMonth().toString().padStart(2,'0') + '/' +
today.getDate().toString().padStart(2,'0') + '/' +
'第' + ( Math.floor( ( today.getDate() + 6 ) / 7 ) ).toString() +
['日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日'][today.getDay()] + '/' +
today.getHours().toString().padStart(2,'0') + ':' +
today.getMinutes().toString().padStart(2,'0') + '/'
)
let today = new Date()
console.log(
today.getFullYear().toString() + '/' +
today.getMonth().toString().padStart(2,'0') + '/' +
today.getDate().toString().padStart(2,'0') + '/' +
'第' + ( Math.floor( ( today.getDate() + 6 ) / 7 ) ).toString() +
['日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日'][today.getDay()] + '/' +
today.getHours().toString().padStart(2,'0') + ':' +
today.getMinutes().toString().padStart(2,'0') + '/'
)
9696
2021/07/28(水) 13:12:24.23ID:D9Z9/eJz >>20 Perl5、DPで解けないかなと考えてたけど、すぐには思いつかずnaiveな解法
use List::Util 'max';
my $m;
sub f {
my ($a, $b, $c) = @_;
return () if $m and $m <= $c;
my $aa = $a * $c - $b;
return ($m = $c) if 0 == $aa;
my @s;
if (0 < $aa) {
my $bc = $b * $c;
@s = f($aa, $bc, max(int($bc / $aa), $c + 1));
@s = ($c, @s) if @s;
}
my @t = f($a, $b, max(int($b / $a), $c + 1));
if (@s and @t) {
$s[-1] < $t[-1] ? @s: @t;
} else {
@s ? @s: @t;
}
}
$m = 0; my @a = f(37, 60, 1);
printf "37 / 60 = %s\n", join ' + ', map{"1/$_"} grep{$_} @a;
#$m = 0; my @a = f(3, 1, 1);
実行結果
~ $ perl 20_20_re_expan.pl
37 / 60 = 1/4 + 1/5 + 1/6
なお、この解法だと 3/1 = は時間がかかりすぎて解けない
use List::Util 'max';
my $m;
sub f {
my ($a, $b, $c) = @_;
return () if $m and $m <= $c;
my $aa = $a * $c - $b;
return ($m = $c) if 0 == $aa;
my @s;
if (0 < $aa) {
my $bc = $b * $c;
@s = f($aa, $bc, max(int($bc / $aa), $c + 1));
@s = ($c, @s) if @s;
}
my @t = f($a, $b, max(int($b / $a), $c + 1));
if (@s and @t) {
$s[-1] < $t[-1] ? @s: @t;
} else {
@s ? @s: @t;
}
}
$m = 0; my @a = f(37, 60, 1);
printf "37 / 60 = %s\n", join ' + ', map{"1/$_"} grep{$_} @a;
#$m = 0; my @a = f(3, 1, 1);
実行結果
~ $ perl 20_20_re_expan.pl
37 / 60 = 1/4 + 1/5 + 1/6
なお、この解法だと 3/1 = は時間がかかりすぎて解けない
2021/08/08(日) 11:08:25.71ID:KegFD0tb
平面上に円をおくと、円周上に整数点ができることがあるが
それがちょうど47個の円の最小半径は?
ここで前にもあったとおもったが、答わからん
それがちょうど47個の円の最小半径は?
ここで前にもあったとおもったが、答わからん
98デフォルトの名無しさん
2021/08/10(火) 04:18:36.48ID:RT5RB9Hc 解き方がわからん。
99蟻人間 ◆T6xkBnTXz7B0
2021/08/11(水) 00:16:58.90ID:yQA623uX お題: (C/C++/Rust限定)
与えられたテキストファイルのエンコーディングを早く正確に判定するプログラムを作れ。
判定内容はASCIIのみ、UTF-8、UTF-16、Shift_JIS、バイナリのいずれかとBOMの有無とする。
ファイル先頭にBOMがある場合はBOMの意味を優先するものとする。
ASCIIではない場合はファイル先頭より256バイト以降は無視するものとする。
テキストファイルがUTF-8かShift_JISか区別できないときはUTF-8の判定を優先するものとする。
判定にかかった時間をミリ秒単位で測定せよ。
UTF-16 BEとEUC-JPはバイナリとみなしてもよい。
与えられたテキストファイルのエンコーディングを早く正確に判定するプログラムを作れ。
判定内容はASCIIのみ、UTF-8、UTF-16、Shift_JIS、バイナリのいずれかとBOMの有無とする。
ファイル先頭にBOMがある場合はBOMの意味を優先するものとする。
ASCIIではない場合はファイル先頭より256バイト以降は無視するものとする。
テキストファイルがUTF-8かShift_JISか区別できないときはUTF-8の判定を優先するものとする。
判定にかかった時間をミリ秒単位で測定せよ。
UTF-16 BEとEUC-JPはバイナリとみなしてもよい。
100デフォルトの名無しさん
2021/08/11(水) 19:57:42.99ID:lGVA2SmZ 宿題は自分でやれ
101デフォルトの名無しさん
2021/08/11(水) 23:48:46.02ID:BaITumyQ ザリガニが見ていた...。 QuickDrawはどのように素早く円を描いていたのか?
https://zariganitosh.hatenablog.jp/entry/20100318/1269006632
https://zariganitosh.hatenablog.jp/entry/20100318/1269006632
102デフォルトの名無しさん
2021/08/12(木) 04:41:39.82ID:zN4hKecF 昔々グラフィックス画面に直線を描くアルゴリズム調べた時は感動したな。あれは40年ぐらい前か。月日の経つのは早いものぢゃ。
103デフォルトの名無しさん
2021/08/12(木) 09:29:17.38ID:GeyAERvY お題
文字列を入力として受け取って
入力された文字列と、入力された文字列を逆順にした文字列を
1文字ずつ交互に結合した文字列を出力してください
入力: abcde
出力: aebdccdbea
文字列を入力として受け取って
入力された文字列と、入力された文字列を逆順にした文字列を
1文字ずつ交互に結合した文字列を出力してください
入力: abcde
出力: aebdccdbea
104デフォルトの名無しさん
2021/08/12(木) 10:08:21.06ID:Lpug+0Go105デフォルトの名無しさん
2021/08/13(金) 03:01:45.42ID:pLlXEN4h >>103
Haskell
import Data.List
acbbca x = concat $ transpose [ x , reverse x ]
main = do
putStrLn $ acbbca "Hello World"
putStrLn $ acbbca "たけやぶやけた"
----
HdellrlooW WoolrlledH
たたけけややぶぶややけけたた
Haskell
import Data.List
acbbca x = concat $ transpose [ x , reverse x ]
main = do
putStrLn $ acbbca "Hello World"
putStrLn $ acbbca "たけやぶやけた"
----
HdellrlooW WoolrlledH
たたけけややぶぶややけけたた
106デフォルトの名無しさん
2021/08/13(金) 03:35:13.90ID:hXjFUBNl なんかこういうのはhaskellのlensが得意そうな気がするな
この前Intのリストの奇数だけソートするのを
sortArray xs = xs & partsOf (each . filtered odd) %~ sort
だけで済ましてるのを見た
この前Intのリストの奇数だけソートするのを
sortArray xs = xs & partsOf (each . filtered odd) %~ sort
だけで済ましてるのを見た
107デフォルトの名無しさん
2021/08/13(金) 11:47:55.66ID:Zwr8vbQY10896
2021/08/13(金) 12:16:45.65ID:Tqy/ucLn >>103 Perl5
@b = reverse @a = split'', 'abcde';
use List::MoreUtils 'zip';
print zip @a, @b;
実行結果
~ $ perl 20_103.pl
aebdccdbea
@b = reverse @a = split'', 'abcde';
use List::MoreUtils 'zip';
print zip @a, @b;
実行結果
~ $ perl 20_103.pl
aebdccdbea
109デフォルトの名無しさん
2021/08/13(金) 18:31:56.72ID:C2vgWz0X110デフォルトの名無しさん
2021/08/13(金) 18:54:31.59ID:C2vgWz0X111デフォルトの名無しさん
2021/08/13(金) 20:49:58.92ID:++s/0C9b112sage
2021/08/13(金) 23:42:35.13ID:WxHHmkEE >>104
Rbuy 3.0.2 だと s が未定だと怒られる
Rbuy 3.0.2 だと s が未定だと怒られる
113デフォルトの名無しさん
2021/08/14(土) 12:38:10.02ID:LgiNTbaj >>36 octave
https://ideone.com/YRTUpL
function [c, w] = f(y, m, dow)
c = calendar(y, m);
w = {'日' '月' '火' '水' '木' '金' '土'};
if dow == 1
a = (c')(:);
b = [-1 6](1 + (a(1) == 1));
c = reshape(circshift(a, b), flip(size(c)))';
w = circshift(w, -1, 2);
end
end
function g(y, m, dow)
[c, w] = f(y, m, dow);
disp(strjoin(cellfun(@(s) {sprintf('%6s', s)}, w), '')), disp(c)
end
https://ideone.com/YRTUpL
function [c, w] = f(y, m, dow)
c = calendar(y, m);
w = {'日' '月' '火' '水' '木' '金' '土'};
if dow == 1
a = (c')(:);
b = [-1 6](1 + (a(1) == 1));
c = reshape(circshift(a, b), flip(size(c)))';
w = circshift(w, -1, 2);
end
end
function g(y, m, dow)
[c, w] = f(y, m, dow);
disp(strjoin(cellfun(@(s) {sprintf('%6s', s)}, w), '')), disp(c)
end
114デフォルトの名無しさん
2021/08/17(火) 02:41:19.70ID:5M+zf85m115デフォルトの名無しさん
2021/08/17(火) 19:49:43.89ID:skFpZz3411696
2021/08/17(火) 22:38:15.40ID:BrZ+lWok >>114 Perl5
$it="うっふ〜ん";
print<<EOF;
「中止の考えはない。強い警戒感を持って${it}に臨む」
「バブル方式で${it}する。感染拡大の恐れはないと認識している」
「コロナに打ち勝った証として${it}する」
「${it}を中止することは一番簡単なこと、楽なことだ。${it}に挑戦するのが国民の役割だ」
「安心安全な${it}に向けて全力で取り組む」
「不要不急かどうかは本人が判断すべきだ」
EOF
実行結果
$ perl 20_114_菅話法.pl
「中止の考えはない。強い警戒感を持ってうっふ〜んに臨む」
「バブル方式でうっふ〜んする。感染拡大の恐れはないと認識している」
「コロナに打ち勝った証としてうっふ〜んする」
「うっふ〜んを中止することは一番簡単なこと、楽なことだ。うっふ〜んに挑戦するのが国民の役割だ」
「安心安全なうっふ〜んに向けて全力で取り組む」
「不要不急かどうかは本人が判断すべきだ」
$it="うっふ〜ん";
print<<EOF;
「中止の考えはない。強い警戒感を持って${it}に臨む」
「バブル方式で${it}する。感染拡大の恐れはないと認識している」
「コロナに打ち勝った証として${it}する」
「${it}を中止することは一番簡単なこと、楽なことだ。${it}に挑戦するのが国民の役割だ」
「安心安全な${it}に向けて全力で取り組む」
「不要不急かどうかは本人が判断すべきだ」
EOF
実行結果
$ perl 20_114_菅話法.pl
「中止の考えはない。強い警戒感を持ってうっふ〜んに臨む」
「バブル方式でうっふ〜んする。感染拡大の恐れはないと認識している」
「コロナに打ち勝った証としてうっふ〜んする」
「うっふ〜んを中止することは一番簡単なこと、楽なことだ。うっふ〜んに挑戦するのが国民の役割だ」
「安心安全なうっふ〜んに向けて全力で取り組む」
「不要不急かどうかは本人が判断すべきだ」
117デフォルトの名無しさん
2021/09/03(金) 01:55:54.93ID:d87lg/Z2 半月ぐらいお題が出ないので一つ。
お題: テトロミノ
こんなパズルを解く。
https://ja.wikipedia.org/wiki/%E3%83%86%E3%83%88%E3%83%AD%E3%83%9F%E3%83%8E
大きさもピースも任意だが、上記ページにあるやつそのままで良い。(2つあるがどちらか一つで良い)
沢山パターンがあるかも知れないが、最初に見つかった一つを出すだけでも良い。
出力はテキストでも何でも人間が見て分かるようになってれば良い。
この問題については既にあちこちで答えが出ているような枯れた問題だと思うので、なるべく何も見ずに自分で考えて作ること。
お題: テトロミノ
こんなパズルを解く。
https://ja.wikipedia.org/wiki/%E3%83%86%E3%83%88%E3%83%AD%E3%83%9F%E3%83%8E
大きさもピースも任意だが、上記ページにあるやつそのままで良い。(2つあるがどちらか一つで良い)
沢山パターンがあるかも知れないが、最初に見つかった一つを出すだけでも良い。
出力はテキストでも何でも人間が見て分かるようになってれば良い。
この問題については既にあちこちで答えが出ているような枯れた問題だと思うので、なるべく何も見ずに自分で考えて作ること。
118蟻人間 ◆T6xkBnTXz7B0
2021/09/03(金) 20:43:43.19ID:9DjO+PTi お題:15パズルを解くプログラム。
15パズルの盤を16要素の配列で表現し、実際に解く様子を出力せよ。空白は整数のゼロで表現する。
解けないときは「No answer」を出力せよ。可能ならば画像データも出力せよ。
参考資料:
http://www.studio-boiler.com/k/kouryaku/kou.htm
15パズルの盤を16要素の配列で表現し、実際に解く様子を出力せよ。空白は整数のゼロで表現する。
解けないときは「No answer」を出力せよ。可能ならば画像データも出力せよ。
参考資料:
http://www.studio-boiler.com/k/kouryaku/kou.htm
119デフォルトの名無しさん
2021/09/04(土) 00:30:45.45ID:ExeocnPJ 猿真似しか出来んのか
120デフォルトの名無しさん
2021/09/04(土) 02:42:13.50ID:7+Hy81Ja 全然お題が出なかったからこれで良い
121デフォルトの名無しさん
2021/09/04(土) 15:54:45.82ID:Q1ZjOy0h 最短でも80手らしい
それくらいだと全部表示してもそこまでうるさくないんだけど簡単な探索法だと2,300超えてしまいそう
全部表示したらうるさい事この上ないんだよな
それくらいだと全部表示してもそこまでうるさくないんだけど簡単な探索法だと2,300超えてしまいそう
全部表示したらうるさい事この上ないんだよな
122デフォルトの名無しさん
2021/09/04(土) 16:28:17.76ID:HA1H8jBr お題:パンくずリストを出力せよ
入力
東京,特許,許可局
出力
<ul class="pankuzu">
<li class="pankuzu_item">東京</li>
<li class="pankuzu_item">特許</li>
<li class="pankuzu_item active">許可局</li>
</ul>
入力
東京,特許,許可局
出力
<ul class="pankuzu">
<li class="pankuzu_item">東京</li>
<li class="pankuzu_item">特許</li>
<li class="pankuzu_item active">許可局</li>
</ul>
123デフォルトの名無しさん
2021/09/06(月) 02:26:18.29ID:gafTCMAF124デフォルトの名無しさん
2021/09/06(月) 09:51:36.66ID:AS0MIjWb XSSに気をつけましょう
125デフォルトの名無しさん
2021/09/06(月) 10:28:52.31ID:c9RFzrWf >>122
react
const Pankuzu = ({ items }) => (
<ul className="pankuzu">
{items.map((item, i) => (
<li
key={`item-${item}`}
className={"pankuzu_item"}
data-active={i === items.length - 1}
>
{item}
</li>
))}
</ul>
);
react
const Pankuzu = ({ items }) => (
<ul className="pankuzu">
{items.map((item, i) => (
<li
key={`item-${item}`}
className={"pankuzu_item"}
data-active={i === items.length - 1}
>
{item}
</li>
))}
</ul>
);
126デフォルトの名無しさん
2021/09/06(月) 11:28:19.10ID:DJ6jxapu12796
2021/09/06(月) 12:09:28.54ID:GTV7C5SZ >>122 Perl5
use HTML::TreeBuilder;
@s = split',','東京,特許,許可局';
@a = map{['li', {class => 'pankuzu_item'}, $_]} @s;
$a[-1][1]{class} .= ' active';
$h = HTML::Element->new_from_lol(['ul', {class => 'pankuzu'}, @a]);
print $h->as_HTML('<>&', ' ', {});
実行結果
~ $ perl 20_122_pankuzu_list.pl
<ul class="pankuzu">
<li class="pankuzu_item">東京</li>
<li class="pankuzu_item">特許</li>
<li class="pankuzu_item active">許可局</li>
</ul>
use HTML::TreeBuilder;
@s = split',','東京,特許,許可局';
@a = map{['li', {class => 'pankuzu_item'}, $_]} @s;
$a[-1][1]{class} .= ' active';
$h = HTML::Element->new_from_lol(['ul', {class => 'pankuzu'}, @a]);
print $h->as_HTML('<>&', ' ', {});
実行結果
~ $ perl 20_122_pankuzu_list.pl
<ul class="pankuzu">
<li class="pankuzu_item">東京</li>
<li class="pankuzu_item">特許</li>
<li class="pankuzu_item active">許可局</li>
</ul>
12896
2021/09/06(月) 13:04:59.11ID:moEus4wD129デフォルトの名無しさん
2021/09/06(月) 13:13:49.70ID:uTG0VSHW130デフォルトの名無しさん
2021/09/06(月) 19:38:11.84ID:n/A9WgFn >>122 ocaml
https://ideone.com/lTmi19
let f =
let rec aux acc = function
[] -> "<ul class=\"pankuzu\">\n" ^ acc ^ "</ul>"
| s :: [] -> aux (acc ^ "<li class=\"pankuzu_item active\">" ^ s ^ "</li>\n") []
| s :: ss -> aux (acc ^ "<li class=\"pankuzu_item\">" ^ s ^ "</li>\n") ss
in aux ""
let () = print_endline @@ f ["東京"; "特許"; "許可局"]
https://ideone.com/lTmi19
let f =
let rec aux acc = function
[] -> "<ul class=\"pankuzu\">\n" ^ acc ^ "</ul>"
| s :: [] -> aux (acc ^ "<li class=\"pankuzu_item active\">" ^ s ^ "</li>\n") []
| s :: ss -> aux (acc ^ "<li class=\"pankuzu_item\">" ^ s ^ "</li>\n") ss
in aux ""
let () = print_endline @@ f ["東京"; "特許"; "許可局"]
131デフォルトの名無しさん
2021/09/07(火) 09:55:32.26ID:WSMGeNyo >>122 bat
:: usage: this.bat 東京,特許,許可局
@echo off &setlocal enabledelayedexpansion
set "OUTPUT=echo ^<ul class="pankuzu"^>"
for %%a in (%*) do set "OUTPUT=!OUTPUT!&echo ^^<li class="pankuzu_item"^^>%%~a^^</li^^>"&set "LastArg=%%~a"
set "OUTPUT=!OUTPUT!&echo ^^</ul^^>"
set OUTPUT=!OUTPUT:"^>%LastArg%= active"^^^>%LastArg%!
%OUTPUT%
:: (%OUTPUT%) >>pankuzu.txt
:: usage: this.bat 東京,特許,許可局
@echo off &setlocal enabledelayedexpansion
set "OUTPUT=echo ^<ul class="pankuzu"^>"
for %%a in (%*) do set "OUTPUT=!OUTPUT!&echo ^^<li class="pankuzu_item"^^>%%~a^^</li^^>"&set "LastArg=%%~a"
set "OUTPUT=!OUTPUT!&echo ^^</ul^^>"
set OUTPUT=!OUTPUT:"^>%LastArg%= active"^^^>%LastArg%!
%OUTPUT%
:: (%OUTPUT%) >>pankuzu.txt
132デフォルトの名無しさん
2021/09/07(火) 12:33:03.11ID:Q6Cbfir4 お題
次のように置換した文字列が入力される
ESC → ESCESC
CR → ESCcr
LF → ESClf
元の文字列を復元してください
続く・・・
次のように置換した文字列が入力される
ESC → ESCESC
CR → ESCcr
LF → ESClf
元の文字列を復元してください
続く・・・
133デフォルトの名無しさん
2021/09/07(火) 12:33:27.25ID:Q6Cbfir4 >>132の続き
例) 入力 → 出力
ESCESCESCESC → ESCESC
ESCESCESCcr → ESCCR
ESCESCESClf → ESCLF
ESCESCESCESCcr → ESCESCcr
ESCESCESCESClf → ESCESClf
ESCcrESCESC → CRESC
ESCcrESCcr → CRCR
ESCcrESClf → CRLF
ESCcrESCESCcr → CRESCcr
ESCcrESCESClf → CRESClf
ESClfESCESC → LFESC
ESClfESCcr → LFCR
ESClfESClf → LFLF
ESClfESCESCcr → LFESCcr
ESClfESCESClf → LFESClf
ESCESCcrESCESC → ESCcrESC
ESCESCcrESCcr → ESCcrCR
ESCESCcrESClf → ESCcrLF
ESCESCcrESCESCcr → ESCcrESCcr
ESCESCcrESCESClf → ESCcrESClf
ESCESClfESCESC → ESClfESC
ESCESClfESCcr → ESClfCR
ESCESClfESClf → ESClfLF
ESCESClfESCESCcr → ESClfESCcr
ESCESClfESCESClf → ESClfESClf
例) 入力 → 出力
ESCESCESCESC → ESCESC
ESCESCESCcr → ESCCR
ESCESCESClf → ESCLF
ESCESCESCESCcr → ESCESCcr
ESCESCESCESClf → ESCESClf
ESCcrESCESC → CRESC
ESCcrESCcr → CRCR
ESCcrESClf → CRLF
ESCcrESCESCcr → CRESCcr
ESCcrESCESClf → CRESClf
ESClfESCESC → LFESC
ESClfESCcr → LFCR
ESClfESClf → LFLF
ESClfESCESCcr → LFESCcr
ESClfESCESClf → LFESClf
ESCESCcrESCESC → ESCcrESC
ESCESCcrESCcr → ESCcrCR
ESCESCcrESClf → ESCcrLF
ESCESCcrESCESCcr → ESCcrESCcr
ESCESCcrESCESClf → ESCcrESClf
ESCESClfESCESC → ESClfESC
ESCESClfESCcr → ESClfCR
ESCESClfESClf → ESClfLF
ESCESClfESCESCcr → ESClfESCcr
ESCESClfESCESClf → ESClfESClf
134デフォルトの名無しさん
2021/09/07(火) 13:04:58.96ID:YXnsp+WP >>132 Ruby
def decode( str ) = str.gsub( /ESC(ESC|cr|lf)/, { 'ESCESC' => 'ESC', 'ESCcr' => 'CR', 'ESClf' => 'LF' } )
def decode( str ) = str.gsub( /ESC(ESC|cr|lf)/, { 'ESCESC' => 'ESC', 'ESCcr' => 'CR', 'ESClf' => 'LF' } )
135134
2021/09/07(火) 13:14:10.80ID:YXnsp+WP >>132 Ruby
def decode( str ) = str.gsub( /ESC(ESC|cr|lf)/ ){ _1[3..].upcase }
def decode( str ) = str.gsub( /ESC(ESC|cr|lf)/ ){ _1[3..].upcase }
136デフォルトの名無しさん
2021/09/07(火) 22:44:48.30ID:Q6Cbfir4137デフォルトの名無しさん
2021/09/08(水) 01:03:27.49ID:gNm9L8yp138デフォルトの名無しさん
2021/09/08(水) 01:19:37.74ID:gNm9L8yp139デフォルトの名無しさん
2021/09/08(水) 01:55:31.54ID:gNm9L8yp14096
2021/09/10(金) 22:13:37.39ID:UuNKa3lP141デフォルトの名無しさん
2021/09/10(金) 22:32:25.84ID:VHKKBZ5d そんなやり方があったとは知らなかった
142蟻人間 ◆T6xkBnTXz7B0
2021/09/10(金) 23:29:13.91ID:aesnFr7F お題: 円柱の高さ(5〜15cm)と半径(5〜10cm)を指定すると、その円柱の展開図のSVGデータを出力するプログラム。
展開図には一部、0.5〜1cmほどのりしろがあり、印刷・糊付けして実際に組み立てることができるものとする。SVGの用紙はA4サイズ。
展開図には一部、0.5〜1cmほどのりしろがあり、印刷・糊付けして実際に組み立てることができるものとする。SVGの用紙はA4サイズ。
143デフォルトの名無しさん
2021/09/11(土) 00:32:47.77ID:7ac2XrM2 >>142
糊代を折ることを考えたら円柱じゃなくて(円に近い)多角柱になると思うけど、それでいいの?
糊代を折ることを考えたら円柱じゃなくて(円に近い)多角柱になると思うけど、それでいいの?
145デフォルトの名無しさん
2021/09/12(日) 23:05:50.13ID:a0Jd4Hkz >>132
Java
https://paiza.io/projects/H0RSztAvHumk7NcFZBWWnA
"ESCESC"を "ESC" 任意の文字 に変換して
逆の変換すればOK
下記のJSONの文字列のようなエスケープでも
同様のやりかたで復元できる、はず
\ → \\
\r → \\r
\n → \\n
Java
https://paiza.io/projects/H0RSztAvHumk7NcFZBWWnA
"ESCESC"を "ESC" 任意の文字 に変換して
逆の変換すればOK
下記のJSONの文字列のようなエスケープでも
同様のやりかたで復元できる、はず
\ → \\
\r → \\r
\n → \\n
146デフォルトの名無しさん
2021/09/12(日) 23:51:43.19ID:a0Jd4Hkz 訂正
\ → \\\\
\r → \\r
\n → \\n
\ → \\\\
\r → \\r
\n → \\n
147デフォルトの名無しさん
2021/09/12(日) 23:52:06.11ID:a0Jd4Hkz 訂正2
\\ → \\\\
\r → \\r
\n → \\n
\\ → \\\\
\r → \\r
\n → \\n
148デフォルトの名無しさん
2021/09/13(月) 00:01:27.06ID:kzWLxl1N お題 転調記号の数
問題
12成分のベクトル
a=[ 5,2,3,4,1,6,1,4,3,2,5,0 ] // 半音上げた調号数
b=[ 0,5,2,3,4,1,6,1,4,3,2,5 ] // 原曲の調号数
c=[ 5,0,5,2,3,4,1,6,1,4,3,2 ] // 半音下げた調号数
をとる
12成分の実ベクトルxに対して
f(x) = min{ a・x, b・x、c・x } (・は内積)
と定める
xが領域
x[i]≧0, Σ_[i:1〜12] x[i]=1
を動く時f(x)の最小値を求めよ
原題は数学板にあるけど長いし音楽知らないとわけわかめになるので略
知りたい人は以下より
https://rio2016.5ch.net/test/read.cgi/math/1629715580/80
面白い問題おしえて〜な 38問目
と
https://rio2016.5ch.net/test/read.cgi/math/1629715580/190
面白い問題おしえて〜な 38問目
問題
12成分のベクトル
a=[ 5,2,3,4,1,6,1,4,3,2,5,0 ] // 半音上げた調号数
b=[ 0,5,2,3,4,1,6,1,4,3,2,5 ] // 原曲の調号数
c=[ 5,0,5,2,3,4,1,6,1,4,3,2 ] // 半音下げた調号数
をとる
12成分の実ベクトルxに対して
f(x) = min{ a・x, b・x、c・x } (・は内積)
と定める
xが領域
x[i]≧0, Σ_[i:1〜12] x[i]=1
を動く時f(x)の最小値を求めよ
原題は数学板にあるけど長いし音楽知らないとわけわかめになるので略
知りたい人は以下より
https://rio2016.5ch.net/test/read.cgi/math/1629715580/80
面白い問題おしえて〜な 38問目
と
https://rio2016.5ch.net/test/read.cgi/math/1629715580/190
面白い問題おしえて〜な 38問目
149デフォルトの名無しさん
2021/09/13(月) 07:01:38.59ID:eHkY1yZB x=[1,0,0,0,...]でf(x)は最小値0をとるけど、原題みるとf(x)の最大値を求めるのかな
150デフォルトの名無しさん
2021/09/13(月) 09:36:40.69ID:bTLuzAmV 対数とれば簡単
151デフォルトの名無しさん
2021/09/13(月) 10:04:21.34ID:kzWLxl1N152デフォルトの名無しさん
2021/09/13(月) 10:31:13.42ID:7dFFnUhL 黒鍵が1オクターブに5個しかないのに
調号が6個必要なのが納得出来ない
調号が6個必要なのが納得出来ない
153デフォルトの名無しさん
2021/09/13(月) 10:31:55.37ID:7dFFnUhL 最大値は3かな?
154デフォルトの名無しさん
2021/09/13(月) 15:11:00.36ID:kzWLxl1N >>152
嬰へ長調は♯6個とその異名同音調の変ト長調は♭6個でどうあがいても6個必要です
♭1個でキーは5/12上がり♯1個でキーは5/12下がりますがハ長調から見て嬰へ長調=変ト長調はどちらから回っていっても6個必要です
https://ja.m.wikipedia.org/wiki/%E5%AC%B0%E3%83%98%E9%95%B7%E8%AA%BF
>>153
もう少し大きいです
数学板で最初に出た3より大きい例は
https://rio2016.5ch.net/test/read.cgi/math/1629715580/157
面白い問題おしえて〜な 38問目
変ト長調3回、ニ長調4回、変ロ長調4回
0 5 2 3 4 1 6 1 4 3 2 5
_ 4 _ _ _ 3 _ _ _ 4 _ _ = 35 > 33
_ _ 4 _ _ _ 3 _ _ _ 4 _ = 34 > 33
_ _ _ 4 _ _ _ 3 _ _ _ 4 = 35 > 33
つまりこの場合f(0,0,4/11,0,0,0,3/11,0,0,0,4/11,0)=34/11です
ホントの最大値はもう少し大きくなります
嬰へ長調は♯6個とその異名同音調の変ト長調は♭6個でどうあがいても6個必要です
♭1個でキーは5/12上がり♯1個でキーは5/12下がりますがハ長調から見て嬰へ長調=変ト長調はどちらから回っていっても6個必要です
https://ja.m.wikipedia.org/wiki/%E5%AC%B0%E3%83%98%E9%95%B7%E8%AA%BF
>>153
もう少し大きいです
数学板で最初に出た3より大きい例は
https://rio2016.5ch.net/test/read.cgi/math/1629715580/157
面白い問題おしえて〜な 38問目
変ト長調3回、ニ長調4回、変ロ長調4回
0 5 2 3 4 1 6 1 4 3 2 5
_ 4 _ _ _ 3 _ _ _ 4 _ _ = 35 > 33
_ _ 4 _ _ _ 3 _ _ _ 4 _ = 34 > 33
_ _ _ 4 _ _ _ 3 _ _ _ 4 = 35 > 33
つまりこの場合f(0,0,4/11,0,0,0,3/11,0,0,0,4/11,0)=34/11です
ホントの最大値はもう少し大きくなります
155デフォルトの名無しさん
2021/09/13(月) 18:18:32.59ID:7dFFnUhL 円周率に近いな
156デフォルトの名無しさん
2021/09/13(月) 22:45:15.18ID:kzWLxl1N 答え有理数です
しかしプログラム板のお題なので近似値出れば良しでいいと思います
しかしプログラム板のお題なので近似値出れば良しでいいと思います
157デフォルトの名無しさん
2021/09/13(月) 22:51:14.71ID:7dFFnUhL 3.142857...
じゃなくて?
じゃなくて?
158デフォルトの名無しさん
2021/09/13(月) 23:14:04.32ID:kzWLxl1N 3.2は超えます
159デフォルトの名無しさん
2021/09/13(月) 23:14:24.72ID:7dFFnUhL orz
160ハノン ◆QZaw55cn4c
2021/09/14(火) 17:29:19.22161デフォルトの名無しさん
2021/09/14(火) 20:25:22.64ID:3yXL9VGN そう思ったら作曲してみよう
162デフォルトの名無しさん
2021/09/14(火) 23:17:19.71ID:ugFzvtUj サビで短3度転調、後半盛り上がって半音上げはポップス曲だとよくある
163デフォルトの名無しさん
2021/09/15(水) 02:21:25.59ID:3vtMVT28 >>148
そのお題はタイトルからして調べないと分からない単語が使われており、全体を通して何を言わんとしているのか分からない。
そのお題はタイトルからして調べないと分からない単語が使われており、全体を通して何を言わんとしているのか分からない。
164デフォルトの名無しさん
2021/09/15(水) 06:01:22.11ID:uRkyJcx+165ハノン ◆QZaw55cn4c
2021/09/15(水) 06:22:14.22 >>162
>サビで短3度転調、後半盛り上がって半音上げはポップス曲だとよくある
気がつきませんでした、なるほど
>後半盛り上がって半音上げ
最後に半音上がるアレ、主和音と同じ高さで導音系の和音を強奏するのが無理があると思っており好みじゃないのです‥‥
https://www.youtube.com/watch?v=ENgNiqc0m3I&t=275s
>サビで短3度転調、後半盛り上がって半音上げはポップス曲だとよくある
気がつきませんでした、なるほど
>後半盛り上がって半音上げ
最後に半音上がるアレ、主和音と同じ高さで導音系の和音を強奏するのが無理があると思っており好みじゃないのです‥‥
https://www.youtube.com/watch?v=ENgNiqc0m3I&t=275s
166デフォルトの名無しさん
2021/09/15(水) 06:28:49.75ID:uRkyJcx+ お前の好みとかどうで良くね?
167デフォルトの名無しさん
2021/09/15(水) 06:34:56.44ID:uRkyJcx+168ハノン ◆QZaw55cn4c
2021/09/15(水) 06:45:27.54169デフォルトの名無しさん
2021/09/15(水) 08:25:52.14ID:m09hSrNp170デフォルトの名無しさん
2021/09/15(水) 21:26:44.83ID:UGHCgEvY ちなみにこの問題よくよく考えるとアルゴリズムの教科書によく出る超有名問題になってます
問題の名前だけは高校の数学の教科書にも載ってるくらい有名な問題です
問題の名前だけは高校の数学の教科書にも載ってるくらい有名な問題です
171デフォルトの名無しさん
2021/09/15(水) 22:28:51.28ID:qUQwebCi 3.2222222222222ってなるのかな
3.222221で止まってるけど
3.222221で止まってるけど
172デフォルトの名無しさん
2021/09/15(水) 22:31:14.96ID:uRkyJcx+ 最大=>3個とも平均が同じ=>3個の調しか使わない最大が存在する=>12C3全検索
173デフォルトの名無しさん
2021/09/15(水) 23:00:11.21ID:UGHCgEvY >>171
それです
見つけ方は>>171さんの方法が1番簡単
なんせ何も工夫しなくてもC[12,3]=220通りしかないので全部総当たりで計算する方が早い
それには
5a+ 2b+ 3c+ 4d+ 1e+ 6f+ 1g+ 4h+ 3i+ 2j+ 5k+ 0l
≧
0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l、
5a+ 0b+ 5c+ 2d+ 3e+ 4f+ 1g+ 6h+ 1i+ 4j+ 3k+ 2l
≧
0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l、
a*b+c+d+e+f+g+h+i+j*k+l≧1
の中の
0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l
の最大値探す時に例えばd,f,h成分だけ0でない領域での最大値を見つけるには12元の線形方程式
5a+ 2b+ 3c+ 4d+ 1e+ 6f+ 1g+ 4h+ 3i+ 2j+ 5k+ 0l
=
0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l、
5a+ 0b+ 5c+ 2d+ 3e+ 4f+ 1g+ 6h+ 1i+ 4j+ 3k+ 2l
=
0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l、
a*b+c+d+e+f+g+h+i+j*k+l=1、
a=b=c=e=g=i=j=k=l=0
を解いてどれかの成分が0以下なら捨て、正なら候補に残して全部調べてのパターンを後3つやればいけます
(もちろん有理係数の線形方程式なので解は有理数)
その際線形代数の計算をやってくれるライブラリがあれはそんなに大変な作業にはならないはずです
というかこのタイプの問題“線形計画法”この問題解くためのライブラリ持ってるやつが多いのでその場合は数行で終わってしまいます
それです
見つけ方は>>171さんの方法が1番簡単
なんせ何も工夫しなくてもC[12,3]=220通りしかないので全部総当たりで計算する方が早い
それには
5a+ 2b+ 3c+ 4d+ 1e+ 6f+ 1g+ 4h+ 3i+ 2j+ 5k+ 0l
≧
0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l、
5a+ 0b+ 5c+ 2d+ 3e+ 4f+ 1g+ 6h+ 1i+ 4j+ 3k+ 2l
≧
0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l、
a*b+c+d+e+f+g+h+i+j*k+l≧1
の中の
0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l
の最大値探す時に例えばd,f,h成分だけ0でない領域での最大値を見つけるには12元の線形方程式
5a+ 2b+ 3c+ 4d+ 1e+ 6f+ 1g+ 4h+ 3i+ 2j+ 5k+ 0l
=
0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l、
5a+ 0b+ 5c+ 2d+ 3e+ 4f+ 1g+ 6h+ 1i+ 4j+ 3k+ 2l
=
0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l、
a*b+c+d+e+f+g+h+i+j*k+l=1、
a=b=c=e=g=i=j=k=l=0
を解いてどれかの成分が0以下なら捨て、正なら候補に残して全部調べてのパターンを後3つやればいけます
(もちろん有理係数の線形方程式なので解は有理数)
その際線形代数の計算をやってくれるライブラリがあれはそんなに大変な作業にはならないはずです
というかこのタイプの問題“線形計画法”この問題解くためのライブラリ持ってるやつが多いのでその場合は数行で終わってしまいます
174デフォルトの名無しさん
2021/09/16(木) 00:34:05.02ID:g1b5b/gu175デフォルトの名無しさん
2021/09/19(日) 19:11:20.33ID:zqOP2O5f >>174
理詰めの解答よりこういう力技の解答の方がありがたいです
理詰めはどっかでうっかり間違ってる事も多いので
>>172さんの方針で220通り全数検索するコード組んでみました
https://ideone.com/Vyqp8r
元々用意してた解答は単体法( Simplex algorythm)というやつ使う方法だったんですけど、220個位なら全数検査した方が安全ですね
しかも全部調べるのでベスト10とか出せる
さっきのコードは原曲のままが最小になる場合のベスト10とどちらかに半音ずらした方が最小になる場合のベスト10です
理詰めの解答よりこういう力技の解答の方がありがたいです
理詰めはどっかでうっかり間違ってる事も多いので
>>172さんの方針で220通り全数検索するコード組んでみました
https://ideone.com/Vyqp8r
元々用意してた解答は単体法( Simplex algorythm)というやつ使う方法だったんですけど、220個位なら全数検査した方が安全ですね
しかも全部調べるのでベスト10とか出せる
さっきのコードは原曲のままが最小になる場合のベスト10とどちらかに半音ずらした方が最小になる場合のベスト10です
176蟻人間 ◆T6xkBnTXz7B0
2021/09/23(木) 00:23:18.14ID:WyFAZLWz お題: 中心(x, y)で半径mの円と、中心(z, w)で半径nの円の当たり判定。
177蟻人間 ◆T6xkBnTXz7B0
2021/09/23(木) 00:36:24.97ID:WyFAZLWz お題: カオス理論で知られるローレンツ・アトラクタを描画せよ。
178蟻人間 ◆T6xkBnTXz7B0
2021/09/23(木) 00:45:13.27ID:WyFAZLWz お題: 厚み0.5cm長さX cmのしなやかなテープを最小のうずまき状にまるめると直径は何cmになるか。X = 20, 30, 50.
180デフォルトの名無しさん
2021/09/23(木) 12:40:13.64ID:fWOsjY2x document.querySelectorAll('.post').forEach( e => {
const nameElement = e.querySelector('.name');
if(nameElement === null) return;
const name = nameElement.innerText;
if(name.indexOf('◆T6xkBnTXz7B0') >= 0 || name.indexOf('◆QZaw55cn4c') >= 0) e.remove();
});
const nameElement = e.querySelector('.name');
if(nameElement === null) return;
const name = nameElement.innerText;
if(name.indexOf('◆T6xkBnTXz7B0') >= 0 || name.indexOf('◆QZaw55cn4c') >= 0) e.remove();
});
181デフォルトの名無しさん
2021/09/23(木) 16:05:27.59ID:jg/8HMJJ >>176
それって数学的な証明はよくわからないんだけど直感的に考えると、(x, y) から (z, w) の距離が m + n 以下なら当たりで良いのかな?
他のパターンで当たる場合はなさそうだけど、あったとしても今は思いつかないのでとりあえずプログラムはそれで作ろうかと思う。
それって数学的な証明はよくわからないんだけど直感的に考えると、(x, y) から (z, w) の距離が m + n 以下なら当たりで良いのかな?
他のパターンで当たる場合はなさそうだけど、あったとしても今は思いつかないのでとりあえずプログラムはそれで作ろうかと思う。
182デフォルトの名無しさん
2021/09/23(木) 16:34:26.56ID:LOQBNAlJ 円周か円板かで答えが違う
183デフォルトの名無しさん
2021/09/23(木) 17:12:27.81ID:QUC7Fk2H 入力として整数値が与えられたらその中の立っているビットを
等確率でランダムに一つ抜き出した整数値を出力する
3が与えられたら1か2のどちらかを1/2の確率で
17179877640が与えられたら8か256か8192か17179869184のどれかを1/4で
等確率でランダムに一つ抜き出した整数値を出力する
3が与えられたら1か2のどちらかを1/2の確率で
17179877640が与えられたら8か256か8192か17179869184のどれかを1/4で
184デフォルトの名無しさん
2021/09/23(木) 18:08:32.21ID:em+PQ8QU >>Ruby
n = 17179877640
bits = []
while n > 0
n ^= b = n & -n
bits << b
end
puts bits.sample
n = 17179877640
bits = []
while n > 0
n ^= b = n & -n
bits << b
end
puts bits.sample
185181
2021/09/24(金) 02:52:30.55ID:N3yB15M0186デフォルトの名無しさん
2021/09/24(金) 18:51:00.62ID:FX1uO51R お題 繁分数
奇数個の整数がカンマで区切りで与えられる
間に'+'と'/'を順に挿入して計算する、ただし優先順位は後から優先
例) "1,2,3,4,5,6,7" → " 1 + 2 / ( 3 + 4 / ( 5 + 6 / 7 ))) = 233/151 ≒ 1.543046357616
計算結果を出力せよ
例)
入力 : "1,2,3,4,5,6,7"
出力 : 1.543046357616
入力 : "1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2"
出力 : 1.4142135623730951
入力 : "2,1, 1,1, 2,1, 1,1, 1,1, 4,1, 1,1, 1,1, 6,1, 1,1, 1,1 "
出力 : 2.718283582089552
入力 : "0, 4, 1, 1, 3, 4, 5, 9, 7, 16, 9, 25, 11, 36, 13, 49, 15, 64, 17, 81, 19, 100"
出力 : 3.141593311879928
奇数個の整数がカンマで区切りで与えられる
間に'+'と'/'を順に挿入して計算する、ただし優先順位は後から優先
例) "1,2,3,4,5,6,7" → " 1 + 2 / ( 3 + 4 / ( 5 + 6 / 7 ))) = 233/151 ≒ 1.543046357616
計算結果を出力せよ
例)
入力 : "1,2,3,4,5,6,7"
出力 : 1.543046357616
入力 : "1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2"
出力 : 1.4142135623730951
入力 : "2,1, 1,1, 2,1, 1,1, 1,1, 4,1, 1,1, 1,1, 6,1, 1,1, 1,1 "
出力 : 2.718283582089552
入力 : "0, 4, 1, 1, 3, 4, 5, 9, 7, 16, 9, 25, 11, 36, 13, 49, 15, 64, 17, 81, 19, 100"
出力 : 3.141593311879928
187デフォルトの名無しさん
2021/09/24(金) 19:42:20.13ID:SF8pwxS9 >>186
なぜ、偶数個あるのか?
偶数個は最後に1"を入れてやってみた
(頭悪いからリヴァースして、浮動小数点でやっている)
https://wandbox.org/permlink/jzQZa53lpDSPdJo1
なぜ、偶数個あるのか?
偶数個は最後に1"を入れてやってみた
(頭悪いからリヴァースして、浮動小数点でやっている)
https://wandbox.org/permlink/jzQZa53lpDSPdJo1
188デフォルトの名無しさん
2021/09/24(金) 21:54:41.68ID:uMkpdCmM >>187
数え間違えorz
数え間違えorz
189ハノン ◆QZaw55cn4c
2021/09/25(土) 21:21:39.43ID:YrZFQiAF19196
2021/09/25(土) 22:19:21.21ID:qK5TmKac >>186 Perl5
use feature qw{signatures say};
no warnings 'experimental';
sub s($a, $b, @a) { @a ? $a + &d($b, @a) : $a + $b }
sub d($a, $b, @a) { @a ? $a / &s($b, @a) : $a / $b }
say &s(/(\d+)/g) for <DATA>;
__DATA__
1,2,3,4,5,6,7
1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2
2,1,1,1,2,1,1,1,1,1,4,1,1,1,1,1,6,1,1,1,1,1
0,4,1,1,3,4,5,9,7,16,9,25,11,36,13,49,15,64,17,81,19,100
実行結果
$ perl 20_186_fraction.pl
1.54304635761589
1.4142135623731
2.71828236824984
3.14159316790851
use feature qw{signatures say};
no warnings 'experimental';
sub s($a, $b, @a) { @a ? $a + &d($b, @a) : $a + $b }
sub d($a, $b, @a) { @a ? $a / &s($b, @a) : $a / $b }
say &s(/(\d+)/g) for <DATA>;
__DATA__
1,2,3,4,5,6,7
1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2
2,1,1,1,2,1,1,1,1,1,4,1,1,1,1,1,6,1,1,1,1,1
0,4,1,1,3,4,5,9,7,16,9,25,11,36,13,49,15,64,17,81,19,100
実行結果
$ perl 20_186_fraction.pl
1.54304635761589
1.4142135623731
2.71828236824984
3.14159316790851
192デフォルトの名無しさん
2021/09/26(日) 00:35:27.94ID:x+MOSZRz >>186
ruby -ne "/$_.split(?,).map(&:to_f).each_slice(2).reverse_each.reduce{|(s), (a, b)| b / s + a}"
# input
1,2,3,4,5,6,7
1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2
2,1, 1,1, 2,1, 1,1, 1,1, 4,1, 1,1, 1,1, 6,1, 1,1, 1,1,1
0, 4, 1, 1, 3, 4, 5, 9, 7, 16, 9, 25, 11, 36, 13, 49, 15, 64, 17, 81, 19, 100, 1
# output
1.5430463576158941
1.4142135623730951
2.718282368249837
3.141593167908507
ruby -ne "/$_.split(?,).map(&:to_f).each_slice(2).reverse_each.reduce{|(s), (a, b)| b / s + a}"
# input
1,2,3,4,5,6,7
1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2
2,1, 1,1, 2,1, 1,1, 1,1, 4,1, 1,1, 1,1, 6,1, 1,1, 1,1,1
0, 4, 1, 1, 3, 4, 5, 9, 7, 16, 9, 25, 11, 36, 13, 49, 15, 64, 17, 81, 19, 100, 1
# output
1.5430463576158941
1.4142135623730951
2.718282368249837
3.141593167908507
193ハノン ◆QZaw55cn4c
2021/09/26(日) 02:32:13.09ID:fnZfkDL3 >>186 C
>>189
終端処理を間違えていたので御題にあわせて修正
https://ideone.com/4mkYde
233/151 = 1.54304635761589414855
1855077841/1311738121 = 1.41421356237309514547
1457/536 = 2.71828358208955211950
54193766400/17250408000 = 3.14159331187992751921
>>189
終端処理を間違えていたので御題にあわせて修正
https://ideone.com/4mkYde
233/151 = 1.54304635761589414855
1855077841/1311738121 = 1.41421356237309514547
1457/536 = 2.71828358208955211950
54193766400/17250408000 = 3.14159331187992751921
194デフォルトの名無しさん
2021/09/26(日) 02:51:04.12ID:edcxzAwz19596
2021/09/26(日) 11:06:39.50ID:ROfWiNc+ >>186 Perl5、>>191だと分母が大きい値になるテストケースで下の桁が例解と違ってくるので、通分を下から再帰的に行って
最後に割り算するようにした。また数値の個数が偶数だった場合には0を補うようにした
use feature qw{signatures say}; no warnings 'experimental';
sub f($a, $b, $c = 0, @r) {
if (@r) {
($c, $e) = f($c, @r);
$b *= $e;
}
($a * $c + $b), $c;
}
for (<DATA>) {
my ($n, $d) = f(/(\d+)/g);
say "$n / $d = ", $n / $d;
}
__DATA__
1,2,3,4,5,6,7
1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2
2,1,1,1,2,1,1,1,1,1,4,1,1,1,1,1,6,1,1,1,1,1
0,4,1,1,3,4,5,9,7,16,9,25,11,36,13,49,15,64,17,81,19,100
$ perl 20_186_fraction_2.pl
233 / 151 = 1.54304635761589
1855077841 / 1311738121 = 1.4142135623731
1457 / 536 = 2.71828358208955
54193766400 / 17250408000 = 3.14159331187993
最後に割り算するようにした。また数値の個数が偶数だった場合には0を補うようにした
use feature qw{signatures say}; no warnings 'experimental';
sub f($a, $b, $c = 0, @r) {
if (@r) {
($c, $e) = f($c, @r);
$b *= $e;
}
($a * $c + $b), $c;
}
for (<DATA>) {
my ($n, $d) = f(/(\d+)/g);
say "$n / $d = ", $n / $d;
}
__DATA__
1,2,3,4,5,6,7
1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2
2,1,1,1,2,1,1,1,1,1,4,1,1,1,1,1,6,1,1,1,1,1
0,4,1,1,3,4,5,9,7,16,9,25,11,36,13,49,15,64,17,81,19,100
$ perl 20_186_fraction_2.pl
233 / 151 = 1.54304635761589
1855077841 / 1311738121 = 1.4142135623731
1457 / 536 = 2.71828358208955
54193766400 / 17250408000 = 3.14159331187993
196デフォルトの名無しさん
2021/09/26(日) 13:52:29.02ID:Db797RWb197デフォルトの名無しさん
2021/09/26(日) 15:05:57.74ID:RIy3qD4V >>186 ocaml
https://ideone.com/VpQwAG
let f xs =
let rec g = function
[] -> 0, 1
| a :: [] -> a, 1
| a :: b :: [] -> a + b, 1
| a :: b :: cs -> let n, d = g cs in a * n + b * d, n
in let n, d = g xs in Printf.printf "%d / %d = " n d;float n /. float d
>>186 ocaml
https://ideone.com/5D0lHx
let f xs =
let rec g = function
[] -> 0, 1
| x :: [] -> x, 1
| x :: xs -> let n, d = h xs in x * d + n, d
and h = function
[] -> 0, 1
| x :: [] -> x, 1
| x :: xs -> let n, d = g xs in x * d, n
in let n, d = g xs in Printf.printf "%d / %d = " n d;float n /. float d
https://ideone.com/VpQwAG
let f xs =
let rec g = function
[] -> 0, 1
| a :: [] -> a, 1
| a :: b :: [] -> a + b, 1
| a :: b :: cs -> let n, d = g cs in a * n + b * d, n
in let n, d = g xs in Printf.printf "%d / %d = " n d;float n /. float d
>>186 ocaml
https://ideone.com/5D0lHx
let f xs =
let rec g = function
[] -> 0, 1
| x :: [] -> x, 1
| x :: xs -> let n, d = h xs in x * d + n, d
and h = function
[] -> 0, 1
| x :: [] -> x, 1
| x :: xs -> let n, d = g xs in x * d, n
in let n, d = g xs in Printf.printf "%d / %d = " n d;float n /. float d
198デフォルトの名無しさん
2021/09/26(日) 15:06:59.82ID:RIy3qD4V let g xs = Printf.printf "%.16f\n" @@ f xs
let () =
g [];g [1];g [1;2];g [1;2;3];g [1;2;3;4];g [1;2;3;4;5;6];
g [1;2;3;4;5;6;7];
g [1;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2];
g [2;1;1;1;2;1;1;1;1;1;4;1;1;1;1;1;6;1;1;1;1;1];
g [0;4;1;1;3;4;5;9;7;16;9;25;11;36;13;49;15;64;17;81;19;100];
g [0;4;1;1;3;4;5;9;7;16;9;25;11;36;13;49;15;64;17;81;19];
g [0;4;1;1;3;4;5;9;7;16;9;25;11;36;13;49;15;64;17;81;19;100;21]
↓
0 / 1 = 0.0000000000000000
1 / 1 = 1.0000000000000000
3 / 1 = 3.0000000000000000
5 / 3 = 1.6666666666666667
9 / 7 = 1.2857142857142858
59 / 37 = 1.5945945945945945
233 / 151 = 1.5430463576158941
1855077841 / 1311738121 = 1.4142135623730951
4178 / 1537 = 2.7182823682498372
66628546560 / 21208521600 = 3.1415931679085070
12434780160 / 3958113600 = 3.1415925404465401
315324149760 / 100370793600 = 3.1415926730303347
let () =
g [];g [1];g [1;2];g [1;2;3];g [1;2;3;4];g [1;2;3;4;5;6];
g [1;2;3;4;5;6;7];
g [1;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2];
g [2;1;1;1;2;1;1;1;1;1;4;1;1;1;1;1;6;1;1;1;1;1];
g [0;4;1;1;3;4;5;9;7;16;9;25;11;36;13;49;15;64;17;81;19;100];
g [0;4;1;1;3;4;5;9;7;16;9;25;11;36;13;49;15;64;17;81;19];
g [0;4;1;1;3;4;5;9;7;16;9;25;11;36;13;49;15;64;17;81;19;100;21]
↓
0 / 1 = 0.0000000000000000
1 / 1 = 1.0000000000000000
3 / 1 = 3.0000000000000000
5 / 3 = 1.6666666666666667
9 / 7 = 1.2857142857142858
59 / 37 = 1.5945945945945945
233 / 151 = 1.5430463576158941
1855077841 / 1311738121 = 1.4142135623730951
4178 / 1537 = 2.7182823682498372
66628546560 / 21208521600 = 3.1415931679085070
12434780160 / 3958113600 = 3.1415925404465401
315324149760 / 100370793600 = 3.1415926730303347
199ハノン ◆QZaw55cn4c
2021/09/26(日) 19:57:37.78ID:KhgDxRBF200ハノン ◆QZaw55cn4c
2021/09/26(日) 19:58:46.43ID:KhgDxRBF つまり >>193 は言語として冗長だ、という点が悲しい、という意味です、誤解を招かないように補充します
201デフォルトの名無しさん
2021/09/26(日) 21:14:48.05ID:K0n5mMQr202デフォルトの名無しさん
2021/09/26(日) 21:49:22.16ID:6LE1NaJb お題: 与えられたUTF-8日本語文章から空白と記号を取り除いた後の文字列にNGワードがあるかどうか判定せよ。
NGワード: 「集近閉」「地獄経済」
例文1「集☆近☆閉☆は☆不☆滅」
例文2「地/獄/経/済/は/大/丈/夫」
出力例:「NGワード「集近閉」があります。」
出力例:「OKです。」
NGワード: 「集近閉」「地獄経済」
例文1「集☆近☆閉☆は☆不☆滅」
例文2「地/獄/経/済/は/大/丈/夫」
出力例:「NGワード「集近閉」があります。」
出力例:「OKです。」
203デフォルトの名無しさん
2021/09/26(日) 21:51:41.83ID:K0n5mMQr204デフォルトの名無しさん
2021/09/26(日) 21:58:42.24ID:Db797RWb205デフォルトの名無しさん
2021/09/27(月) 02:09:19.34ID:mB71+9h3 お題:: 文字列に対して文字列の範囲を指定すると、その範囲を角カッコで囲って出力するプログラムを作れ
文字列はASCII文字の並びでソートされている前提とする
入力フォーマット
文字列
範囲
入力
abcdefghijklmn
c-g
出力
ab[cdefg]hijklmn
文字列はASCII文字の並びでソートされている前提とする
入力フォーマット
文字列
範囲
入力
abcdefghijklmn
c-g
出力
ab[cdefg]hijklmn
206デフォルトの名無しさん
2021/09/27(月) 03:27:36.76ID:HGR3sN0a お題: ハッシュタグをGoogle検索リンクに変換せよ。
ハッシュタグを含む日本語UTF-8文字列が与えられる。ハッシュタグをHTMLハイパーリンクに変換してHTMLテキストを出力する。
ハッシュタグは「#」か「#」か「♯」で始まるものとします。
ハッシュタグには半角の「_」以外の記号と空白は使えません。
HTMLの特殊文字「&<>」はそれぞれ「&」「<」「>」に変換するものとします。
検索リンクは日本語グーグルを使用します。
入力例「これは #テスト文字列です。 #家族募集中 <本日は雨天なり>」
ハッシュタグを含む日本語UTF-8文字列が与えられる。ハッシュタグをHTMLハイパーリンクに変換してHTMLテキストを出力する。
ハッシュタグは「#」か「#」か「♯」で始まるものとします。
ハッシュタグには半角の「_」以外の記号と空白は使えません。
HTMLの特殊文字「&<>」はそれぞれ「&」「<」「>」に変換するものとします。
検索リンクは日本語グーグルを使用します。
入力例「これは #テスト文字列です。 #家族募集中 <本日は雨天なり>」
207デフォルトの名無しさん
2021/09/27(月) 03:36:26.68ID:lACGcuZa >>206
出力例もよろしく
出力例もよろしく
208デフォルトの名無しさん
2021/09/27(月) 03:39:59.74ID:HGR3sN0a >>206
訂正。「&」→「&」
訂正。「&」→「&」
209デフォルトの名無しさん
2021/09/27(月) 04:15:57.90ID:HGR3sN0a >>206
出力例「これは <a href="https://google.co.jp/search?hl=ja&source=hp&q=テスト文字列です">#テスト文字列です</a>。 <a href="https://google.co.jp/search?hl=ja&source=hp&q=家族募集中">#家族募集中</a> <本日は雨天なり>」
出力例「これは <a href="https://google.co.jp/search?hl=ja&source=hp&q=テスト文字列です">#テスト文字列です</a>。 <a href="https://google.co.jp/search?hl=ja&source=hp&q=家族募集中">#家族募集中</a> <本日は雨天なり>」
210デフォルトの名無しさん
2021/09/27(月) 10:56:06.17ID:BIqiQYZe 家族募集中
が無視されてるのは何故?
が無視されてるのは何故?
211デフォルトの名無しさん
2021/09/27(月) 11:20:24.19ID:FdLhLOZv >>206
$ echo -e 'これは #テスト文字列です。 #家族募集 中 <本日は雨天なり>' |
sed -e 's/&/\&/g' -e 's/</\</g' -e 's/>/\>/g' -e 's![##♯]\(\w*\)!<a href="https://google.co.jp/search?hl=ja\&source=hp\&q=\1">&</a>!g'
これは <a href="https://google.co.jp/search?hl=ja&source=hp&q=テスト文字列です">#テスト文字列です</a>。 <a href="https://google.co.jp/search?hl=ja&source=hp&q=家族募集中">#家族募集中</a> <本日は雨天なり>
$ echo -e 'これは #テスト文字列です。 #家族募集 中 <本日は雨天なり>' |
sed -e 's/&/\&/g' -e 's/</\</g' -e 's/>/\>/g' -e 's![##♯]\(\w*\)!<a href="https://google.co.jp/search?hl=ja\&source=hp\&q=\1">&</a>!g'
これは <a href="https://google.co.jp/search?hl=ja&source=hp&q=テスト文字列です">#テスト文字列です</a>。 <a href="https://google.co.jp/search?hl=ja&source=hp&q=家族募集中">#家族募集中</a> <本日は雨天なり>
212デフォルトの名無しさん
2021/09/27(月) 16:42:34.63ID:lACGcuZa213デフォルトの名無しさん
2021/09/27(月) 17:07:09.23ID:lACGcuZa214デフォルトの名無しさん
2021/09/27(月) 21:40:29.82ID:lACGcuZa >>205
Kotlin
https://paiza.io/projects/HOEEJeT5syiOJDkmB6VLlQ
正規表現使って置換しているだけ。他の言語でも正規表現使ったら大差ない感じになるかも。
Kotlin
https://paiza.io/projects/HOEEJeT5syiOJDkmB6VLlQ
正規表現使って置換しているだけ。他の言語でも正規表現使ったら大差ない感じになるかも。
215デフォルトの名無しさん
2021/09/27(月) 22:04:19.72ID:IGWq0JTX >>205 octave
https://ideone.com/p4vSPE
f = @(s, r) regexprep(s, ['([' r ']+)'], '[$1]');
f('abcdefghijklmn', 'c-g')
https://ideone.com/p4vSPE
f = @(s, r) regexprep(s, ['([' r ']+)'], '[$1]');
f('abcdefghijklmn', 'c-g')
216デフォルトの名無しさん
2021/09/27(月) 23:53:33.07ID:CFsFGFcT217デフォルトの名無しさん
2021/09/28(火) 00:35:44.78ID:R7FPj2K+ >>213
やはりそれきましたかw
やはりそれきましたかw
218デフォルトの名無しさん
2021/09/28(火) 02:40:03.94ID:wFK5NO29219デフォルトの名無しさん
2021/09/28(火) 07:20:01.83ID:OyddjX6J220デフォルトの名無しさん
2021/09/28(火) 07:27:57.86ID:OyddjX6J221デフォルトの名無しさん
2021/09/28(火) 10:29:00.43ID:wFK5NO29 あ、そーか。2乗のまま比較すればsqrt不要だったな。
222デフォルトの名無しさん
2021/09/28(火) 19:11:27.77ID:RwSKB5Xt223デフォルトの名無しさん
2021/09/28(火) 23:13:01.41ID:R7FPj2K+ >>209
の出力例をみると“テスト文字列です”は文字列、“。”な区切り記号と認識してここで切らないとダメみたいだけど、だとするとunicodeの文字列の中にある“区切り記号”と“文字列を構成する文字”を区別しないといけなくなる
GOには“unicode”というライブラリが用意されてて簡単にできるみたいだけどオレが愛用するHaskellではその手のライブラリが見つからんorz
流石にスクラッチで一から書くのは無理だし
どっかに“コード××〜××までは記号”とか一覧になってるテーブルとかないんかな
の出力例をみると“テスト文字列です”は文字列、“。”な区切り記号と認識してここで切らないとダメみたいだけど、だとするとunicodeの文字列の中にある“区切り記号”と“文字列を構成する文字”を区別しないといけなくなる
GOには“unicode”というライブラリが用意されてて簡単にできるみたいだけどオレが愛用するHaskellではその手のライブラリが見つからんorz
流石にスクラッチで一から書くのは無理だし
どっかに“コード××〜××までは記号”とか一覧になってるテーブルとかないんかな
224デフォルトの名無しさん
2021/09/29(水) 00:03:13.95ID:BLI1g7MR POSIX character classes
225デフォルトの名無しさん
2021/09/29(水) 00:18:36.77ID:1i2b1Egj お題: 次を真似して作れ。
「突然の死ジェネレーター」
https://totuzennosi.sacnoha.com/
ただし、等幅フォントでの表示を想定し、半角・全角の文字幅の違いを尊重すること。
「突然の死ジェネレーター」
https://totuzennosi.sacnoha.com/
ただし、等幅フォントでの表示を想定し、半角・全角の文字幅の違いを尊重すること。
226デフォルトの名無しさん
2021/09/29(水) 04:42:10.56ID:WX6C7qGJ >>225
★や※を全角にするか半角にするかに依存。要はフォントに依存するから無理
★や※を全角にするか半角にするかに依存。要はフォントに依存するから無理
227デフォルトの名無しさん
2021/09/29(水) 11:07:43.39ID:0XODgfdX Unicodeで半角全角を扱う Ambiguous(曖昧さ)とUncertainty(不確実性)の恐怖
https://qiita.com/Nuits/items/71a69cf32d547c9875bb
ま、しかし、なんとなくいい加減で入力によってはおかしくなるやつならば作れるので、後で時間があったら作ろう。
https://qiita.com/Nuits/items/71a69cf32d547c9875bb
ま、しかし、なんとなくいい加減で入力によってはおかしくなるやつならば作れるので、後で時間があったら作ろう。
228デフォルトの名無しさん
2021/09/29(水) 12:01:49.91ID:hPAWkWy2 >>227
> Unicodeで半角全角を扱う場合、まずフォントがEast Asian Widthの規定を正しく守っている必要があります。でも実際にはそうとは限りません。
>
> またそれを取り扱うプラットフォームも適切に実装されている必要がありますが、必ずしもそうとは限りません。
仕様を満たしてないものは仕様通りの挙動にならないかどで仕様を叩いているということで合ってる?
> Unicodeで半角全角を扱う場合、まずフォントがEast Asian Widthの規定を正しく守っている必要があります。でも実際にはそうとは限りません。
>
> またそれを取り扱うプラットフォームも適切に実装されている必要がありますが、必ずしもそうとは限りません。
仕様を満たしてないものは仕様通りの挙動にならないかどで仕様を叩いているということで合ってる?
229デフォルトの名無しさん
2021/09/29(水) 12:03:25.69ID:SXvzkJ7t Boys, be Ambiguous.
230デフォルトの名無しさん
2021/09/29(水) 12:32:11.32ID:SXvzkJ7t231デフォルトの名無しさん
2021/09/29(水) 13:28:55.86ID:p1B8H211232デフォルトの名無しさん
2021/09/29(水) 13:41:53.17ID:p1B8H211 >>230
> 2020年、2021年の東京では、東京マラソンの開催、東京国際クルーズターミナルのオープン、
> 東京2020オリンピック・パラリンピック競技大会の開催など、国際的に注目を集めるイベントが
> 多数予定されています。
外国からの入国制限、及び無観客にして解決。
> 2020年、2021年の東京では、東京マラソンの開催、東京国際クルーズターミナルのオープン、
> 東京2020オリンピック・パラリンピック競技大会の開催など、国際的に注目を集めるイベントが
> 多数予定されています。
外国からの入国制限、及び無観客にして解決。
233デフォルトの名無しさん
2021/09/29(水) 19:41:42.38ID:p1B8H211234蟻人間 ◆T6xkBnTXz7B0
2021/09/29(水) 19:46:15.13ID:1i2b1Egj お題: 重力と慣性のないデカルト座標系に長さ3, 4, 5の固くて丈夫な連結された3本の棒B1, B2, B3がある。棒の幅はゼロに近い。
B1, B2, B3は現在x軸上に並んでいて、それぞれの端点の座標はO(0, 0)~E1(3, 0)、E1(3, 0)~E2(7, 0)、E2(7, 0)~E3(12, 0)である。
B1, B2, B3はこの順で端点が連結されており、B1の一端は原点O(0, 0)に連結されている。B3の他方の端は自由である。連結点では-180〜180度曲げることができる。
このような条件でB1, B2, B3を連結点O, E1, E2を中心に回転するとE1, E2, E3は移動するであろう。
さて、点P(x, y)が与えられたとき、どのように回転すればE3がPに重なるであろうか。その回答の一つを求めよ。許容誤差をε=0.01とする。
入力例「P=(0, 12)」「P=(5, 5)」「P=(15, 3)」
出力例「90度、0度、0度」「ありません」
B1, B2, B3は現在x軸上に並んでいて、それぞれの端点の座標はO(0, 0)~E1(3, 0)、E1(3, 0)~E2(7, 0)、E2(7, 0)~E3(12, 0)である。
B1, B2, B3はこの順で端点が連結されており、B1の一端は原点O(0, 0)に連結されている。B3の他方の端は自由である。連結点では-180〜180度曲げることができる。
このような条件でB1, B2, B3を連結点O, E1, E2を中心に回転するとE1, E2, E3は移動するであろう。
さて、点P(x, y)が与えられたとき、どのように回転すればE3がPに重なるであろうか。その回答の一つを求めよ。許容誤差をε=0.01とする。
入力例「P=(0, 12)」「P=(5, 5)」「P=(15, 3)」
出力例「90度、0度、0度」「ありません」
235デフォルトの名無しさん
2021/09/29(水) 20:45:55.00ID:ktvYkylG237デフォルトの名無しさん
2021/09/29(水) 21:47:32.31ID:yKvURuJk 悪"そう"では無いな。説明において要点を整理出来ない者はすべからく頭悪い
問題文はその者の理解度に等しい
問題文はその者の理解度に等しい
238デフォルトの名無しさん
2021/09/30(木) 00:49:10.52ID:Ai6xyiAS239デフォルトの名無しさん
2021/09/30(木) 01:23:41.62ID:Ai6xyiAS240デフォルトの名無しさん
2021/09/30(木) 03:52:16.30ID:Ai6xyiAS ちなみに代わりに出題するなら
入力(a,b)に対して方程式
a = 3cos(x) + 4cos(x+y) + 5cos(x+y+z)
a = 3sin(x) + 4sin(x+y) + 5sin(x+y+z)
の解x,y,zをひとつ求め(度数法で与えるとする)
「x度、y度、z度」
の形で出力せよ、解がない場合には
「ありません」
と出力せよ
ただし角度の範囲は-180°〜180°の範囲で与えるとする
かな
入力(a,b)に対して方程式
a = 3cos(x) + 4cos(x+y) + 5cos(x+y+z)
a = 3sin(x) + 4sin(x+y) + 5sin(x+y+z)
の解x,y,zをひとつ求め(度数法で与えるとする)
「x度、y度、z度」
の形で出力せよ、解がない場合には
「ありません」
と出力せよ
ただし角度の範囲は-180°〜180°の範囲で与えるとする
かな
241デフォルトの名無しさん
2021/09/30(木) 20:22:48.51ID:59EqeRS1243デフォルトの名無しさん
2021/09/30(木) 20:35:20.03ID:BaUXpZJu >>242
素直に「僕には難しすぎてわからないから詳しく教えてください」って言えないの?
素直に「僕には難しすぎてわからないから詳しく教えてください」って言えないの?
245デフォルトの名無しさん
2021/09/30(木) 20:46:54.85ID:BaUXpZJu >>244
お前とQZ以外は理解してるよ
お前とQZ以外は理解してるよ
246蟻人間 ◆T6xkBnTXz7B0
2021/09/30(木) 21:01:09.92ID:8ZMYiRqf 2つの副業と、ベルトコンベアのラインでねじ回しの仕事で疲れてるから許してくれよ。
247蟻人間 ◆T6xkBnTXz7B0
2021/09/30(木) 21:13:56.42ID:8ZMYiRqf この技術を応用すればロボットアームを自由自在に動かせそうだね。
248蟻人間 ◆T6xkBnTXz7B0
2021/09/30(木) 21:47:22.16ID:8ZMYiRqf イーロン・マ●クさん、見てる? イェイ!
249デフォルトの名無しさん
2021/09/30(木) 23:18:58.96ID:vWP+uHYR >>247
誤差が積もり積もるから無理
誤差が積もり積もるから無理
250デフォルトの名無しさん
2021/10/01(金) 00:08:37.55ID:VIfkqI1d 群論で簡単に解けそう
251デフォルトの名無しさん
2021/10/04(月) 21:51:58.57ID:8pCgPPfH お題: CSV形式のテキストデータを検索する grep のようなコマンド(または関数)
CSVの形式は RFC 4180 の通りで文字のエンコーディングは UTF-8、改行は CR/LF。
この辺のページを参考にすると良い。
https://datatracker.ietf.org/doc/html/rfc4180
http://www.kasai.fm/wiki/rfc4180jp
https://blog.tech-monex.com/entry/2021/03/26/160000#2-Definition-of-the-CSV-FormatCSV%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88%E3%81%AE%E5%AE%9A%E7%BE%A9
普通の grep コマンドを CSV ファイルに対して行うと1つのデータで改行が入っていた時に何行目の何列目のデータなのかが分からなくなって不便である。
その他、ダブルクォーテーションで括られているか否か、データとしてカンマやダブルクォーテーションを含むか否かで検索する側が正規表現を考慮して作らねばならず面倒臭い。
ということでこういった面倒くささを解消するコマンドを作るのがこのお題。
コマンドという形式ではなく正規表現と検索されるCSVテキスト(あるいはCSVファイル名や読み込みオープンしたファイルデスクリプタ)と検索する時のオプション(大文字小文字を無視など)を渡すと検索結果を返す関数を作成しても良い。
尚、1行目の項目名が入っている事がある行についてはその存在の有無をオプションで渡して指定する方式にして良い。
検索結果はパターンにマッチしたデータについて何行目、何列目だったかが分かるようにしてデータと共に出力する(関数の場合は呼び出し元に返す)。
出力する時にデータを見易くするために改行があったら \n 等にエスケープして1行にしても良い。
CSV読み込みや正規表現について既存のライブラリを使うか否かはご自由に。但し言語や環境に最初から付属していない外部のライブラリを使う場合は何を使ったかが分かるようにコメント等に入れておくこと。
CSVの形式は RFC 4180 の通りで文字のエンコーディングは UTF-8、改行は CR/LF。
この辺のページを参考にすると良い。
https://datatracker.ietf.org/doc/html/rfc4180
http://www.kasai.fm/wiki/rfc4180jp
https://blog.tech-monex.com/entry/2021/03/26/160000#2-Definition-of-the-CSV-FormatCSV%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88%E3%81%AE%E5%AE%9A%E7%BE%A9
普通の grep コマンドを CSV ファイルに対して行うと1つのデータで改行が入っていた時に何行目の何列目のデータなのかが分からなくなって不便である。
その他、ダブルクォーテーションで括られているか否か、データとしてカンマやダブルクォーテーションを含むか否かで検索する側が正規表現を考慮して作らねばならず面倒臭い。
ということでこういった面倒くささを解消するコマンドを作るのがこのお題。
コマンドという形式ではなく正規表現と検索されるCSVテキスト(あるいはCSVファイル名や読み込みオープンしたファイルデスクリプタ)と検索する時のオプション(大文字小文字を無視など)を渡すと検索結果を返す関数を作成しても良い。
尚、1行目の項目名が入っている事がある行についてはその存在の有無をオプションで渡して指定する方式にして良い。
検索結果はパターンにマッチしたデータについて何行目、何列目だったかが分かるようにしてデータと共に出力する(関数の場合は呼び出し元に返す)。
出力する時にデータを見易くするために改行があったら \n 等にエスケープして1行にしても良い。
CSV読み込みや正規表現について既存のライブラリを使うか否かはご自由に。但し言語や環境に最初から付属していない外部のライブラリを使う場合は何を使ったかが分かるようにコメント等に入れておくこと。
252デフォルトの名無しさん
2021/10/04(月) 23:29:46.48ID:nQu0++L9 はい次
253デフォルトの名無しさん
2021/10/05(火) 01:25:35.09ID:jsFp2nZ3 難し過ぎたか・・・
254デフォルトの名無しさん
2021/10/05(火) 03:24:50.56ID:8XAhfzzR お題として質が低いのよ。
課題だねこれじゃw
宿題や仕事は自分でやってどうぞ
課題だねこれじゃw
宿題や仕事は自分でやってどうぞ
255デフォルトの名無しさん
2021/10/05(火) 07:56:40.58ID:DrLIL1/r てかちょっとガチでやったらそれなりの規模になるからこんな所でやるようなもんじゃない
256デフォルトの名無しさん
2021/10/05(火) 11:30:23.33ID:akfRupr1 せやな
どんなに長くても30分くらいて完成する程度がやってみようと思える限界やろな
所詮暇つぶしやし
どんなに長くても30分くらいて完成する程度がやってみようと思える限界やろな
所詮暇つぶしやし
257デフォルトの名無しさん
2021/10/05(火) 11:35:39.40ID:jsFp2nZ3 まあやるやらないは自由なので
258デフォルトの名無しさん
2021/10/05(火) 12:04:55.27ID:+8sevm6S じゃあ俺がやるよO/
259デフォルトの名無しさん
2021/10/05(火) 12:39:36.95ID:mwjMS5Mk というか正確に仕様を満たせというのは実装チャレンジであって僕の考えた最強の解決策を見せっこするためのお題にはならんだろ
260デフォルトの名無しさん
2021/10/05(火) 12:57:06.08ID:UApdMlTn >>251
https://mevius.5ch.net/test/read.cgi/tech/1624934554/88
> 88 名前:デフォルトの名無しさん (ワッチョイ 12ad-ZF+H)[] 投稿日:2021/09/28(火) 00:00:21.68 ID:qy0bUCok0
> >>81
> CSV用のgrepってあったらいいよな。
> ライブラリ使えば簡単そうだからお題スレに出しておくかな。
https://mevius.5ch.net/test/read.cgi/tech/1624934554/88
> 88 名前:デフォルトの名無しさん (ワッチョイ 12ad-ZF+H)[] 投稿日:2021/09/28(火) 00:00:21.68 ID:qy0bUCok0
> >>81
> CSV用のgrepってあったらいいよな。
> ライブラリ使えば簡単そうだからお題スレに出しておくかな。
261デフォルトの名無しさん
2021/10/05(火) 13:17:01.07ID:+8sevm6S >>260
?
?
262デフォルトの名無しさん
2021/10/05(火) 13:17:11.37ID:+8sevm6S >>259
??
??
263デフォルトの名無しさん
2021/10/05(火) 13:17:42.69ID:+8sevm6S 解かない人は黙っててもらえないかな
265デフォルトの名無しさん
2021/10/05(火) 13:20:57.94ID:+8sevm6S266デフォルトの名無しさん
2021/10/05(火) 13:54:06.13ID:8XAhfzzR >>260
そんなことだろうと思ったよ
そんなことだろうと思ったよ
267デフォルトの名無しさん
2021/10/05(火) 14:03:05.86ID:+8sevm6S268デフォルトの名無しさん
2021/10/05(火) 14:03:59.63ID:+8sevm6S お題に文句つけるのはお前ららしくないよ
淡々と馬車馬のように回答するのがお前らのアイデンティティだろ
初心思い出せよ
淡々と馬車馬のように回答するのがお前らのアイデンティティだろ
初心思い出せよ
269デフォルトの名無しさん
2021/10/05(火) 15:15:20.74ID:jsFp2nZ3 >>260
そうそう。それそれ。
そうそう。それそれ。
270デフォルトの名無しさん
2021/10/06(水) 12:59:47.28ID:xRQj077j お題 持久戦
隔たりのない6面のサイコロがN個ありi番目のサイコロのj番目の面には整数Aijが書かれている
高橋君は一個のサイコロを選んで一回振ると言う操作を繰り返す。
ただし2回目以降の操作で、前回の操作で出た目より小さいか同じ目が出てしまったら操作を止める
各回どのサイコロを振るかは前回に出た目を見てから決めることができる
高橋君は出来るだけサイコロを多く振りたいと考えている
操作の行われる期待値が最大化されるような選択が行われたときの操作回数の期待値を求めよ
と言うのが数学板に投下されたけどどう見ても数学の問題でないので全員ガン無視
https://atcoder.jp/contests/past201912-open/tasks/past201912_o
隔たりのない6面のサイコロがN個ありi番目のサイコロのj番目の面には整数Aijが書かれている
高橋君は一個のサイコロを選んで一回振ると言う操作を繰り返す。
ただし2回目以降の操作で、前回の操作で出た目より小さいか同じ目が出てしまったら操作を止める
各回どのサイコロを振るかは前回に出た目を見てから決めることができる
高橋君は出来るだけサイコロを多く振りたいと考えている
操作の行われる期待値が最大化されるような選択が行われたときの操作回数の期待値を求めよ
と言うのが数学板に投下されたけどどう見ても数学の問題でないので全員ガン無視
https://atcoder.jp/contests/past201912-open/tasks/past201912_o
271デフォルトの名無しさん
2021/10/06(水) 12:59:53.99ID:xRQj077j 以下自分の計算した例
間違ってるかも
入力
1
[ [ 1,2,3,4,5,6 ] ]
出力
117649 / 46656 ( = 2.5216263717421126 )
入力
3
[ 1,2,3,4,5,6 ]
[ 1,4,9,16,25,36 ]
[ 1,8,27,64,125,216 ]
出力
13070575 / 3779136 ( = 3.4586146145574013 )
入力
3
[ 1,1,1,1,1,1 ]
[ 2,2,2,2,2,2 ]
[ 3,3,3,3,3,3 ]
4 / 1 ( = 4.0 )
出力は別に小数表示でも良いとする
尚最後の例は元サイトの“全部異なる”の制約満たしてないけど検算用、無視して桶
間違ってるかも
入力
1
[ [ 1,2,3,4,5,6 ] ]
出力
117649 / 46656 ( = 2.5216263717421126 )
入力
3
[ 1,2,3,4,5,6 ]
[ 1,4,9,16,25,36 ]
[ 1,8,27,64,125,216 ]
出力
13070575 / 3779136 ( = 3.4586146145574013 )
入力
3
[ 1,1,1,1,1,1 ]
[ 2,2,2,2,2,2 ]
[ 3,3,3,3,3,3 ]
4 / 1 ( = 4.0 )
出力は別に小数表示でも良いとする
尚最後の例は元サイトの“全部異なる”の制約満たしてないけど検算用、無視して桶
272デフォルトの名無しさん
2021/10/07(木) 19:56:52.00ID:intYWBu8 隔たりって何
273デフォルトの名無しさん
2021/10/09(土) 14:34:36.05ID:uZ4xSJeU >>272
偏りのないです
元ネタのホムペには他にも何問か有るんですけどコレ以外はあんまり面白いのがない
ちなみに例はN=1,3でこれくらいだと総当たりでも解ける
でも元ネタサイトの制限はN≦30000でこれだと実質総当たりだと解けない
なので元ネタは「いわゆるDPで解ける問題だけどできますか?」が題意のようです
まぁここではN=3くらいでパッパッと解ければいいかと
偏りのないです
元ネタのホムペには他にも何問か有るんですけどコレ以外はあんまり面白いのがない
ちなみに例はN=1,3でこれくらいだと総当たりでも解ける
でも元ネタサイトの制限はN≦30000でこれだと実質総当たりだと解けない
なので元ネタは「いわゆるDPで解ける問題だけどできますか?」が題意のようです
まぁここではN=3くらいでパッパッと解ければいいかと
274デフォルトの名無しさん
2021/10/12(火) 06:03:57.89ID:e1q14myl お題:
正整数 N が与えられます
f(x) = 正整数 a, b であって 0 < a / b < 1 かつ b ≦ x を満たす a / b の「値の種類数」
としたとき f(x) = N を満たす x が存在するか判定しなさい
制約:
1 ≦ N ≦ 10^12
入力: N
出力: x が存在するのなら "Yes", 存在しないのなら "No"
入力例 1: 11
出力例 1: Yes (f(6) = 11 です)
入力例 2: 123
出力例 2: No
入力例 3: 303963552391
出力例 3: Yes (f(1000000) = 303963552391 です)
f(x) の例
f(1) = 0
f(2) = 1
f(3) = 3
f(4) = 5
f(5) = 9
...
正整数 N が与えられます
f(x) = 正整数 a, b であって 0 < a / b < 1 かつ b ≦ x を満たす a / b の「値の種類数」
としたとき f(x) = N を満たす x が存在するか判定しなさい
制約:
1 ≦ N ≦ 10^12
入力: N
出力: x が存在するのなら "Yes", 存在しないのなら "No"
入力例 1: 11
出力例 1: Yes (f(6) = 11 です)
入力例 2: 123
出力例 2: No
入力例 3: 303963552391
出力例 3: Yes (f(1000000) = 303963552391 です)
f(x) の例
f(1) = 0
f(2) = 1
f(3) = 3
f(4) = 5
f(5) = 9
...
275デフォルトの名無しさん
2021/10/13(水) 17:28:45.55ID:igjNiW+q276デフォルトの名無しさん
2021/10/15(金) 22:08:55.85ID:NqIVJaNX じゃ簡単なお題を
1.少数(整数部MAX5桁、小数部MAX5桁)を入力し、分数に変換するプログラムを作成しなさい。
2.誕生日と日付AをそれぞれYYYYMMDDの8桁の整数で入力し、日付Aの時点で何歳かを表示するプログラムを作成しなさい。
3.西暦年YYYYを入力して閏年か否かの判定をするプログラムを作成しなさい。
1.少数(整数部MAX5桁、小数部MAX5桁)を入力し、分数に変換するプログラムを作成しなさい。
2.誕生日と日付AをそれぞれYYYYMMDDの8桁の整数で入力し、日付Aの時点で何歳かを表示するプログラムを作成しなさい。
3.西暦年YYYYを入力して閏年か否かの判定をするプログラムを作成しなさい。
277デフォルトの名無しさん
2021/10/15(金) 22:53:54.66ID:HBylJ5Wv 平面3リンクマニュピュレータの逆運動学のプログラミングを完成させなさい。
キーボードで手先の位置を入力すると、関節角が表示されるようにすること。
scanfを使うのと、アームの長さなどは適当に決めていいという条件。
キーボードで手先の位置を入力すると、関節角が表示されるようにすること。
scanfを使うのと、アームの長さなどは適当に決めていいという条件。
278デフォルトの名無しさん
2021/10/15(金) 23:23:30.53ID:eqKsqNtm >>277
平面3リンクマニピュレータというものを検索してみたけど、手先の位置だけ与えても各関節の角度は同定できないのでは?
平面3リンクマニピュレータというものを検索してみたけど、手先の位置だけ与えても各関節の角度は同定できないのでは?
279デフォルトの名無しさん
2021/10/15(金) 23:45:51.35ID:HBylJ5Wv >>278
第1関節は原点で固定ですね。
手先の位置・姿勢が(xed, yed, φed)と与えられた(キーボード入力)時の、第3関節の位置が
x2=xed−L3×cosφed
y2=yed−L3×sinφed
と求まり、第3関節がこの場所に来るには、リンク1とリンク2が三角形の2辺になるように第1関節と第2関節の角度を決めるという感じですね。
第1関節は原点で固定ですね。
手先の位置・姿勢が(xed, yed, φed)と与えられた(キーボード入力)時の、第3関節の位置が
x2=xed−L3×cosφed
y2=yed−L3×sinφed
と求まり、第3関節がこの場所に来るには、リンク1とリンク2が三角形の2辺になるように第1関節と第2関節の角度を決めるという感じですね。
280デフォルトの名無しさん
2021/10/16(土) 02:01:06.18ID:8sv207AJ お題専門用語だらけでググらないと意味わからないようなお題やる気にならん
281デフォルトの名無しさん
2021/10/16(土) 04:05:29.07ID:a3RnthCp Visual Studio Code / VSCode Part11
http://mevius.5ch.net/test/read.cgi/tech/1632311131/173
http://mevius.5ch.net/test/read.cgi/tech/1632311131/173
283デフォルトの名無しさん
2021/10/16(土) 18:45:58.11ID:BO6yK2Ly scanfってことはHaskellじゃダメなのか。
休み一日しかないから取り掛かってみるか止めとくか悩むね。
休み一日しかないから取り掛かってみるか止めとくか悩むね。
284デフォルトの名無しさん
2021/10/16(土) 18:53:52.75ID:BO6yK2Ly >>277は算数はわかってるんだけどプログラムがわからないんだろな。
そんなあなたにHaskell!!Haskell!!
そんなあなたにHaskell!!Haskell!!
285デフォルトの名無しさん
2021/10/16(土) 19:48:39.78ID:ZzoUZQ8H286デフォルトの名無しさん
2021/10/16(土) 21:10:27.39ID:27uehHe1 >>284
数学じゃないだろ
数学じゃないだろ
287デフォルトの名無しさん
2021/10/17(日) 08:07:29.47ID:QqhGhKAl 算数じゃなかったら何なんだ。
288デフォルトの名無しさん
2021/10/17(日) 08:09:34.06ID:eIKWemED 物理
289ハノン ◆QZaw55cn4c
2021/10/17(日) 08:14:29.67ID:iZHfLY3S290デフォルトの名無しさん
2021/10/17(日) 08:34:02.73ID:QqhGhKAl 私は高校一年生の算数で解ける。
291デフォルトの名無しさん
2021/10/17(日) 08:35:04.57ID:QqhGhKAl 高校一年生が解く方法と、大学生が解く方法は違うのだろうか?
292デフォルトの名無しさん
2021/10/17(日) 09:18:03.49ID:MkgjpPUe >>277
まぁ、
X=Lcosθ+Mcos(θ+φ)+Ncos(θ+φ+Ψ)
Y=Lsinθ+Msin((θ+φ)+Nsin(θ+φ+Ψ)
みたいな感じで、LMNは適当に決めるとしても、角度のパラメータが3つあるんで、
もう1条件制約をかけないと決まらないケースが多発するだろうなぁ。
アームの長さを適当に決めろというなら、N=0にでもしてしまえば、
要はLとMと(原点と(X,Y)の距離)の三角形で角を求めろっていうだけの問題だから、
余弦定理でcosθは求まるかな。
それはインチキだというなら、
原点と(X,Y)の距離に応じてLの先端部分と(X,Y)までの距離が適当・・・
たとえば、(M+N)の半分になるような位置に位置づけることにして、
あとは、余弦定理で解けそうだけど。
よりコンピュータらしい力技でいくなら、三重ループで0から360度まで適当なステップ
(たとえば、5度おき)に回して、距離が目標位置に一番近くなった時の値の前後
(5度おきにとったなら前後5度分・・10度分だね)を1度とか0.1度とかのステップで
3重ループで回して、一番目標位置に近かったものを答えにする。
まぁ、
X=Lcosθ+Mcos(θ+φ)+Ncos(θ+φ+Ψ)
Y=Lsinθ+Msin((θ+φ)+Nsin(θ+φ+Ψ)
みたいな感じで、LMNは適当に決めるとしても、角度のパラメータが3つあるんで、
もう1条件制約をかけないと決まらないケースが多発するだろうなぁ。
アームの長さを適当に決めろというなら、N=0にでもしてしまえば、
要はLとMと(原点と(X,Y)の距離)の三角形で角を求めろっていうだけの問題だから、
余弦定理でcosθは求まるかな。
それはインチキだというなら、
原点と(X,Y)の距離に応じてLの先端部分と(X,Y)までの距離が適当・・・
たとえば、(M+N)の半分になるような位置に位置づけることにして、
あとは、余弦定理で解けそうだけど。
よりコンピュータらしい力技でいくなら、三重ループで0から360度まで適当なステップ
(たとえば、5度おき)に回して、距離が目標位置に一番近くなった時の値の前後
(5度おきにとったなら前後5度分・・10度分だね)を1度とか0.1度とかのステップで
3重ループで回して、一番目標位置に近かったものを答えにする。
293デフォルトの名無しさん
2021/10/17(日) 10:36:29.88ID:31BFfd9w 腕の長さ自由に決めていいならひとつ捨てて残り2つ同じ長さにすればカバーできる範囲同じで計算も簡単になる
元のお題でそもそもわざわざ関節3つ使う理由がない
元のお題でそもそもわざわざ関節3つ使う理由がない
294デフォルトの名無しさん
2021/10/17(日) 10:51:06.44ID:UoQPOfGF どうでもいいことを長々と議論するなあ
無視すりゃいいだろw
無視すりゃいいだろw
295デフォルトの名無しさん
2021/10/17(日) 10:57:44.74ID:QqhGhKAl 手先の位置というのが同定できない原因だったけど、位置と角度に変わったので大丈夫では?
296デフォルトの名無しさん
2021/10/17(日) 11:01:26.31ID:QqhGhKAl 関節角度の並びは二つに限られ、第一腕部第二腕部が直線に並ぶ時ひとつ、それ以外は二種類の並びに制限される。
297デフォルトの名無しさん
2021/10/17(日) 12:08:44.44ID:QqhGhKAl298デフォルトの名無しさん
2021/10/17(日) 12:15:55.19ID:06wimQoq >>277 は、こいつに出された大学での課題。C/C++ スレで丸投げ指摘されて遁走。
299デフォルトの名無しさん
2021/10/17(日) 15:12:12.66ID:atjZW8su お題: 「平面3リンクマニュピュレータの逆運動学」とは何か。日本語で説明せよ。
300デフォルトの名無しさん
2021/10/17(日) 15:21:58.09ID:06wimQoq301デフォルトの名無しさん
2021/10/17(日) 15:54:50.71ID:31BFfd9w 作りゃいいと言われてもあまりにも意味わかんない
関節3つつけるのは当然手先の向きとかに制約がないと意味ない
じゃあ無視して関節2つでと言われたら面白くもなんともない
関節3つつけるのは当然手先の向きとかに制約がないと意味ない
じゃあ無視して関節2つでと言われたら面白くもなんともない
302デフォルトの名無しさん
2021/10/17(日) 18:26:22.03ID:QqhGhKAl 結論:算数で十分でした。
303デフォルトの名無しさん
2021/10/17(日) 18:38:41.07ID:W8S2Fmip304デフォルトの名無しさん
2021/10/17(日) 18:39:49.61ID:QqhGhKAl >>303
すごい。
すごい。
305ハノン ◆QZaw55cn4c
2021/10/17(日) 22:41:52.63ID:iZHfLY3S306デフォルトの名無しさん
2021/10/18(月) 12:12:09.30ID:MhIWImiq ときどき言ってたり、やったりするがいまだ解答不明
平面上に円をおき、その円周上の整数点がちょうどn個となる円の最小半径は?
具体的にn=47でもわからない
平面上に円をおき、その円周上の整数点がちょうどn個となる円の最小半径は?
具体的にn=47でもわからない
307デフォルトの名無しさん
2021/10/18(月) 19:23:56.84ID:578ljV9d nは奇数にもなり得るの?
308デフォルトの名無しさん
2021/10/18(月) 20:05:15.05ID:h1g8zzDx309デフォルトの名無しさん
2021/10/18(月) 20:08:42.56ID:h1g8zzDx 全てnに対して円が存在するかどうかはわかってるの?
n=0, n=1の時は円は存在するが最小値は存在しない
n≧2の時は円が存在するなら最小値も存在する
n=0, n=1の時は円は存在するが最小値は存在しない
n≧2の時は円が存在するなら最小値も存在する
310デフォルトの名無しさん
2021/10/18(月) 21:27:28.14ID:9iPUXHWE 1970年から2369年までの間で
カレンダーの曜日が365(366)日同じパターンで出て来る年をグループ分けして
グループが全部で何個あるか(たぶん即答7個だけど365と366を違うものとするので7以上)と
各グループに何年が属するかを出力するプログラム
カレンダーの曜日が365(366)日同じパターンで出て来る年をグループ分けして
グループが全部で何個あるか(たぶん即答7個だけど365と366を違うものとするので7以上)と
各グループに何年が属するかを出力するプログラム
311デフォルトの名無しさん
2021/10/18(月) 22:48:50.35ID:cIVwbLw+ 400個だろ
312デフォルトの名無しさん
2021/10/18(月) 23:32:12.79ID:o3blQ8kr 最大で14個だよね?
313デフォルトの名無しさん
2021/10/19(火) 00:20:44.71ID:eZJKwUVR314デフォルトの名無しさん
2021/10/19(火) 00:37:17.41ID:uZ+aFQr8 >>310 bat
@echo off &setlocal enabledelayedexpansion
for /L %%y in (1970,1,2369) do set /a "fL=^!(%%y%%4)^^^!(%%y%%100)|^!(%%y%%400), g=%%y-1, w=(%%y+g/4-g/100+g/400)%%7" &for /f %%i in ("!fL!!w!") do set "p%%i=!p%%i!,%%y"
set n=0
for %%w in (日,月,火,水,木,金,土) do set "w!n!=%%w"&set /a n+=1
set L0=平
set L1=閏
echo 閏有無 1月1日の曜日 : 西暦年
for /L %%a in (0,1,1) do for /L %%b in (0,1,6) do echo !L%%a!年 !w%%b!曜日 : !p%%a%%b:~1!
pause &exit /b
@echo off &setlocal enabledelayedexpansion
for /L %%y in (1970,1,2369) do set /a "fL=^!(%%y%%4)^^^!(%%y%%100)|^!(%%y%%400), g=%%y-1, w=(%%y+g/4-g/100+g/400)%%7" &for /f %%i in ("!fL!!w!") do set "p%%i=!p%%i!,%%y"
set n=0
for %%w in (日,月,火,水,木,金,土) do set "w!n!=%%w"&set /a n+=1
set L0=平
set L1=閏
echo 閏有無 1月1日の曜日 : 西暦年
for /L %%a in (0,1,1) do for /L %%b in (0,1,6) do echo !L%%a!年 !w%%b!曜日 : !p%%a%%b:~1!
pause &exit /b
315デフォルトの名無しさん
2021/10/19(火) 06:24:04.50ID:uZ+aFQr8 曜日判定は開始年のみで残りは閏年判定とインクリメントだけで良かったね
316デフォルトの名無しさん
2021/10/20(水) 01:31:42.75ID:3o6derLl >>313
勘違いしてるぞそれw
勘違いしてるぞそれw
317デフォルトの名無しさん
2021/10/21(木) 02:55:37.46ID:47mGjMvV >>316
ぶ、ぶんすうにはなっているとおもうんだ
ぶ、ぶんすうにはなっているとおもうんだ
318デフォルトの名無しさん
2021/10/21(木) 03:09:36.20ID:47mGjMvV319デフォルトの名無しさん
2021/10/21(木) 12:46:05.31ID:TQQGYYBP320デフォルトの名無しさん
2021/10/21(木) 13:16:40.90ID:LMXfXe/q x^4+y^4+z^4=a^4
が成り立つ値
x,y,z,a
を求めよ。
が成り立つ値
x,y,z,a
を求めよ。
321デフォルトの名無しさん
2021/10/21(木) 16:28:37.98ID:s+STdMnX 0
322デフォルトの名無しさん
2021/10/21(木) 18:41:27.23ID:LMXfXe/q >>320
値は2以上の自然数ね
値は2以上の自然数ね
323デフォルトの名無しさん
2021/10/21(木) 18:46:20.17ID:1lKVQwqU 1も入れてあげて
324デフォルトの名無しさん
2021/10/21(木) 20:52:10.29ID:I05C+tHT >>310 octave
https://ideone.com/Db3vpP
year = @(y) cell2mat(arrayfun(@(m) {calendar(y, m)'(:)}, 1:12));
years = @(ys) cell2mat(arrayfun(@(y) {year(y)(:)'}, ys)');
ys = 1970:2369;
[c, ~, ic] = unique(years(ys), 'rows');
c, arrayfun(@(uic) {mat2str(ys(ic == uic))}, unique(ic))
https://ideone.com/Db3vpP
year = @(y) cell2mat(arrayfun(@(m) {calendar(y, m)'(:)}, 1:12));
years = @(ys) cell2mat(arrayfun(@(y) {year(y)(:)'}, ys)');
ys = 1970:2369;
[c, ~, ic] = unique(years(ys), 'rows');
c, arrayfun(@(uic) {mat2str(ys(ic == uic))}, unique(ic))
325デフォルトの名無しさん
2021/10/21(木) 23:31:25.95ID:s18jC5Va326デフォルトの名無しさん
2021/10/22(金) 01:42:42.81ID:ZLeZZO3L327デフォルトの名無しさん
2021/10/22(金) 02:39:08.04ID:K3be3gm5328デフォルトの名無しさん
2021/10/22(金) 14:09:38.24ID:77+/GwrE329デフォルトの名無しさん
2021/10/22(金) 21:06:26.88ID:ernPiDca >>306
最小かどうか知らんけど
いっこ見つけたよ
半径おおよそ10万
https://www.wolframalpha.com/input/?i=%28x-5%2F12%29%5E2%2B%28y-5%2F12%29%5E2%3D%28801125%5E2%29%2F72
この数を上限としてループ回したらどうか
最小かどうか知らんけど
いっこ見つけたよ
半径おおよそ10万
https://www.wolframalpha.com/input/?i=%28x-5%2F12%29%5E2%2B%28y-5%2F12%29%5E2%3D%28801125%5E2%29%2F72
この数を上限としてループ回したらどうか
330デフォルトの名無しさん
2021/10/22(金) 23:54:51.41ID:7DKt7uEz "最小"である事を数学的に証明出来なければ最小であるとは言えないと思うのだが最小である証明って出来るの?
証明方法あるなら是非教えて頂きたいのだがちょっとスレチかなぁ?
証明方法あるなら是非教えて頂きたいのだがちょっとスレチかなぁ?
331デフォルトの名無しさん
2021/10/23(土) 01:17:25.17ID:BHiRdnVn この問題の場合は
可能性を総当たりでつぶしていく方法があるから
計算機科学的にいえば「証明可能」だと思う
現実的な時間で解が求まるかどうかはまた別の話
可能性を総当たりでつぶしていく方法があるから
計算機科学的にいえば「証明可能」だと思う
現実的な時間で解が求まるかどうかはまた別の話
332デフォルトの名無しさん
2021/10/23(土) 04:37:00.63ID:gSawFHHH いやいや連続体濃度の可能性を総当たりできるわけないじゃん
333デフォルトの名無しさん
2021/10/23(土) 05:04:07.49ID:xy2o1DGT 特定の3点を通る円は1個だから
上限があれば有限個の検索で済む
上限があれば有限個の検索で済む
334デフォルトの名無しさん
2021/10/23(土) 09:08:29.52ID:lhX1R4Wb [0,1)×[0,1)に中心があり半径が801125/√72=94413.486...の円に入る円の格子点の数はおよそ2.8×10^10個
そこから3つ選んでルーブ回すとループの回数は2.1×10^31回
1秒で10^10回ループ回せたとして10^20秒の桁
何兆年もかかる
そこから3つ選んでルーブ回すとループの回数は2.1×10^31回
1秒で10^10回ループ回せたとして10^20秒の桁
何兆年もかかる
335デフォルトの名無しさん
2021/10/23(土) 09:46:56.70ID:LnA0RHk6 総当たりじゃないうまい方法を考えなさい
ってのがこのスレ的な話題なんじゃない?
ってのがこのスレ的な話題なんじゃない?
336デフォルトの名無しさん
2021/10/23(土) 09:55:07.00ID:HC6G+u/J 数学の人には渋い顔されるだろうけど
コンピュータだったらまずは総当たり作ってみてそこから改良してくの全然ありだと思う
コンピュータだったらまずは総当たり作ってみてそこから改良してくの全然ありだと思う
337デフォルトの名無しさん
2021/10/23(土) 12:38:00.73ID:8QkqEddx これはもしかして座標の問題ではなく円の性質では?
338デフォルトの名無しさん
2021/10/23(土) 13:51:05.91ID:lhX1R4Wb イヤ、もしかしても何も出題者も答え持ってないやろ
339蟻人間 ◆T6xkBnTXz7B0
2021/10/23(土) 14:11:15.10ID:HSZ38wuD お題:
(1) 数当てゲームを作成せよ。コンピュータ側は1〜100の自然数をランダムに選び、ユーザ側は、当たるまで繰り返し数を選ぶ。コンピュータは当たれば「当たり!」、外れれば「それより大きいです」か「それより小さいです」を出力する。
(2) そのゲームに、ユーザー側としてAIが介入可能な入出力インターフェースを追加せよ。出力: 数、入力: コンピュータからのメッセージ。
(3) 二分探索アルゴリズムによって、数当てゲームのAIを完成せよ。
(1) 数当てゲームを作成せよ。コンピュータ側は1〜100の自然数をランダムに選び、ユーザ側は、当たるまで繰り返し数を選ぶ。コンピュータは当たれば「当たり!」、外れれば「それより大きいです」か「それより小さいです」を出力する。
(2) そのゲームに、ユーザー側としてAIが介入可能な入出力インターフェースを追加せよ。出力: 数、入力: コンピュータからのメッセージ。
(3) 二分探索アルゴリズムによって、数当てゲームのAIを完成せよ。
340デフォルトの名無しさん
2021/10/24(日) 00:22:45.96ID:Gedozjyx AIとは何か?
341デフォルトの名無しさん
2021/10/24(日) 00:39:25.83ID:8hWi5KuQ うわー難しいこと聞いてきた。
342蟻人間 ◆T6xkBnTXz7B0
2021/10/24(日) 01:17:46.48ID:LOuNpAsp artificial intelligence
343デフォルトの名無しさん
2021/10/24(日) 05:13:25.20ID:H3SbS1d2 Application Interface
344デフォルトの名無しさん
2021/10/24(日) 08:59:19.22ID:iNEhflB6 X^2 + Y^2 = N の整数解は、Nの素因数分解からわりと簡単に求められる
X = cx +a , Y = cy + b として、拡大縮小+中心移動したとき解個数がどのように変化するのか、わかればいいのだが
N = 2^(n0)・p1^(n1 - 1)・p2^(n2 - 1)・・・・・(pi ≡1 mod 4)と素因数分解されたとすると 解個数は 4 ・ n1 ・ n2 ・・・・・
X^2 + Y^2 = (X + iY)(X - iY)と、 4k+1型素数はたとえば5 = (2+i)(2-i)のように分解できることから最初の式の解も具体的に求められる
X = cx +a , Y = cy + b として、拡大縮小+中心移動したとき解個数がどのように変化するのか、わかればいいのだが
N = 2^(n0)・p1^(n1 - 1)・p2^(n2 - 1)・・・・・(pi ≡1 mod 4)と素因数分解されたとすると 解個数は 4 ・ n1 ・ n2 ・・・・・
X^2 + Y^2 = (X + iY)(X - iY)と、 4k+1型素数はたとえば5 = (2+i)(2-i)のように分解できることから最初の式の解も具体的に求められる
345デフォルトの名無しさん
2021/10/24(日) 09:25:46.21ID:iNEhflB6 たとえば >>329の右辺の数 801125 = 5^3×13×17×29 なので
a=1+2i、 b=2+3i、 c=1+4i、 d=2+5iとおくと 5=a~a (~aは複素共役)等になる。
X^2 +Y^2 = 801125^2 の解個数は756=4*7*3*3*3
z=a^i (~a)^(6-i)とおくと、z~z = 5^6 等から複素数の積の計算して解も求まる
a=1+2i、 b=2+3i、 c=1+4i、 d=2+5iとおくと 5=a~a (~aは複素共役)等になる。
X^2 +Y^2 = 801125^2 の解個数は756=4*7*3*3*3
z=a^i (~a)^(6-i)とおくと、z~z = 5^6 等から複素数の積の計算して解も求まる
346デフォルトの名無しさん
2021/10/24(日) 09:57:22.23ID:mn+DQKnt >>344
それで中心と半径が与えられたときのってる格子点の数が簡単に求められたとしても、“最小のR”を求めるのにそこまで役に立つわけやないやろ
中心が( -a/N, -b/N ), 半径√Rとして格子点が満たすべき方程式は
( Nx + a )^2 + ( Nx + b )^2 = N^2R
だから求める格子点の個数は方程式
u^2 + v^2 = N^2R, ‥@
u ≡ a ( mod N ), v ≡ b ( mod N )‥A
を満たす(u,v)の数になる
となると格子点の個数が例えば47とか抑えられててもN^2Rがの可能性が直ちに抑えられるわけではない、N^2Rがメチャクチャ大きくてもa,bをうまく選べば@、Aを満たす整数解はさほど多くなくなる可能性が出てくる
結局
「Rは小さい(最小値求めてるので)、@,Aを満たす整数解の個数は少ない(問題文で与えられてる条件)」
を科してもNの上限が直ちに決まったりはしない
それで中心と半径が与えられたときのってる格子点の数が簡単に求められたとしても、“最小のR”を求めるのにそこまで役に立つわけやないやろ
中心が( -a/N, -b/N ), 半径√Rとして格子点が満たすべき方程式は
( Nx + a )^2 + ( Nx + b )^2 = N^2R
だから求める格子点の個数は方程式
u^2 + v^2 = N^2R, ‥@
u ≡ a ( mod N ), v ≡ b ( mod N )‥A
を満たす(u,v)の数になる
となると格子点の個数が例えば47とか抑えられててもN^2Rがの可能性が直ちに抑えられるわけではない、N^2Rがメチャクチャ大きくてもa,bをうまく選べば@、Aを満たす整数解はさほど多くなくなる可能性が出てくる
結局
「Rは小さい(最小値求めてるので)、@,Aを満たす整数解の個数は少ない(問題文で与えられてる条件)」
を科してもNの上限が直ちに決まったりはしない
347デフォルトの名無しさん
2021/10/26(火) 13:24:29.03ID:7IK8iIce Nの上限はRで押さえられるだろ
348デフォルトの名無しさん
2021/10/26(火) 20:49:34.15ID:mZlCCyni >>347
何故?
何故?
349デフォルトの名無しさん
2021/10/26(火) 21:57:54.63ID:YDtvu9T4 ( Nx + a )^2 + ( Ny + b )^2 = R の解個数は
X^2 + Y^2 = R の解個数以下ということでは?
X^2 + Y^2 = R の解個数以下ということでは?
350デフォルトの名無しさん
2021/10/26(火) 22:04:08.64ID:YDtvu9T4 Rを十分大きくとって、X^2 + Y^2 = R の解個数が1万だとしても
( Nx + a )^2 + ( Ny + b )^2 = R で 1万以下のすべての解個数を作りだせるかというと間違ってそうだからな
>>346はそういうことだろ?
9997の解個数を得ようとすれば、X^2 + Y^2 = R の解個数はたとえば100億でないと無理かもしれない
( Nx + a )^2 + ( Ny + b )^2 = R で 1万以下のすべての解個数を作りだせるかというと間違ってそうだからな
>>346はそういうことだろ?
9997の解個数を得ようとすれば、X^2 + Y^2 = R の解個数はたとえば100億でないと無理かもしれない
351デフォルトの名無しさん
2021/10/27(水) 02:27:08.98ID:zvgRqB+7 >>306
n=47の記録を更新したので載せとく
https://www.wolframalpha.com/input/?i2d=1&i=%28x-9%2F86%29%5E2%2B%28y-19%2F86%29%5E2%3D3929086318625%2F3698
n=47の記録を更新したので載せとく
https://www.wolframalpha.com/input/?i2d=1&i=%28x-9%2F86%29%5E2%2B%28y-19%2F86%29%5E2%3D3929086318625%2F3698
352デフォルトの名無しさん
2021/10/27(水) 12:58:14.54ID:QXFcz/ph お題
デスクトップにフォルダーA,B,C,D,E,F,G,H,I,J,K,Lがある。
D&Dで一つのフォルダーにまとめる。それぞれのフォルダーの
パス名の組み合わせは何通りあるか数える
(デスクトップはルートフォルダーみたいに表記してよい)
例:
A,Bの場合
1./A,/A/B
2./B,/B/A
A,B,Cの場合
1./A,/A/B,/A/C
2./A,/A/B,/A/B/C
3./A,/A/C,/A/C/B
4./B/A,/B,/B/C
5./B/C/A, B,/B/C
6./B/A,/B,/B/A/C
7./C/A,/C/B,/C
8./C/A,/C/A/B,/C
9./C/B/A,/C/B,/C
できれば、SQLのみを使ったもの
デスクトップにフォルダーA,B,C,D,E,F,G,H,I,J,K,Lがある。
D&Dで一つのフォルダーにまとめる。それぞれのフォルダーの
パス名の組み合わせは何通りあるか数える
(デスクトップはルートフォルダーみたいに表記してよい)
例:
A,Bの場合
1./A,/A/B
2./B,/B/A
A,B,Cの場合
1./A,/A/B,/A/C
2./A,/A/B,/A/B/C
3./A,/A/C,/A/C/B
4./B/A,/B,/B/C
5./B/C/A, B,/B/C
6./B/A,/B,/B/A/C
7./C/A,/C/B,/C
8./C/A,/C/A/B,/C
9./C/B/A,/C/B,/C
できれば、SQLのみを使ったもの
353デフォルトの名無しさん
2021/10/27(水) 13:29:20.74ID:iuhktxGB 悪問
次
次
354デフォルトの名無しさん
2021/10/27(水) 14:15:39.88ID:t2iD5tO8 ハノイの塔と同値
355デフォルトの名無しさん
2021/10/27(水) 16:59:18.79ID:M8/Dvct0 >>350
違う
>>346で言ってるのは
問題 円上の格子点の数がちょうど47個である円の半径の最小値を求めよ
においてガウス整数環の因数分解の話を使って
問題 方程式
u^2 + v^2 = N^2R, ‥@
u ≡ a ( mod N ), v ≡ b ( mod N )‥A
を満たす(u,v)の数が47であるRの最小値を求めよ
という問題に還元したとして、“解の個数が47個”という条件を利用してもNの上限を決めることができないということ
なんかの理論なり勘なりでR<10万とか決まってもそれによってNの上限が決まったりはしない
N=一兆くらいで素因子を山のように持っててもa,bの選択によっては結局解の個数が47個という可能性が残るからガウス環の因数分解の理論など使っても“解の最小値”を調べるのに対して役に立たないと言ってる
大体この手の問題は
「なんでもいいから一つ構成する方法探せ」
と
「解の最小値求めよ」
では問題の性格がまるで違ってくる
単に解構成するだけなら色んな方面の色んな知識使って色々なアプローチが出てくるけど、「最小値求めよ」にした途端に本質的に総当たりしか無くなってしまうことが多い
まぁ計算機持ち出す場面って大概それしか方法がないときだからそれはそれでいいんだけど、このスレででかい数字で総当たりしか手がない問題で、とても個人所有のパソコンでは手が出ない領域の問題出されると途端にレス止まってドッチラケになってしまう
違う
>>346で言ってるのは
問題 円上の格子点の数がちょうど47個である円の半径の最小値を求めよ
においてガウス整数環の因数分解の話を使って
問題 方程式
u^2 + v^2 = N^2R, ‥@
u ≡ a ( mod N ), v ≡ b ( mod N )‥A
を満たす(u,v)の数が47であるRの最小値を求めよ
という問題に還元したとして、“解の個数が47個”という条件を利用してもNの上限を決めることができないということ
なんかの理論なり勘なりでR<10万とか決まってもそれによってNの上限が決まったりはしない
N=一兆くらいで素因子を山のように持っててもa,bの選択によっては結局解の個数が47個という可能性が残るからガウス環の因数分解の理論など使っても“解の最小値”を調べるのに対して役に立たないと言ってる
大体この手の問題は
「なんでもいいから一つ構成する方法探せ」
と
「解の最小値求めよ」
では問題の性格がまるで違ってくる
単に解構成するだけなら色んな方面の色んな知識使って色々なアプローチが出てくるけど、「最小値求めよ」にした途端に本質的に総当たりしか無くなってしまうことが多い
まぁ計算機持ち出す場面って大概それしか方法がないときだからそれはそれでいいんだけど、このスレででかい数字で総当たりしか手がない問題で、とても個人所有のパソコンでは手が出ない領域の問題出されると途端にレス止まってドッチラケになってしまう
356デフォルトの名無しさん
2021/10/29(金) 12:54:37.67ID:6VyB6+e8 もとの問題が解けるかは別にして、
任意の自然数a,b,cdに対して
(cx+a)^2 + (cy+b)^2 =d
の解個数を高速に求めるかが大事とおもうが
任意の自然数a,b,cdに対して
(cx+a)^2 + (cy+b)^2 =d
の解個数を高速に求めるかが大事とおもうが
357デフォルトの名無しさん
2021/10/29(金) 13:23:14.96ID:hHWRsPnj お題: 重力加速度が1、空気抵抗が0.2、ボールの質量が1、ボールのベクトルが(x, y)=(3, 1)だったとき
高さHからボールを落とした場合のボールのバウンド回数を算出しなさい
高さHからボールを落とした場合のボールのバウンド回数を算出しなさい
358デフォルトの名無しさん
2021/10/29(金) 15:02:23.80ID:gWArxJUi359デフォルトの名無しさん
2021/10/29(金) 16:10:26.75ID:1t708P0q バウンド回数って無限回
360デフォルトの名無しさん
2021/10/29(金) 16:10:46.78ID:1t708P0q になるんじゃないの?(途中で書き込まれてしまった)
361ハノン ◆QZaw55cn4c
2021/10/29(金) 18:49:54.55ID:3iG6tyfE362デフォルトの名無しさん
2021/10/29(金) 18:58:39.05ID:q+AKOZXy てか空気抵抗が0.2って>>358の公式における何が0.2なん?
床での反射は完全弾性衝突なんやろな
空気抵抗は考えるのに衝突時のロス考えんのはなんだかなぁだけど、そこはともかく“空気抵抗0.2”をどう立式すればいいのか調べてもわからんのだけど
床での反射は完全弾性衝突なんやろな
空気抵抗は考えるのに衝突時のロス考えんのはなんだかなぁだけど、そこはともかく“空気抵抗0.2”をどう立式すればいいのか調べてもわからんのだけど
363デフォルトの名無しさん
2021/10/29(金) 19:45:45.04ID:ZtEOqLMN364デフォルトの名無しさん
2021/10/29(金) 20:47:20.06ID:II19q38d 単位がないからどうとでも答えられるわ
365デフォルトの名無しさん
2021/10/29(金) 21:49:53.51ID:1t708P0q 単位とかの問題ではないと思う
366デフォルトの名無しさん
2021/10/30(土) 09:59:33.72ID:gRDEN/XN バウンド回数をHとgで表せっていう意味ならそれなりの数式は出るだろうけど
Hに関わらず無限大だろうってのが答え
Hに関わらず無限大だろうってのが答え
367デフォルトの名無しさん
2021/10/30(土) 10:52:04.30ID:jJEez0C7 終了
次
次
368デフォルトの名無しさん
2021/10/30(土) 11:45:13.50ID:a9WSKAoR GUI造るお題もアリ?
369デフォルトの名無しさん
2021/10/30(土) 11:48:13.10ID:B9HlTkoz ダメってことは無いんじゃない?
370デフォルトの名無しさん
2021/10/30(土) 17:28:39.70ID:0q4JizrL GUIでも何でも良いけどGUIはこちらで試す時に面倒。というかGUIだと多分やらないでソース眺めてフーンとなるぐらいかな。
ソースをコンパイル、実行して試せるようなサイトでGUIも出来るような所があれば良いんだけどね。そういう所ある?
ソースをコンパイル、実行して試せるようなサイトでGUIも出来るような所があれば良いんだけどね。そういう所ある?
371デフォルトの名無しさん
2021/10/30(土) 17:30:20.58ID:Zd9OnruO 今までは実行してたのか?
暇人
暇人
372デフォルトの名無しさん
2021/10/30(土) 17:41:23.59ID:BwSV3hMk Pythonとか汎用性の高そうなGUIにしとけばいいかと、どれが一番いいかはしらんが
373デフォルトの名無しさん
2021/10/30(土) 18:14:32.40ID:Zd9OnruO PythonにGUIなんか無いぞ
374デフォルトの名無しさん
2021/10/30(土) 18:18:52.22ID:0SZBWJnV 「Pythonとか汎用性の高そうなGUI」ここまでで大爆笑取れるな
375デフォルトの名無しさん
2021/10/30(土) 19:19:30.18ID:H3Il6ZC9 >>374
お前面白くない
お前面白くない
376デフォルトの名無しさん
2021/10/30(土) 19:30:41.93ID:BwSV3hMk GUIライブラリのことだが
PythonでGUIライブラリはどれがおすすめ?
Tkinter
「Tkinter」はPythonに標準的に組み込まれているGUIライブラリです。
シンプルな文法と起動の速さが評価されており、Pythonにおけるもっとも基本的なGUIライブラリとしての立ち位置を築いています。
Kivy
近年、PythonのGUIライブラリの中でもっとも人気が高いものが「Kivy」です。
Kivyは、PythonでGUIのプログラムを作るためのオープンソースのライブラリで、Android、iOS、Linux、MacOS、Windowsなどの多くのOSで動作するため、汎用的に利用することが可能です。
KV言語というGUIのレイアウトを作成する言語が用意されており、直感的な記法で簡単にレイアウトを指定できるのが特徴です。
PyQt
「PyQt」は、Pythonを使ってGUIアプリケーションを作るためのフレームワークの1つです。
多くのソフトが作られており、比較的モダンな設計と、GUIのデザインを美しく作りやすいことが評価されています。
wxPython
「wxPython」は「wxWidgets」という「C++」と書かれたクロスプラットフォームGUIツールキットがあり、wxPythonはそのPythonバージョンです。
wxPythonは洗練されたAPIと豊富なライブラリが特徴であり、安定した動さが評価されています。
https://techplay.jp/column/552
PythonでGUIライブラリはどれがおすすめ?
Tkinter
「Tkinter」はPythonに標準的に組み込まれているGUIライブラリです。
シンプルな文法と起動の速さが評価されており、Pythonにおけるもっとも基本的なGUIライブラリとしての立ち位置を築いています。
Kivy
近年、PythonのGUIライブラリの中でもっとも人気が高いものが「Kivy」です。
Kivyは、PythonでGUIのプログラムを作るためのオープンソースのライブラリで、Android、iOS、Linux、MacOS、Windowsなどの多くのOSで動作するため、汎用的に利用することが可能です。
KV言語というGUIのレイアウトを作成する言語が用意されており、直感的な記法で簡単にレイアウトを指定できるのが特徴です。
PyQt
「PyQt」は、Pythonを使ってGUIアプリケーションを作るためのフレームワークの1つです。
多くのソフトが作られており、比較的モダンな設計と、GUIのデザインを美しく作りやすいことが評価されています。
wxPython
「wxPython」は「wxWidgets」という「C++」と書かれたクロスプラットフォームGUIツールキットがあり、wxPythonはそのPythonバージョンです。
wxPythonは洗練されたAPIと豊富なライブラリが特徴であり、安定した動さが評価されています。
https://techplay.jp/column/552
377デフォルトの名無しさん
2021/10/30(土) 19:39:14.98ID:BwSV3hMk こんなのがあったんだな
【Python】ttk:tkinterと比べた各ウィジェットの外観と機能面の違い
よりオシャレでモダンなGUIアプリを作成するならttkを使うのがお勧めです。
商用向けにGUIアプリの開発を進めている方や、社内向けアプリの場合でもユーザーインターフェースを良くしたい方は必ずチェックしておいてください。
https://office54.net/python/tkinter/tkinter-ttk-difference
Tkinterで使われるttkって?Tkinterとの違いを交えて徹底解説!?
今回はTkinterで使われるttkに関して、Tkinterとの違いを交えて徹底解説いたします。そもそもttkとは何か知りたい、Tkinterとttkの違いを学びたい方へおすすめです。
https://kuroro.blog/python/L9hqzwxZAx0soqSmI8zE/
【Python】ttk:tkinterと比べた各ウィジェットの外観と機能面の違い
よりオシャレでモダンなGUIアプリを作成するならttkを使うのがお勧めです。
商用向けにGUIアプリの開発を進めている方や、社内向けアプリの場合でもユーザーインターフェースを良くしたい方は必ずチェックしておいてください。
https://office54.net/python/tkinter/tkinter-ttk-difference
Tkinterで使われるttkって?Tkinterとの違いを交えて徹底解説!?
今回はTkinterで使われるttkに関して、Tkinterとの違いを交えて徹底解説いたします。そもそもttkとは何か知りたい、Tkinterとttkの違いを学びたい方へおすすめです。
https://kuroro.blog/python/L9hqzwxZAx0soqSmI8zE/
378デフォルトの名無しさん
2021/10/30(土) 19:52:06.16ID:nIglmucm お題:群論・有限群の分類
正の整数 n を与えたとき n を次数とする有限群のすべてを順次出力せよ。
ただしすでに出力された群の「準同型」は出力してはならない
n 次の有限群の要素は {k|k∈N, 1 <= k <= n} で表現せよ
この作業を「有限群の分類」と称するが、n をどこまで大きくできるか、各自の環境で試みよ
期限:2022年4月1日
準同型の定義は適切な参考書…@を参照さられたい、が、以下に概略を記述する
例えば 2 次の有限群として G1=
1 2
2 1
およびG2=
2 1
1 2
があるが、この二つは
「G1の 1 を 2 に置き換え、G1の 2 を 1 に置き換えて新たなG を作る」
というG1→G の変換 f によって G=G2 となる、すなわち f(G1)=G2
このような変換 f が存在するとき、G1、G2 は準同型であるという
@:「ガロア理論の頂を踏む」石井俊全/ベレ出版 2013年
正の整数 n を与えたとき n を次数とする有限群のすべてを順次出力せよ。
ただしすでに出力された群の「準同型」は出力してはならない
n 次の有限群の要素は {k|k∈N, 1 <= k <= n} で表現せよ
この作業を「有限群の分類」と称するが、n をどこまで大きくできるか、各自の環境で試みよ
期限:2022年4月1日
準同型の定義は適切な参考書…@を参照さられたい、が、以下に概略を記述する
例えば 2 次の有限群として G1=
1 2
2 1
およびG2=
2 1
1 2
があるが、この二つは
「G1の 1 を 2 に置き換え、G1の 2 を 1 に置き換えて新たなG を作る」
というG1→G の変換 f によって G=G2 となる、すなわち f(G1)=G2
このような変換 f が存在するとき、G1、G2 は準同型であるという
@:「ガロア理論の頂を踏む」石井俊全/ベレ出版 2013年
379デフォルトの名無しさん
2021/10/30(土) 19:55:13.98ID:Zd9OnruO 昔授業でやった
手作業で分類
手作業で分類
380デフォルトの名無しさん
2021/10/31(日) 01:34:58.60ID:hGI7wBpw GUI は皆が知っている、HTML, CSS, JavaScript だけ
それ以外は、ダメ
それ以外は、ダメ
381デフォルトの名無しさん
2021/10/31(日) 11:02:55.76ID:dKAtRzTx GUIで出題すると仕様が発散する
382デフォルトの名無しさん
2021/10/31(日) 11:39:19.72ID:2xPpBnWz 他の人の答え見ても走らせられないからおもんない
383デフォルトの名無しさん
2021/10/31(日) 13:24:46.17ID:+JknqnCD >>380
Win32, Androidが抜けてる
Win32, Androidが抜けてる
385デフォルトの名無しさん
2021/11/04(木) 13:45:51.05ID:D1F18vfo お題:GUIのカウントチャレンジを作れ
ボタンを押すとタイマーがスタート
もう一度ボタンを押すとタイマーがストップ
タイマーが10秒きっかりだったら「You win!」と表示
それ以外は「You lose!」と表示
現在のタイマーの値は表示しない
ボタンを押すとタイマーがスタート
もう一度ボタンを押すとタイマーがストップ
タイマーが10秒きっかりだったら「You win!」と表示
それ以外は「You lose!」と表示
現在のタイマーの値は表示しない
386デフォルトの名無しさん
2021/11/04(木) 13:55:48.22ID:iRkMc3Gk 次
387デフォルトの名無しさん
2021/11/04(木) 19:19:30.28ID:kwdxsWVQ388蟻人間 ◆T6xkBnTXz7B0
2021/11/04(木) 19:45:56.66ID:HOYEg+v3 お題: 与えられたn個の英単語群をすべて連結したクロスワードを作成できるか否かを判定せよ。クロスワードのサイズは自由とする。
入力例1: password, sword, animal, living
出力例1: すべて連結可能です。
入力例2: apple, zoo, grape
出力列2: 連結できない単語「zoo」があります。
入力例1: password, sword, animal, living
出力例1: すべて連結可能です。
入力例2: apple, zoo, grape
出力列2: 連結できない単語「zoo」があります。
389デフォルトの名無しさん
2021/11/04(木) 21:03:28.99ID:SLvu/urJ はい次
391デフォルトの名無しさん
2021/11/04(木) 22:33:47.55ID:SLvu/urJ >>390
お 前 は 内 野 じ ゃ ね え よ
お 前 は 内 野 じ ゃ ね え よ
393蟻人間 ◆T6xkBnTXz7B0
2021/11/04(木) 23:12:02.85ID:HOYEg+v3 現実の問題は競プロの問題よりも難しいかも知れない。教科書に書いてないような解決策を要求される。
競プロの問題が欲しいなら、ここよりも競プロへ行ってくれ。ここはそういう場所ではない。
競プロの問題が欲しいなら、ここよりも競プロへ行ってくれ。ここはそういう場所ではない。
394蟻人間 ◆T6xkBnTXz7B0
2021/11/05(金) 18:24:25.98ID:lMRXWOVz 数学の組合せの問題か。まず文字の組合せから。ある単語Xのすべての文字が他の単語にないならその単語Xは連結ではない(自明)。ひとつのセルは二重に交差点になることはできない(自明)。
ある単語Xが連結でなければ、単語X上の任意の文字位置は交差点にはならない。
ある単語Xが連結でなければ、単語X上の任意の文字位置は交差点にはならない。
395蟻人間 ◆T6xkBnTXz7B0
2021/11/05(金) 18:33:11.14ID:lMRXWOVz 次はクロスワードの組合せ。有限でサイズ変更可能な二次元配列によりクロスワードの盤を再現する。各要素はアルファベットか黒マスかハテナ(?)である。
文字の組合せにおいて最も接続数の多い単語を最初に盤の真ん中に置く。さらに単語の両端に黒マスを置く。次に接続数の多い単語と既に盤に置かれている単語の交差点を考えるわけだが、
交差点の位置により場合分けすると考えやすい。
文字の組合せにおいて最も接続数の多い単語を最初に盤の真ん中に置く。さらに単語の両端に黒マスを置く。次に接続数の多い単語と既に盤に置かれている単語の交差点を考えるわけだが、
交差点の位置により場合分けすると考えやすい。
396蟻人間 ◆T6xkBnTXz7B0
2021/11/05(金) 18:35:46.93ID:lMRXWOVz そして配置のすべての組合せを再帰により網羅する。交差点が見つからない単語があれば失敗。というわけだ。コーディングに入ろう。
397デフォルトの名無しさん
2021/11/06(土) 03:47:56.08ID:8BMCwFko >>385
Kotlin
https://paiza.io/projects/Hq-JXeNo2ZQgGbLORbCJpA
GUI は java.awt ライブラリを使うように書いてある。
当然の事ながら、paiza.io のサイト上では動かない。
動かしたい人は IntelliJ Idea で Kotlin のプロジェクトを作ってソースコピペして実行させるか、
またはコマンドライン環境で kotlinc コマンドでコンパイルして kotlin コマンドで実行する。
Kotlin
https://paiza.io/projects/Hq-JXeNo2ZQgGbLORbCJpA
GUI は java.awt ライブラリを使うように書いてある。
当然の事ながら、paiza.io のサイト上では動かない。
動かしたい人は IntelliJ Idea で Kotlin のプロジェクトを作ってソースコピペして実行させるか、
またはコマンドライン環境で kotlinc コマンドでコンパイルして kotlin コマンドで実行する。
398蟻人間 ◆T6xkBnTXz7B0
2021/11/06(土) 23:49:16.09ID:xVqAQy13 交差点になり得るセルの位置を記録して可能ならばマイナス方向にもサイズを拡張すべきことがわかった。
399デフォルトの名無しさん
2021/11/07(日) 15:24:13.73ID:qfuan/oU document.querySelectorAll('span.name').forEach(e => {
if(e.innerText.indexOf('蟻人間') >= 0){
e.parentElement.parentElement.style.display = 'none';
}
});
if(e.innerText.indexOf('蟻人間') >= 0){
e.parentElement.parentElement.style.display = 'none';
}
});
40096
2021/11/08(月) 17:48:34.31ID:+3VBQOCX >>378
これか…
ttps://math.jp/wiki/%E6%9C%89%E9%99%90%E7%BE%A4%E3%81%AE%E5%88%86%E9%A1%9E%28%E4%BD%8D%E6%95%B01~100%29
プログラム化する以前に、解法を理解・考えることが難しいお題だな
これか…
ttps://math.jp/wiki/%E6%9C%89%E9%99%90%E7%BE%A4%E3%81%AE%E5%88%86%E9%A1%9E%28%E4%BD%8D%E6%95%B01~100%29
プログラム化する以前に、解法を理解・考えることが難しいお題だな
401蟻人間 ◆T6xkBnTXz7B0
2021/11/08(月) 22:31:17.08ID:8X+AtsKK エアプレイじゃなくてちゃんとやっているぜ。
https://github.com/katahiromz/crossword_generation_test
https://github.com/katahiromz/crossword_generation_test
402デフォルトの名無しさん
2021/11/08(月) 22:34:01.71ID:sIrE8Ymr >>401
クソじゃん
クソじゃん
404デフォルトの名無しさん
2021/11/08(月) 23:19:34.67ID:sIrE8Ymr 金を払うなら教えてやってもいい
405蟻人間 ◆T6xkBnTXz7B0
2021/11/08(月) 23:25:16.81ID:r2YqBk6E406蟻人間 ◆T6xkBnTXz7B0
2021/11/08(月) 23:35:25.59ID:r2YqBk6E どうせ
printf使うなstd::cout使え、だろう?
printf使うなstd::cout使え、だろう?
407蟻人間 ◆T6xkBnTXz7B0
2021/11/08(月) 23:41:38.46ID:r2YqBk6E 確かにここはstd::pairじゃない方がいい。
他には?
他には?
408蟻人間 ◆T6xkBnTXz7B0
2021/11/08(月) 23:46:44.17ID:r2YqBk6E ヘッダーオンリー・テンプレート使用はバイナリサイズが大きくなりがちだから避けるべき。それから?
409蟻人間 ◆T6xkBnTXz7B0
2021/11/08(月) 23:48:18.18ID:r2YqBk6E なるほど。ありがとう。
410デフォルトの名無しさん
2021/11/08(月) 23:49:02.87ID:sIrE8Ymr どういたしまして。
じゃあ、振り込み宜しく
じゃあ、振り込み宜しく
411蟻人間 ◆T6xkBnTXz7B0
2021/11/08(月) 23:51:18.07ID:r2YqBk6E チャリンチャリン。ガシャ。振り込み完了。
412蟻人間 ◆T6xkBnTXz7B0
2021/11/08(月) 23:57:31.64ID:r2YqBk6E std::promiseを使うべき。だがやり方がわからん。
413蟻人間 ◆T6xkBnTXz7B0
2021/11/09(火) 00:09:04.79ID:lgtaApb2 お題: 計算時間が予測できない時間のかかる計算について、複数スレッドを立ち上げていずれかのスレッドで答えがセットできたか、キャンセル操作があれば、スレッドを終了して可能ならば答えを取得する。スレッド開始と終了、答えに対してメッセージを出力せよ。
言語: C++11以降 std::threadとstd::promise使用。
言語: C++11以降 std::threadとstd::promise使用。
414デフォルトの名無しさん
2021/11/09(火) 00:58:40.89ID:coKFHwlH いらっしゃいマシーンのプロミス
41596
2021/11/09(火) 03:16:48.15ID:Fkau/hlA OpenMPやithreadじゃだめなのかよ
416デフォルトの名無しさん
2021/11/09(火) 04:39:18.77ID:qOqV7S2Y お題で言語まで指定されんの?宿題スレに貼ってくれば
417デフォルトの名無しさん
2021/11/09(火) 16:49:52.57ID:EFAwjHPG もうすぐポッキーの日
[お題] 人口合計で1がらみの数字遊び
URLのページに都道府県別の人口が載っている。
URL: https://ideone.com/msZUeW
今回使用するのは、2020/10のデータ
同じ県は一回のみで、異なる県を 11 県選らぶ。
(単純な選び方は全部で 47C11 = 約174億通り)
選択した11県の人口合計を 111111 (11万1111) で割った時、
余りが 1111 になるのは何通りあるか?
また、その条件で(剰余でなく生の)のべ人口合計は何人か?
※一発正解問題、実行時間2秒程度。
※ちなみに 2015/10データだと 156561 通り(のべ 4656362060856 人) だった。
[お題] 人口合計で1がらみの数字遊び
URLのページに都道府県別の人口が載っている。
URL: https://ideone.com/msZUeW
今回使用するのは、2020/10のデータ
同じ県は一回のみで、異なる県を 11 県選らぶ。
(単純な選び方は全部で 47C11 = 約174億通り)
選択した11県の人口合計を 111111 (11万1111) で割った時、
余りが 1111 になるのは何通りあるか?
また、その条件で(剰余でなく生の)のべ人口合計は何人か?
※一発正解問題、実行時間2秒程度。
※ちなみに 2015/10データだと 156561 通り(のべ 4656362060856 人) だった。
418デフォルトの名無しさん
2021/11/09(火) 21:20:25.70ID:l7cbb8DO419デフォルトの名無しさん
2021/11/10(水) 00:24:34.22ID:BKretcyA 111111×11の配列のやつやな
420デフォルトの名無しさん
2021/11/11(木) 01:43:34.66ID:rg6AJXmO 侍エンジニアリングつーサイトの講師やりませんか?というお誘いが来た。
下準備が結構必要っぽいのに時給は生徒と応対している時のみの2000円/hだそうだ。
結局時給1000円くらいやん。
ふざけとるわ。
下準備が結構必要っぽいのに時給は生徒と応対している時のみの2000円/hだそうだ。
結局時給1000円くらいやん。
ふざけとるわ。
421デフォルトの名無しさん
2021/11/11(木) 09:52:21.62ID:SpIFedoW 生徒と応対して連絡先交換
あとは中抜き回避で青天井
あとは中抜き回避で青天井
422417
2021/11/11(木) 15:33:20.12ID:226d0X5M >>417
回答者(>>418)が言うところの"遅い解法"ががほぼ想定解。
https://ideone.com/msZUeW 下部に追加記入
解法については、"部分和問題 数え上げ"でググって調べて
別解としては早い言語なら、さらに遅い"半分全列挙"でも間に合う。
(大雑把に(24*2^24)*2 <1億なので、c++で試したら1秒強だった)
回答者(>>418)が言うところの"遅い解法"ががほぼ想定解。
https://ideone.com/msZUeW 下部に追加記入
解法については、"部分和問題 数え上げ"でググって調べて
別解としては早い言語なら、さらに遅い"半分全列挙"でも間に合う。
(大雑把に(24*2^24)*2 <1億なので、c++で試したら1秒強だった)
423デフォルトの名無しさん
2021/11/11(木) 16:01:48.26ID:aldiYpmV424デフォルトの名無しさん
2021/11/11(木) 16:02:43.51ID:aldiYpmV 掛算じゃなくてメモリの連続性かも
両方かな
両方かな
425蟻人間 ◆T6xkBnTXz7B0
2021/11/11(木) 21:32:16.11ID:3Uao5x0L426デフォルトの名無しさん
2021/11/11(木) 21:50:43.06ID:PBlMMjPy 次
427デフォルトの名無しさん
2021/11/11(木) 21:53:39.37ID:39WaJBCl >>425
URLとなる文字列の定義も知らねえで糞みたいな問題出すなよダニ野郎
URLとなる文字列の定義も知らねえで糞みたいな問題出すなよダニ野郎
429デフォルトの名無しさん
2021/11/11(木) 21:58:05.03ID:39WaJBCl URLにマッチする正規表現(笑)
43096
2021/11/11(木) 23:57:38.62ID:JHz34AMz >>425 Perl5、たまにはお相手して進ぜよう。5chの仕様に従うと↓こうだと思うが…
$uri = 'https://www.google.com/search?client=firefox-b-e&q=%E8%9F%BB%E4%BA%BA%E9%96%93+%E3%83%8F%E3%82%B2';
use URI::Split qw(uri_split uri_join);
@a = uri_split($uri);
$a[1] = 'jump.5ch.net';
$a[2] = '/';
$a[3] = $uri;
print uri_join(@a), "\n";
$uri = 'https://www.google.com/search?client=firefox-b-e&q=%E8%9F%BB%E4%BA%BA%E9%96%93+%E3%83%8F%E3%82%B2';
use URI::Split qw(uri_split uri_join);
@a = uri_split($uri);
$a[1] = 'jump.5ch.net';
$a[2] = '/';
$a[3] = $uri;
print uri_join(@a), "\n";
431デフォルトの名無しさん
2021/11/12(金) 20:37:34.22ID:Y4pYQLN1 ”2021”というフォルダがある
"2020"というフォルダもある
:
"1950"というフォルダもある
そしてそれぞれに"01"〜"12"のサブフォルダがあって
そしてそのそれぞれに"01"〜"31"というサブフォルダがあって
更に"00"〜"23"という・・・・
つまり、1時間ごとのフォルダがあって
そこには多くのファイルが詰まっている
そのファイルのタイムスタンプに変化があったら
「どこのファイルが書き換えられたぞ」と検出するプログラムを作りたい
片っ端からタイムスタンプを調べるしかないのか
これはファイルシステムの問題でしょうが
なんとか、前回調べてから変化があったか、短時間で検出できる方法はありませんか
ファイルに変化があったら、フォルダのタイムスタンプを変えてくれればいいんだけどね
"2020"というフォルダもある
:
"1950"というフォルダもある
そしてそれぞれに"01"〜"12"のサブフォルダがあって
そしてそのそれぞれに"01"〜"31"というサブフォルダがあって
更に"00"〜"23"という・・・・
つまり、1時間ごとのフォルダがあって
そこには多くのファイルが詰まっている
そのファイルのタイムスタンプに変化があったら
「どこのファイルが書き換えられたぞ」と検出するプログラムを作りたい
片っ端からタイムスタンプを調べるしかないのか
これはファイルシステムの問題でしょうが
なんとか、前回調べてから変化があったか、短時間で検出できる方法はありませんか
ファイルに変化があったら、フォルダのタイムスタンプを変えてくれればいいんだけどね
432デフォルトの名無しさん
2021/11/12(金) 21:45:17.50ID:gsBkkV8P そういう検出機能はOSかハードウェアかについてなかったか 忘れたが
433デフォルトの名無しさん
2021/11/12(金) 21:49:29.72ID:gsBkkV8P NTFSの USN とは?
USN ジャーナルとは
NTFSのUSN機能とはNTFSボリュームに対しての変更の記録です。
Cドライブ、Dドライブ、Eドライブごとなど、ドライブごとに加えられた変更を記録したものです。
USNとはUpdate Sequence Number Journalの略称です。
主に以下の目的で使用されます。
・FRS(File Replication Service)によるファイル複製時の差分洗い出し。
・スナップショットバックアップ時の差分洗い出し。
・ウィルス対策ソフトによるファイル検査。
・インデックスサービス向け。
http://tooljp.com/qa/what-is-USN-36BE.html
USN ジャーナルとは
NTFSのUSN機能とはNTFSボリュームに対しての変更の記録です。
Cドライブ、Dドライブ、Eドライブごとなど、ドライブごとに加えられた変更を記録したものです。
USNとはUpdate Sequence Number Journalの略称です。
主に以下の目的で使用されます。
・FRS(File Replication Service)によるファイル複製時の差分洗い出し。
・スナップショットバックアップ時の差分洗い出し。
・ウィルス対策ソフトによるファイル検査。
・インデックスサービス向け。
http://tooljp.com/qa/what-is-USN-36BE.html
434デフォルトの名無しさん
2021/11/12(金) 22:31:42.38ID:M7lyd7nj Ruby では、文字列の中から、URL を抜き出す関数が非推奨になった。
頻繁に規格が変わるからかな?
正規表現でも多分、何万行も掛かる。
作るのに10年ぐらい掛かるので、誰も作らない
今あるものでも、正しく判定されるかどうか、分からない
頻繁に規格が変わるからかな?
正規表現でも多分、何万行も掛かる。
作るのに10年ぐらい掛かるので、誰も作らない
今あるものでも、正しく判定されるかどうか、分からない
435デフォルトの名無しさん
2021/11/12(金) 22:39:57.54ID:M7lyd7nj436デフォルトの名無しさん
2021/11/13(土) 02:42:42.42ID:p75HzwR9437デフォルトの名無しさん
2021/11/15(月) 00:16:09.47ID:Xr7xQZWT お題: JSON形式のテキストをXML形式のテキストに変換しなさい
438デフォルトの名無しさん
2021/11/15(月) 21:06:19.54ID:L/+dWr8R439デフォルトの名無しさん
2021/11/23(火) 21:56:09.59ID:WrxNeBf5 age
440デフォルトの名無しさん
2021/11/24(水) 11:45:59.40ID:kXzWnsgO ideone って boost は include 出来るのか
codepad はずっと落ちてるな
codepad はずっと落ちてるな
441ハノン ◆QZaw55cn4c
2021/11/24(水) 20:41:27.64ID:CmhCtKru >>440
もう codepad はおしまい、codepad にアップした私のコードも永遠に失われました…
もう codepad はおしまい、codepad にアップした私のコードも永遠に失われました…
44296
2021/12/02(木) 04:03:51.64ID:EE6BdDDo 元のソースをローカルに保存しておかなかったのか
443デフォルトの名無しさん
2021/12/02(木) 12:54:02.17ID:adrEDszf 短いもんだから直接打ち込んじゃったんじゃないかな。
そして消滅。
そして消滅。
444デフォルトの名無しさん
2021/12/02(木) 16:48:13.78ID:BMPRSKoA >>442
デスクトップで書いたものはローカルのどこかに残っている(と思う)
ノートで書いたものはノートPCごとどこかにいってしまった…
いや、まあ、最初から書き捨てでしたけど、惜しいと思うものも多少ありますね
デスクトップで書いたものはローカルのどこかに残っている(と思う)
ノートで書いたものはノートPCごとどこかにいってしまった…
いや、まあ、最初から書き捨てでしたけど、惜しいと思うものも多少ありますね
44596
2021/12/02(木) 21:30:16.60ID:m0u4nXXp いま
http://codepad.org/
復活してない?
サンプルURLとして前々スレの過去の回答
プログラミングのお題スレ Part18
http://mevius.5ch.net/test/read.cgi/tech/1594702426/174
>174 名前:デフォルトの名無しさん[] 投稿日:2020/08/04(火) 19:24:17.96 ID:lImhU2CT
> >>173
> あーアホだったw
> タブ消去の仕様だとPythonだと分けわからんことになるなw
> ↓貼り直した
> http://codepad.org/BWRzr8fW
> ※会員未登録の為、一定期間後に自動消去
も表示されたし。
保持しておきたいcodeがあれば今のうちにsaveするか、
Internet archiveに記録しとくのも手だよ。
http://codepad.org/
復活してない?
サンプルURLとして前々スレの過去の回答
プログラミングのお題スレ Part18
http://mevius.5ch.net/test/read.cgi/tech/1594702426/174
>174 名前:デフォルトの名無しさん[] 投稿日:2020/08/04(火) 19:24:17.96 ID:lImhU2CT
> >>173
> あーアホだったw
> タブ消去の仕様だとPythonだと分けわからんことになるなw
> ↓貼り直した
> http://codepad.org/BWRzr8fW
> ※会員未登録の為、一定期間後に自動消去
も表示されたし。
保持しておきたいcodeがあれば今のうちにsaveするか、
Internet archiveに記録しとくのも手だよ。
446デフォルトの名無しさん
2021/12/08(水) 14:07:00.92ID:Bws6ftLO お題が出なくなったので全く実用性がないと思われる頭の体操的なやつを一つ。
お題: 与えられた数値の配列の 1 になっているビットをカウントする。
例えばC言語で unsigned char の配列とか使って、処理する関数はポインタで渡された所から何要素みたいに指定されるようにする。。
それで例えば 0xde, 0x96 (11011110, 10010110) なら答えは 10。
お題: 与えられた数値の配列の 1 になっているビットをカウントする。
例えばC言語で unsigned char の配列とか使って、処理する関数はポインタで渡された所から何要素みたいに指定されるようにする。。
それで例えば 0xde, 0x96 (11011110, 10010110) なら答えは 10。
447デフォルトの名無しさん
2021/12/08(水) 17:14:42.64ID:vDqYU7cZ .replace("0", "").length
448デフォルトの名無しさん
2021/12/08(水) 17:44:20.69ID:/InaUbpT お題: 日付が与えられるので4月ならtrueを出力しなさい
< 2021/04/01
> true
< 04/01
> true
< 2021/04
> true
< 2021/05/01
> false
< 2021/04/01
> true
< 04/01
> true
< 2021/04
> true
< 2021/05/01
> false
449デフォルトの名無しさん
2021/12/08(水) 19:09:00.93ID:nFeiLLyh450デフォルトの名無しさん
2021/12/09(木) 05:41:43.04ID:8cQ3P39Q 英式 1/4/2021
米式 4/1/2021
米式 4/1/2021
451デフォルトの名無しさん
2021/12/09(木) 08:53:58.33ID:FBbu4srV 日 21/04/01
米 04/01/21
欧 01/04/21
年2桁で入り乱れたら更にわけわかめ
米 04/01/21
欧 01/04/21
年2桁で入り乱れたら更にわけわかめ
452デフォルトの名無しさん
2021/12/09(木) 13:38:41.08ID:ZoIDn0OR 逆に、年2桁の時は、
その数値で年月日が特定できるか問題があった。
02 12 29 --> 12年02月29日 と 29年02月12日 の2通りがある
02 13 29 --> 13年02月29日はないので、29年02月13日のみ
その数値で年月日が特定できるか問題があった。
02 12 29 --> 12年02月29日 と 29年02月12日 の2通りがある
02 13 29 --> 13年02月29日はないので、29年02月13日のみ
453デフォルトの名無しさん
2021/12/09(木) 13:44:59.59ID:ZoIDn0OR454デフォルトの名無しさん
2021/12/09(木) 14:42:16.44ID:b/vm8aBu そういえば食品の賞味期限がどう読んだらいいか分からなかったことがあったなあ。
11/02/13
2013年2月11日なのか、それとも2013年11月2日なのか、まさか2011年2月13日だったりしたらどうしよう、みたいな。
普通に輸入されているものなら日本語ラベルがあるから分かるだろうけど、友達が現地のお土産屋で買ってきた
お菓子みたいなものだとそのまんまだったりする(まあ、アメリカかアメリカ以外かで考えればだいたいは大丈夫
なのかも知れないが)。
日本の元号みたいな独自年号まで使われているのが混在していたら余計に分からないよな。今の日本では
あまりないだろうけど昭和の頃はあったような気がするなあ。
11/02/13
2013年2月11日なのか、それとも2013年11月2日なのか、まさか2011年2月13日だったりしたらどうしよう、みたいな。
普通に輸入されているものなら日本語ラベルがあるから分かるだろうけど、友達が現地のお土産屋で買ってきた
お菓子みたいなものだとそのまんまだったりする(まあ、アメリカかアメリカ以外かで考えればだいたいは大丈夫
なのかも知れないが)。
日本の元号みたいな独自年号まで使われているのが混在していたら余計に分からないよな。今の日本では
あまりないだろうけど昭和の頃はあったような気がするなあ。
455デフォルトの名無しさん
2021/12/09(木) 22:53:27.33ID:93rp7Kwc456デフォルトの名無しさん
2021/12/09(木) 23:18:40.40ID:2ghuDZG2457デフォルトの名無しさん
2021/12/10(金) 00:33:54.80ID:Uh57IFJZ >>446
C
https://paiza.io/projects/YQ8ORfELqUt1xkKqmysViQ
入力を配列に入れてからカウントさせている。(uint32_t 型の配列)
カウント部分は>>456に似てる。しかし最初に引くのは思いつかなかった。
C
https://paiza.io/projects/YQ8ORfELqUt1xkKqmysViQ
入力を配列に入れてからカウントさせている。(uint32_t 型の配列)
カウント部分は>>456に似てる。しかし最初に引くのは思いつかなかった。
458デフォルトの名無しさん
2021/12/10(金) 01:03:30.79ID:Uh57IFJZ >>448
Perl
https://paiza.io/projects/o4VTdU_kK-S8T4G5HvkIRw
年月日順で年がある場合は必ず4桁でなければならない。
4だけでも4月に判定されるが、まあいいか。
Perl
https://paiza.io/projects/o4VTdU_kK-S8T4G5HvkIRw
年月日順で年がある場合は必ず4桁でなければならない。
4だけでも4月に判定されるが、まあいいか。
459デフォルトの名無しさん
2021/12/10(金) 09:12:55.36ID:rDACCx1y >>446
Haskell
sumCntBits = id
. length
. filter odd
. ( >>= ( takeWhile ( /= 0 ) . iterate ( flip div 2 ) ) )
main = do
print $ sumCntBits [ 0xde, 0x96 ]
print $ sumCntBits [ 0x12345, 0x6789a,0xbcdef ]
----
10
32
Haskell
sumCntBits = id
. length
. filter odd
. ( >>= ( takeWhile ( /= 0 ) . iterate ( flip div 2 ) ) )
main = do
print $ sumCntBits [ 0xde, 0x96 ]
print $ sumCntBits [ 0x12345, 0x6789a,0xbcdef ]
----
10
32
460デフォルトの名無しさん
2021/12/11(土) 11:47:37.10ID:kARxTGM3 >>446 rust
https://ideone.com/9yFeU3
fn main() {
let f = |a: &[u32]| a.iter().map(|n| n.count_ones()).sum::<u32>();
println!("{}", f(&[0xde, 0x96]));
}
https://ideone.com/9yFeU3
fn main() {
let f = |a: &[u32]| a.iter().map(|n| n.count_ones()).sum::<u32>();
println!("{}", f(&[0xde, 0x96]));
}
461デフォルトの名無しさん
2021/12/11(土) 20:38:05.35ID:LF8J+dNV >>446
Kotlin
https://paiza.io/projects/7hQyycMNf5nuV5HcBg6iQg
普通に作るのは出尽くした感があるのでちょっと変わったやり方にした。
入力から Int の List を作り、それを 1 ビットづつの Boolean のリスト(というか Iterator) にしてから true のみをカウントしている。
Kotlin
https://paiza.io/projects/7hQyycMNf5nuV5HcBg6iQg
普通に作るのは出尽くした感があるのでちょっと変わったやり方にした。
入力から Int の List を作り、それを 1 ビットづつの Boolean のリスト(というか Iterator) にしてから true のみをカウントしている。
462デフォルトの名無しさん
2021/12/11(土) 22:30:09.92ID:LvGvT7a1463デフォルトの名無しさん
2021/12/14(火) 17:40:23.45ID:kbrFI/m0 もうすぐ、2022年
[お題] 2022は"x3y1数"(造語)?
以下の二つを満たす正の整数を"x3y1数"と呼ぶ
・各桁の数値が、二種類のみの数字からなる
・上の二数の個数比は 3:1
該当例:1112, 2212, 2022, 32222223, 999999999888
ダメな例:2213(種類), 4444(種類), 33232(個数比), 0222(先頭ゼロ)
整数A,Bが与えられる。A以上B以下の"x3y1数"はいくつあるか?
制約: 0 < A <= B <= 10^18
1) 2923 3311 --> 8
該当は [2999, 3000, 3033, 3111, 3133, 3222, 3233, 3303]
2) 2021 77977796 --> 2022
3) 3000 6666566566566555 --> ?
4) 999999999889 1000000000000110 --> ?
5) 1 1000000000000000000 --> ?
※実行時間:上の5問をクエリーとし全部を2秒程度
[お題] 2022は"x3y1数"(造語)?
以下の二つを満たす正の整数を"x3y1数"と呼ぶ
・各桁の数値が、二種類のみの数字からなる
・上の二数の個数比は 3:1
該当例:1112, 2212, 2022, 32222223, 999999999888
ダメな例:2213(種類), 4444(種類), 33232(個数比), 0222(先頭ゼロ)
整数A,Bが与えられる。A以上B以下の"x3y1数"はいくつあるか?
制約: 0 < A <= B <= 10^18
1) 2923 3311 --> 8
該当は [2999, 3000, 3033, 3111, 3133, 3222, 3233, 3303]
2) 2021 77977796 --> 2022
3) 3000 6666566566566555 --> ?
4) 999999999889 1000000000000110 --> ?
5) 1 1000000000000000000 --> ?
※実行時間:上の5問をクエリーとし全部を2秒程度
464デフォルトの名無しさん
2021/12/16(木) 03:59:00.84ID:p3cQ7gqk お題:自分用double-double演算ライブラリ
最低限、通常のdoubleとの相互変換は可能であること。それに加えて、
1)加減算
2)加減算 + 乗算
3)四則演算
数字が大きいもの程上級者向けです。
演算子のオーバーロードなどは任意とします。
最低限、通常のdoubleとの相互変換は可能であること。それに加えて、
1)加減算
2)加減算 + 乗算
3)四則演算
数字が大きいもの程上級者向けです。
演算子のオーバーロードなどは任意とします。
465デフォルトの名無しさん
2021/12/16(木) 07:13:07.04ID:iDMhxZSI >>464
多倍長演算ライブラリ、のことですか?
多倍長演算ライブラリ、のことですか?
466デフォルトの名無しさん
2021/12/16(木) 07:37:15.94ID:I1MQqoQo >>465
アホ
アホ
467デフォルトの名無しさん
2021/12/16(木) 20:36:30.04ID:teZIL57B >>463 c
https://ideone.com/SjWUYZ
・数字を数えて判定
・範囲内の全ての整数をチェック
・想像以上に遅くてダメだった
>>463 ruby
https://ideone.com/JYQPIF
https://ideone.com/SjWUYZ
・数字を数えて判定
・範囲内の全ての整数をチェック
・想像以上に遅くてダメだった
>>463 ruby
https://ideone.com/JYQPIF
468デフォルトの名無しさん
2021/12/16(木) 20:39:48.12ID:iDMhxZSI >>466
double の演算を自分で実装するという意味ですか?
sum(double, double)
diff(double, double)
mul(double, double)
div(double, double)
を自分で実装する、という話でいいですか?
あと double のフォーマットは IEEE754 でいいですか?
double の演算を自分で実装するという意味ですか?
sum(double, double)
diff(double, double)
mul(double, double)
div(double, double)
を自分で実装する、という話でいいですか?
あと double のフォーマットは IEEE754 でいいですか?
469デフォルトの名無しさん
2021/12/16(木) 20:57:05.50ID:Y2CVy/MB 問題が説明不足では?
470デフォルトの名無しさん
2021/12/16(木) 21:53:18.15ID:B45/3FnD お題: テキストを読み込みそれをクリスマスツリーにして出力しなさい
クリスマスツリーに見えれば形は自由とする
入力
本日は良いお日柄ですね
出力
___本
__日は
_良いお
日柄です
___ね
クリスマスツリーに見えれば形は自由とする
入力
本日は良いお日柄ですね
出力
___本
__日は
_良いお
日柄です
___ね
471デフォルトの名無しさん
2021/12/16(木) 22:32:14.13ID:iDMhxZSI >>470
文字コードは何を仮定すればいいのですか?
文字コードは何を仮定すればいいのですか?
472デフォルトの名無しさん
2021/12/16(木) 22:34:05.93ID:B45/3FnD473デフォルトの名無しさん
2021/12/17(金) 00:19:35.20ID:6Xap9yRK474デフォルトの名無しさん
2021/12/17(金) 04:20:32.14ID:QblDDO27 二種類のみの数字からなり個数比は 3:1
引数の範囲は 1-10^18 = 1001-9999999999998888(16桁)
以下の範囲に限られる
1000-9998
1000 0001-9999 9988
1000 0000 0011-9999 9999 9888
1000 0000 0000 0111-9999 9999 9999 8888
「二種類のみの数字からなる」を計算式で判定する方法ある?
引数の範囲は 1-10^18 = 1001-9999999999998888(16桁)
以下の範囲に限られる
1000-9998
1000 0001-9999 9988
1000 0000 0011-9999 9999 9888
1000 0000 0000 0111-9999 9999 9999 8888
「二種類のみの数字からなる」を計算式で判定する方法ある?
475デフォルトの名無しさん
2021/12/17(金) 05:36:58.41ID:5DT5Lvck 1([\d&&[^1]])\1{2} 最上位桁が比1
111[\d&&[^1]],11[\d&&[^1]]1,1[\d&&[^1]]11 最上位桁が比3
一般化 (\d)(?!\1)(\d)\2{2}|(\d)\1{2}(?!\1)\d|(\d)\1(?!\1)\d\1|(\d)(?!\1)\d\1{2}
4桁ならこれでもいいけど8桁以上になると複雑化するし
地道に数えるより 4の倍数桁,数字2種,比率1:3 のルールで生成する方が速そう
111[\d&&[^1]],11[\d&&[^1]]1,1[\d&&[^1]]11 最上位桁が比3
一般化 (\d)(?!\1)(\d)\2{2}|(\d)\1{2}(?!\1)\d|(\d)\1(?!\1)\d\1|(\d)(?!\1)\d\1{2}
4桁ならこれでもいいけど8桁以上になると複雑化するし
地道に数えるより 4の倍数桁,数字2種,比率1:3 のルールで生成する方が速そう
476463
2021/12/17(金) 16:22:06.93ID:ssQAe3ef >>463
https://ideone.com/xTDtME
想定解は、事前に4,8,12,16桁の"x3y1"数を全列挙して作っておく。
プログラミング的には、各言語の順列や組合せを使って、作れるだろう。
(想定解例では組合せは2ベキとpopcountから作っている)
「それは、全列挙数が小さいとわかっているからでは..?」に対して
プログラムで出すのなら、雑に最も大きい16桁が4つあるとして計算
10P2 * 16C4 * 4 < 70万 なので、全列挙可能
まじめに計算すると 10P2 * (16C4 + 12C3 + 8C4 + 4C1) * 9 /10 = 167,832
列挙済みならば、クエリー5件程度なら、16.7万*5 チェックで間に合う。
ちゃんとやるなら、ソートして二分探索すれば、数千単位のクエリーに対応できる。
(想定解例では後者でやっている)
https://ideone.com/xTDtME
想定解は、事前に4,8,12,16桁の"x3y1"数を全列挙して作っておく。
プログラミング的には、各言語の順列や組合せを使って、作れるだろう。
(想定解例では組合せは2ベキとpopcountから作っている)
「それは、全列挙数が小さいとわかっているからでは..?」に対して
プログラムで出すのなら、雑に最も大きい16桁が4つあるとして計算
10P2 * 16C4 * 4 < 70万 なので、全列挙可能
まじめに計算すると 10P2 * (16C4 + 12C3 + 8C4 + 4C1) * 9 /10 = 167,832
列挙済みならば、クエリー5件程度なら、16.7万*5 チェックで間に合う。
ちゃんとやるなら、ソートして二分探索すれば、数千単位のクエリーに対応できる。
(想定解例では後者でやっている)
477デフォルトの名無しさん
2021/12/17(金) 20:17:58.00ID:gjoWWzuf478467
2021/12/17(金) 20:31:12.28ID:llvCqHRj479デフォルトの名無しさん
2021/12/17(金) 23:34:29.99ID:llvCqHRj480デフォルトの名無しさん
2021/12/18(土) 16:20:56.22ID:b+l2srj7481464
2021/12/18(土) 16:29:44.66ID:ElKfLkKB482デフォルトの名無しさん
2021/12/18(土) 16:50:56.06ID:XqEkP9jw > Wikipediaの「四倍精度浮動小数点数」の項に少しだけ載ってますです。
一般的な用語じゃないんだから初めからこれ書いとけよ
一般的な用語じゃないんだから初めからこれ書いとけよ
484デフォルトの名無しさん
2021/12/19(日) 21:10:50.32ID:wQiNAkF9485デフォルトの名無しさん
2021/12/21(火) 19:32:25.39ID:FcpxpynD 128ビットあるのに106ビットしか使わんの?
もったいなくね?
もったいなくね?
486デフォルトの名無しさん
2021/12/21(火) 19:47:17.61ID:1JACqwUF 素人はだまってろ
487デフォルトの名無しさん
2021/12/21(火) 21:17:48.02ID:cWMYIacO488デフォルトの名無しさん
2021/12/22(水) 04:27:38.39ID:5fCeD7fV double-doubleはFMAがFMAとして役立つ数少ない用途だな
積和じゃなくて3個の和のfused命令も欲しくなる
積和じゃなくて3個の和のfused命令も欲しくなる
489デフォルトの名無しさん
2021/12/23(木) 07:32:47.64ID:Xd/JFvMa お題: 1つの整数から規則性のある複数の整数を生成せよ
生成される整数は再現性がなければならない
生成される整数は再現性がなければならない
490デフォルトの名無しさん
2021/12/23(木) 07:37:01.70ID:GwakKG68491デフォルトの名無しさん
2021/12/23(木) 09:01:28.76ID:S2rGJ6tV >>489 Ruby
def sequence( seed, number )
srand( seed )
Array.new( number ){ rand(100) }
end
p sequence( 123, 10 ) #=> [66, 92, 98, 17, 83, 57, 86, 97, 96, 47]
p sequence( 123, 10 ) #=> [66, 92, 98, 17, 83, 57, 86, 97, 96, 47]
def sequence( seed, number )
srand( seed )
Array.new( number ){ rand(100) }
end
p sequence( 123, 10 ) #=> [66, 92, 98, 17, 83, 57, 86, 97, 96, 47]
p sequence( 123, 10 ) #=> [66, 92, 98, 17, 83, 57, 86, 97, 96, 47]
492デフォルトの名無しさん
2021/12/23(木) 19:26:32.49ID:KAa76evj >>486 ocaml
https://ideone.com/NzF5f2
let f =
let rec fib = function
0 -> 0 | 1 -> 1 | n -> fib (n - 1) + fib (n - 2)
and aux acc = function
-1 -> acc | m -> aux (fib m :: acc) (m - 1)
in aux []
https://ideone.com/NzF5f2
let f =
let rec fib = function
0 -> 0 | 1 -> 1 | n -> fib (n - 1) + fib (n - 2)
and aux acc = function
-1 -> acc | m -> aux (fib m :: acc) (m - 1)
in aux []
493デフォルトの名無しさん
2021/12/23(木) 19:27:19.05ID:KAa76evj >>489 ocaml
https://ideone.com/NzF5f2
let f =
let rec fib = function
0 -> 0 | 1 -> 1 | n -> fib (n - 1) + fib (n - 2)
and aux acc = function
-1 -> acc | m -> aux (fib m :: acc) (m - 1)
in aux []
https://ideone.com/NzF5f2
let f =
let rec fib = function
0 -> 0 | 1 -> 1 | n -> fib (n - 1) + fib (n - 2)
and aux acc = function
-1 -> acc | m -> aux (fib m :: acc) (m - 1)
in aux []
494デフォルトの名無しさん
2021/12/24(金) 17:16:46.67ID:Xt+LQVaD >>488
Juliaのhypot()でもFMA使ってますです
Juliaのhypot()でもFMA使ってますです
495デフォルトの名無しさん
2021/12/24(金) 22:51:57.83ID:Y/w+woHG496デフォルトの名無しさん
2021/12/25(土) 03:52:36.33ID:62MjaTIU497デフォルトの名無しさん
2021/12/27(月) 20:25:00.12ID:7ybeEGfH [お題] 平均が2022な素数数列
5000以下のあい異なる素数で、加算平均がぴったり 2022 の数列を作る。
数列の項数(要素数)を最大化する、最大はいくつか。
最大数と数列を表示する。
※解答例(もちろん4以上がある)
4
[1747, 2099, 2113, 2129]
※実行時間は素数生成を含めて、4秒以内
最大な数列は複数通りあると思うので、一例のみで
5000以下のあい異なる素数で、加算平均がぴったり 2022 の数列を作る。
数列の項数(要素数)を最大化する、最大はいくつか。
最大数と数列を表示する。
※解答例(もちろん4以上がある)
4
[1747, 2099, 2113, 2129]
※実行時間は素数生成を含めて、4秒以内
最大な数列は複数通りあると思うので、一例のみで
498デフォルトの名無しさん
2021/12/29(水) 15:58:08.20ID:czxFIFL7 答えは595個?
計算機+理詰めで595個っぽいけど
計算機+理詰めで595個っぽいけど
499デフォルトの名無しさん
2021/12/29(水) 16:38:34.79ID:cOaqDcVM 「Log4j」2.17.0にもリモートコード実行の脆弱性
500497
2021/12/29(水) 20:37:12.14ID:GN7CzEgH >>497 c++
https://ideone.com/UBbtWd
"素数-2022"で適当に最大化DPすれば、合計0相当の所に答えが……。
個人的には他の復元方法を見たかった。
pythonは遅いのであきらめた(高速化方法を知らない)
>>498
595個でした。手作業でできるレベルなら……
https://ideone.com/UBbtWd
"素数-2022"で適当に最大化DPすれば、合計0相当の所に答えが……。
個人的には他の復元方法を見たかった。
pythonは遅いのであきらめた(高速化方法を知らない)
>>498
595個でした。手作業でできるレベルなら……
501デフォルトの名無しさん
2021/12/29(水) 22:36:34.62ID:d+UhR9Ru オレがやったのは
p[n]をn番目の素数、
P[n]をn番目までの素数の集合、
s[n]をP[n]の和
a=2022として
まず素数のn元集合で平均が1番小さくなるのはP[n]でその平均値s[n]/nは単調増加だからs[n]/n>aの時元数n以上の解はない
s[596]/596>aは計算機で確認
なので595元集合で解があればそれが最大
s[595]/595<aなのでP[595]はダメ
s[596]-595a = 1205525 - 1203090 = 2435は素数ではないのでP[597]から一個消すのはダメ
s[597]-595a = 1209898 - 1203090 = 6808 はp597=4373以下の素数2459,4349の和で表すことができる
よってP[597]\{2459,4349}の和は595aとなる
完全に全自動で探索するプログラムも作れそうだけど答え出たらもういいかなと手が止まってしまった
p[n]をn番目の素数、
P[n]をn番目までの素数の集合、
s[n]をP[n]の和
a=2022として
まず素数のn元集合で平均が1番小さくなるのはP[n]でその平均値s[n]/nは単調増加だからs[n]/n>aの時元数n以上の解はない
s[596]/596>aは計算機で確認
なので595元集合で解があればそれが最大
s[595]/595<aなのでP[595]はダメ
s[596]-595a = 1205525 - 1203090 = 2435は素数ではないのでP[597]から一個消すのはダメ
s[597]-595a = 1209898 - 1203090 = 6808 はp597=4373以下の素数2459,4349の和で表すことができる
よってP[597]\{2459,4349}の和は595aとなる
完全に全自動で探索するプログラムも作れそうだけど答え出たらもういいかなと手が止まってしまった
502デフォルトの名無しさん
2021/12/30(木) 12:24:49.52ID:sGmJGaqc 何個取り除いたら平均2022にできるか考えると
確か74個だったけな?
JavaScriptで1秒もかかんなかったか
確か74個だったけな?
JavaScriptで1秒もかかんなかったか
503502
2021/12/30(木) 12:30:19.06ID:sGmJGaqc 表示時間除いたら1秒かかってないな
探索はほぼ一回でボトムまで到達して
発見された
探索はほぼ一回でボトムまで到達して
発見された
505デフォルトの名無しさん
2021/12/30(木) 20:10:02.90ID:jVgYGZiS >>502
最大の個数を求めよやろ?
最大の個数を求めよやろ?
506デフォルトの名無しさん
2021/12/30(木) 20:24:56.63ID:JL7tAErK 千葉興業銀行、4月から副業解禁 県内地銀初
南都銀行、4月から行員の副業制度導入 ウェブ制作など
荘内銀、行員の副業・兼業解禁
フィデアHD、副業・兼業制度を導入
横浜銀行、10月から従業員の副業・兼業解禁
鹿児島銀、副業解禁を検討 九州FGと肥後銀は10月導入
肥後銀行が副業制度導入へ 多様な働き方認める 10月から
南都銀行、4月から行員の副業制度導入 ウェブ制作など
荘内銀、行員の副業・兼業解禁
フィデアHD、副業・兼業制度を導入
横浜銀行、10月から従業員の副業・兼業解禁
鹿児島銀、副業解禁を検討 九州FGと肥後銀は10月導入
肥後銀行が副業制度導入へ 多様な働き方認める 10月から
507デフォルトの名無しさん
2021/12/31(金) 15:04:12.13ID:bqUePCKa >>497
haskell
https://ideone.com/GLMXRV
>>501のアルゴリズムを自動化してみた
すげー簡単なところでどハマりして半日かかった
まだ解なしの場合とかの動作チェックとかしてないけどもうどうでもいい
haskell
https://ideone.com/GLMXRV
>>501のアルゴリズムを自動化してみた
すげー簡単なところでどハマりして半日かかった
まだ解なしの場合とかの動作チェックとかしてないけどもうどうでもいい
508デフォルトの名無しさん
2021/12/31(金) 15:09:29.33ID:bqUePCKa ちなみに出力形式は
(最大個数、最大素数の通し番号、最大素数までの間での素数で除外する素数のリスト)
try 67%5
→(5,8,[2,3,5])
は最初の個数8個[2,3,5,7,11,13,17,19]から[2,3,5]を抜いた[7,11,13,17,19]の5個が平均が67/5になる素数のリストの一つ
長さ
6以上はない
(最大個数、最大素数の通し番号、最大素数までの間での素数で除外する素数のリスト)
try 67%5
→(5,8,[2,3,5])
は最初の個数8個[2,3,5,7,11,13,17,19]から[2,3,5]を抜いた[7,11,13,17,19]の5個が平均が67/5になる素数のリストの一つ
長さ
6以上はない
509デフォルトの名無しさん
2022/01/08(土) 11:42:09.36ID:B5P29Cqv お題:
xをゼロ以上の浮動小数点数として
2^floor(log2(x))
の計算。ただし、x == 0 の場合はゼロとする。
xをゼロ以上の浮動小数点数として
2^floor(log2(x))
の計算。ただし、x == 0 の場合はゼロとする。
510デフォルトの名無しさん
2022/01/08(土) 18:45:49.69ID:qvdwzZse >>481
>binary64を二つ使って、上位53ビットと下位53ビットとで106ビットの浮動小数に見立てたものが
>double-double演算です。
現在検討中ですが、binary64 中には仮数部に使用できるビット幅は 52 bits しかありません。つまりケチビット表現です
53+53 とのことですが、実際には 53 + 52 = 105 しか格納できないのではないでしょうか?
>binary64を二つ使って、上位53ビットと下位53ビットとで106ビットの浮動小数に見立てたものが
>double-double演算です。
現在検討中ですが、binary64 中には仮数部に使用できるビット幅は 52 bits しかありません。つまりケチビット表現です
53+53 とのことですが、実際には 53 + 52 = 105 しか格納できないのではないでしょうか?
512デフォルトの名無しさん
2022/01/09(日) 01:28:46.61ID:/FHAAuzb >>509
perlでワンライナー。入力は標準入力からする。
perl -MPOSIX -ne 'chomp;$n=$_?2**floor(log($_)/log(2)):0;print "$n\n"'
でも、こんなので良いの?自分ではほとんど何も考えてないんだが。
(log2()がないからlog(n)/log(2)でやるって所ぐらいしか工夫がない)
perlでワンライナー。入力は標準入力からする。
perl -MPOSIX -ne 'chomp;$n=$_?2**floor(log($_)/log(2)):0;print "$n\n"'
でも、こんなので良いの?自分ではほとんど何も考えてないんだが。
(log2()がないからlog(n)/log(2)でやるって所ぐらいしか工夫がない)
513デフォルトの名無しさん
2022/01/09(日) 07:56:15.63ID:9G1CcY2f >>509 C++
環境+コンパイルオプション依存 little endian, double = 64bit, long double = 128bit
double fl2( double x )
{
*( (uint64_t*) &x ) &= 0xFFF0000000000000LLU;
return x;
}
long double fl2( long double x )
{
*( (__uint128_t*) &x ) &= *( (__uint128_t*)"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF" );
return x;
}
環境+コンパイルオプション依存 little endian, double = 64bit, long double = 128bit
double fl2( double x )
{
*( (uint64_t*) &x ) &= 0xFFF0000000000000LLU;
return x;
}
long double fl2( long double x )
{
*( (__uint128_t*) &x ) &= *( (__uint128_t*)"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF" );
return x;
}
514デフォルトの名無しさん
2022/01/09(日) 07:59:19.16ID:+WoQnCHD 2進表記した時に先頭のビット以外を0にすればいいだけだがワンライナーで書ける気がしない
515デフォルトの名無しさん
2022/01/09(日) 08:00:08.09ID:+WoQnCHD 先頭のビットというより「(存在するなら)0じゃない一番位の大きいビット」だな
516デフォルトの名無しさん
2022/01/09(日) 08:27:45.00ID:Gu7/igUi ビットいじる方法だと、非正規化数が0に、NaNが無限大になる
そういえば、無限大やNaNはどうすればいいのだろうか
そういえば、無限大やNaNはどうすればいいのだろうか
517509
2022/01/09(日) 09:16:00.82ID:42F2CcU6 Python
でかい値だとうまくいかないやつ
def foo(x):
_c = x * float(2 ** 52 + 1)
_xh = c - (c - x)
_if xh > x: return(xh * 0.5)
_return(xh)
>>516
深く考えてませんでしたw
でかい値だとうまくいかないやつ
def foo(x):
_c = x * float(2 ** 52 + 1)
_xh = c - (c - x)
_if xh > x: return(xh * 0.5)
_return(xh)
>>516
深く考えてませんでしたw
518509
2022/01/09(日) 09:53:47.91ID:42F2CcU6 >>512
log2(n)をlog(n)/log(2)で近似した際の「誤差」
(ぴったり整数値になって欲しいのにそれよりも数ulp小さい値になったとか、
数ulp大きくて、ぎりぎりfloor()で切り捨てられる筈の値が1大きくなったとか)
を補償するコードが欲しい。
log2(n)をlog(n)/log(2)で近似した際の「誤差」
(ぴったり整数値になって欲しいのにそれよりも数ulp小さい値になったとか、
数ulp大きくて、ぎりぎりfloor()で切り捨てられる筈の値が1大きくなったとか)
を補償するコードが欲しい。
519デフォルトの名無しさん
2022/01/09(日) 15:38:39.37ID:DwVfG/qv そこは性能とトレードオフになるしかない気はする
例えばfloor( log 32 / log2 ) = 5が使用上の動作だけど
log 32/log2 =4.9999999999978 × 10^0が返されて答えが4になってしまうのを避けるならおそらく大きすぎる場合は無視していいから
res' = floor( log x / log2 )
if (2^res'* 1.5) < x
// (1.5倍でも届かないなら不当な丸め誤差が出たと判断)
then res = res' + 1
else res = res'
とかちょっと汚い書き方するしかない希ガス
例えばfloor( log 32 / log2 ) = 5が使用上の動作だけど
log 32/log2 =4.9999999999978 × 10^0が返されて答えが4になってしまうのを避けるならおそらく大きすぎる場合は無視していいから
res' = floor( log x / log2 )
if (2^res'* 1.5) < x
// (1.5倍でも届かないなら不当な丸め誤差が出たと判断)
then res = res' + 1
else res = res'
とかちょっと汚い書き方するしかない希ガス
520デフォルトの名無しさん
2022/01/09(日) 21:50:51.38ID:sZC3oXej なんか変なこと書いた
res' = floor( log x / log2 )
if 2^res' < x
then res = res' + 1
else res = res'
やな
res'の算出で丸め誤差は-1までと仮定して補正する
しかしもちろんlog(x)とか2^nハード的にFPUとかで高速にやってくれてしかも整数演算は誤差なしでやってくれる前提
この辺は高級言語プログラマレベルの話でなんとかなるもんではない
やるならアセンブリ言語レベルでやるしかない
res' = floor( log x / log2 )
if 2^res' < x
then res = res' + 1
else res = res'
やな
res'の算出で丸め誤差は-1までと仮定して補正する
しかしもちろんlog(x)とか2^nハード的にFPUとかで高速にやってくれてしかも整数演算は誤差なしでやってくれる前提
この辺は高級言語プログラマレベルの話でなんとかなるもんではない
やるならアセンブリ言語レベルでやるしかない
521デフォルトの名無しさん
2022/01/10(月) 00:03:40.12ID:gj6cLR2i522509
2022/01/10(月) 00:53:57.15ID:MGxmK4tZ いまどきのコンパイラなら、frexp()やldexp()をいい塩梅に最適化してくれるのだろうか?
from math import frexp, ldexp
def foo(x):
_m, e = frexp(x)
_if m == 0: return 0.0
_return ldexp(0.5, e)
from math import frexp, ldexp
def foo(x):
_m, e = frexp(x)
_if m == 0: return 0.0
_return ldexp(0.5, e)
523512
2022/01/10(月) 01:47:47.54ID:av6tewvz >>509
またPerlでワンライナー。
perl -ne 'chomp;if($_<=0){print"0\n"}else{for(my$i=0;;$i++){if((1<<$i)>$_){print 1<<($i-1),"\n";last}}}'
今度は計算している内容から考えて結果が同じになるようにした。浮動小数点演算をしていない。
また整数値が何ビットであるかも考慮しておらず、Perlの整数が32bitだった場合は2^32以上の値を入力されたら多分うまく動かない。
当然64bitだったら2^64以上の値の入力で多分うまく動かない。
またPerlでワンライナー。
perl -ne 'chomp;if($_<=0){print"0\n"}else{for(my$i=0;;$i++){if((1<<$i)>$_){print 1<<($i-1),"\n";last}}}'
今度は計算している内容から考えて結果が同じになるようにした。浮動小数点演算をしていない。
また整数値が何ビットであるかも考慮しておらず、Perlの整数が32bitだった場合は2^32以上の値を入力されたら多分うまく動かない。
当然64bitだったら2^64以上の値の入力で多分うまく動かない。
524509
2022/01/10(月) 02:23:50.20ID:MGxmK4tZ >>522の修正
from math import frexp, ldexp
def foo(x): return 0.0 if x == 0 else ldexp(0.5, frexp(x)[1])
from math import frexp, ldexp
def foo(x): return 0.0 if x == 0 else ldexp(0.5, frexp(x)[1])
525デフォルトの名無しさん
2022/01/10(月) 03:27:40.49ID:av6tewvz526デフォルトの名無しさん
2022/01/10(月) 12:43:53.01ID:SgLm6fjp527464
2022/01/11(火) 02:38:04.94ID:i2HiBm5J >>526
先人の実装例だと、
上位 + 下位 = double doubleの数値
という事になってますね(上位側の指数が決まると、下位側の指数も決まる)。
tps://na-inet.jp/na/qd_ja.pdf
勿論、そう実装しないのもあり。
先人の実装例だと、
上位 + 下位 = double doubleの数値
という事になってますね(上位側の指数が決まると、下位側の指数も決まる)。
tps://na-inet.jp/na/qd_ja.pdf
勿論、そう実装しないのもあり。
528デフォルトの名無しさん
2022/01/11(火) 03:06:24.10ID:Y9TTYX77529デフォルトの名無しさん
2022/01/11(火) 03:08:13.70ID:Y9TTYX77 >>527
失礼 pdf が紹介されていることを見落としていました、精査します、紹介ありがとうございます
失礼 pdf が紹介されていることを見落としていました、精査します、紹介ありがとうございます
530デフォルトの名無しさん
2022/01/30(日) 18:02:46.10ID:Np8aVX2s お題: 1より小さい実数を1以上2より下にせよ
< 0.123
> 1.23
< 0.0000123
> 1.23
< 0.123
> 1.23
< 0.0000123
> 1.23
531デフォルトの名無しさん
2022/01/30(日) 18:25:00.85ID:A8jovols532蟻人間 ◆T6xkBnTXz7B0
2022/01/30(日) 20:39:55.64ID:DZg7owi9 お題: 質量0.2 kgの直方体の物体が摩擦のある水平な床の上にある。
物体の初速を右向きの0.5 [m/s]とすると、物体は転倒することなく底面が床に接したまま、約x秒後に自然停止した。xより垂直抗力F[N]と動摩擦係数kを求めよ。
重力加速度を 9.8 [m/s^2]とする。
物体の初速を右向きの0.5 [m/s]とすると、物体は転倒することなく底面が床に接したまま、約x秒後に自然停止した。xより垂直抗力F[N]と動摩擦係数kを求めよ。
重力加速度を 9.8 [m/s^2]とする。
533蟻人間 ◆T6xkBnTXz7B0
2022/01/30(日) 20:58:19.92ID:DZg7owi9 お題(HTML/JavaScript): ユーザがGoogleから訪問した場合は、3秒間ブラウザを停止させるようにせよ。
534デフォルトの名無しさん
2022/02/01(火) 07:45:34.60ID:/+irRzAS >>530
負の数や2以上の数は?
負の数や2以上の数は?
535デフォルトの名無しさん
2022/02/01(火) 16:02:38.13ID:zoPPBktH >>534
・・・!
・・・!
536デフォルトの名無しさん
2022/02/01(火) 18:02:38.08ID:zoPPBktH537デフォルトの名無しさん
2022/02/01(火) 20:01:29.11ID:TQ6+L4kb 負だったらabsolute取るだけのことじゃん
538デフォルトの名無しさん
2022/02/01(火) 23:48:43.79ID:/+irRzAS >>536
perl
ワンライナー。以下はbashのコマンドラインから実行して試した。
入力は標準入力で一つづつ改行する。
perl -ne 'chomp;$n=$_;while(int(abs($n))<1){$n*=10}print "$n\n";'
やってることは見ての通り殆ど何も考えず10倍し続けるだけ。
perl
ワンライナー。以下はbashのコマンドラインから実行して試した。
入力は標準入力で一つづつ改行する。
perl -ne 'chomp;$n=$_;while(int(abs($n))<1){$n*=10}print "$n\n";'
やってることは見ての通り殆ど何も考えず10倍し続けるだけ。
539デフォルトの名無しさん
2022/02/21(月) 17:49:01.62ID:QCKFV9kK もうすぐ22日、今年は "22/2/22"といつもより多め
[お題] 偶数ゾロ目
URLのページに都道府県別の人口が載っている。
URL: https://ideone.com/2w86hj
今回使用するのは、2020/10のデータ
同じ県は一回のみで、異なる県を 22 県選らぶ。
(単純な選び方は全部で NCR(47, 22) = 約14.8兆通り)
整数A,Bが与えられる(1<=A<=B<=1億)
選択した22県の人口合計が A以上B以下となるのは何通りか?
1) 44444444 44444444 --> 214209
2) 22222222 44444444 --> ?
3) 44444444 66666666 --> ?
※上の三問を全部で5秒程度で
想定解はあるが、もっとスマートな方法がありそう
「またか」と思った人、以前の問題とは想定解はかなり違う
[お題] 偶数ゾロ目
URLのページに都道府県別の人口が載っている。
URL: https://ideone.com/2w86hj
今回使用するのは、2020/10のデータ
同じ県は一回のみで、異なる県を 22 県選らぶ。
(単純な選び方は全部で NCR(47, 22) = 約14.8兆通り)
整数A,Bが与えられる(1<=A<=B<=1億)
選択した22県の人口合計が A以上B以下となるのは何通りか?
1) 44444444 44444444 --> 214209
2) 22222222 44444444 --> ?
3) 44444444 66666666 --> ?
※上の三問を全部で5秒程度で
想定解はあるが、もっとスマートな方法がありそう
「またか」と思った人、以前の問題とは想定解はかなり違う
540デフォルトの名無しさん
2022/02/23(水) 19:08:44.10ID:jKeAH0Dy >>536
やぱしn==0は除外?
やぱしn==0は除外?
541デフォルトの名無しさん
2022/02/24(木) 00:35:12.16ID:5B3hmiET >>540
一桁目が0は除外してね
一桁目が0は除外してね
542デフォルトの名無しさん
2022/02/24(木) 08:38:30.17ID:GiducjAN 難しい、こんなの小学生が解けるのか?
今年の中学受験の算数で一番の良問がこれらしい [976717553]
https://hayabusa9.5ch.net/test/read.cgi/news/1645558073/
今年の中学受験の算数で一番の良問がこれらしい [976717553]
https://hayabusa9.5ch.net/test/read.cgi/news/1645558073/
543539
2022/02/25(金) 17:25:00.82ID:STd/IFZD544デフォルトの名無しさん
2022/02/25(金) 19:14:08.69ID:RZ7O9d2K545デフォルトの名無しさん
2022/02/26(土) 19:41:18.44ID:4VT1Qgxn haskellでやったらやっぱり5秒はきつかった
546デフォルトの名無しさん
2022/02/27(日) 02:34:25.32ID:VdMMR1Xg お題: RustかGoでバイナリーサーチを実装してください
547デフォルトの名無しさん
2022/03/20(日) 12:30:16.47ID:nN0Ys+dW お題: トライ木を使ってサジェスト機能を実装してください
$ prog
> w
world
would
will
wish
辞書は任意の大きさとする
入力は英語、または日本語とする
$ prog
> w
world
would
will
wish
辞書は任意の大きさとする
入力は英語、または日本語とする
548デフォルトの名無しさん
2022/03/20(日) 19:32:45.03ID:Ycqbgo6j549デフォルトの名無しさん
2022/03/20(日) 19:41:12.56ID:sy393qRd お題 バッタの大冒険
a(1),a(2),⋯,a(n) を相異なる正の整数とし、M を n-1個の正の整数からなる集合と
する。また、M は s=a(1)+a(2)+⋯+a(n) を含まない。数直線の 0 の地点にいるバッタが
数直線の正の向きに n 回ジャンプする。 n 回のジャンプの距離は a(1),a(2),⋯,a(n) の並べ替えである。このとき並べ替えをうまく選べば、バッタがM の要素に対応するn-1点に一度も着地しないようにできることを証明せよ。
↑数学オリンピックの問題
もちろん証明はどうでもよろしい
お題は(ジャンプの幅のリスト、禁止点のリスト)から禁止点を交わしていく飛ぶ順を見つけるプログラムを実装せよです
入力
([3,5,8],[5,10])
出力
[8,5,3] #着地するのは8,13,16で禁止点5,10をかわしている
入力
([5,6,8,10,13,15],[2,18,24,29,45])
出力
[15,13,10,8,6,5] #着地するのは15,28,38,46,51で全ての禁止点をかわしている
入力
([3,26,30,32,36,44,53,62,68,82],[36,40,59,79,92,126,178,233,394])
出力
[82,68,62,53,44,36,32,30,26,3] #同文
a(1),a(2),⋯,a(n) を相異なる正の整数とし、M を n-1個の正の整数からなる集合と
する。また、M は s=a(1)+a(2)+⋯+a(n) を含まない。数直線の 0 の地点にいるバッタが
数直線の正の向きに n 回ジャンプする。 n 回のジャンプの距離は a(1),a(2),⋯,a(n) の並べ替えである。このとき並べ替えをうまく選べば、バッタがM の要素に対応するn-1点に一度も着地しないようにできることを証明せよ。
↑数学オリンピックの問題
もちろん証明はどうでもよろしい
お題は(ジャンプの幅のリスト、禁止点のリスト)から禁止点を交わしていく飛ぶ順を見つけるプログラムを実装せよです
入力
([3,5,8],[5,10])
出力
[8,5,3] #着地するのは8,13,16で禁止点5,10をかわしている
入力
([5,6,8,10,13,15],[2,18,24,29,45])
出力
[15,13,10,8,6,5] #着地するのは15,28,38,46,51で全ての禁止点をかわしている
入力
([3,26,30,32,36,44,53,62,68,82],[36,40,59,79,92,126,178,233,394])
出力
[82,68,62,53,44,36,32,30,26,3] #同文
550デフォルトの名無しさん
2022/03/20(日) 21:13:54.18ID:yn4DTgXG 2番目の例着地するのは
15,28,38,46,52,57
ですた
15,28,38,46,52,57
ですた
551デフォルトの名無しさん
2022/03/22(火) 20:44:30.68ID:0IfoPmot >>549
は数学の問題としても面白いけどココはプログラムのお題スレなのでアルゴリズムそのもの考えるのは嫌な人のためにアルゴリズムひとつ紹介しておきます
以下の探索で線形オーダーで解を見つけられます
自分で考えたい人は無視してください
以下aを最大ジャンプとします
a=a(n)としておく
(A)一回目を最大ジャンプで飛んだとして最初の禁止点に届かないかギリギリ届くとき
一回目のジャンプが最大ジャンプしたと想定して残りのn-1回ジャンプで最初の禁止点を無視したn-2個の禁止点を交わしたジャンプ順b(1)...b(n-1)を作る
この順番でとんて行って最初に最初の禁止点をi回目に超えたとする
解のジャンプとして
b(1),b(2),...,b(i-1),a,b(i),...,b(n)
とすると全ての禁止点をかわしている
(B) 一回目を最大ジャンプで飛んだとすると最初の禁止点を超えて、しかも禁止点以外に着地できるとき
一回目のジャンプが最大ジャンプしたと想定して残りのn-1回ジャンプで最初の禁止点を無視したn-2個の禁止点を交わしたジャンプ順b(1)...b(n-1)を作る
解のジャンプとして
a,b(1),...,b(n-1)
とすると全ての禁止点をかわしている
(C) 一回目を最大ジャンプで飛んだとすると最初の禁止点を超えるが別の禁止点に着地してしまうとき
この状況だとa(1)〜a(n-1)のいずれかのジャンプa(i)でa(i)もa+a(i)のどちらも禁止点でないものが取れる( (∵) 全てのi:1〜n-1でa(i)かa+a(i)のどちらかが禁止点とするとこれだけでn-1個の禁止点全部尽くされてしまうけど、この中には最初の仮定である“一回目aで飛んだら禁止点”はこの中には出てこないので矛盾 )
それをa(n-1)としよう
最小の2回をa(n-1),a(n)と飛んだとしてこの時点で最初の禁止点と最初a(n)だと踏んでしまう禁止点の2点は超えているので残りの禁止点はn-3個以下しか残ってない
そこでa(1)〜a(n-2)をうまく並べ替えれば全部かわすことができる
は数学の問題としても面白いけどココはプログラムのお題スレなのでアルゴリズムそのもの考えるのは嫌な人のためにアルゴリズムひとつ紹介しておきます
以下の探索で線形オーダーで解を見つけられます
自分で考えたい人は無視してください
以下aを最大ジャンプとします
a=a(n)としておく
(A)一回目を最大ジャンプで飛んだとして最初の禁止点に届かないかギリギリ届くとき
一回目のジャンプが最大ジャンプしたと想定して残りのn-1回ジャンプで最初の禁止点を無視したn-2個の禁止点を交わしたジャンプ順b(1)...b(n-1)を作る
この順番でとんて行って最初に最初の禁止点をi回目に超えたとする
解のジャンプとして
b(1),b(2),...,b(i-1),a,b(i),...,b(n)
とすると全ての禁止点をかわしている
(B) 一回目を最大ジャンプで飛んだとすると最初の禁止点を超えて、しかも禁止点以外に着地できるとき
一回目のジャンプが最大ジャンプしたと想定して残りのn-1回ジャンプで最初の禁止点を無視したn-2個の禁止点を交わしたジャンプ順b(1)...b(n-1)を作る
解のジャンプとして
a,b(1),...,b(n-1)
とすると全ての禁止点をかわしている
(C) 一回目を最大ジャンプで飛んだとすると最初の禁止点を超えるが別の禁止点に着地してしまうとき
この状況だとa(1)〜a(n-1)のいずれかのジャンプa(i)でa(i)もa+a(i)のどちらも禁止点でないものが取れる( (∵) 全てのi:1〜n-1でa(i)かa+a(i)のどちらかが禁止点とするとこれだけでn-1個の禁止点全部尽くされてしまうけど、この中には最初の仮定である“一回目aで飛んだら禁止点”はこの中には出てこないので矛盾 )
それをa(n-1)としよう
最小の2回をa(n-1),a(n)と飛んだとしてこの時点で最初の禁止点と最初a(n)だと踏んでしまう禁止点の2点は超えているので残りの禁止点はn-3個以下しか残ってない
そこでa(1)〜a(n-2)をうまく並べ替えれば全部かわすことができる
552デフォルトの名無しさん
2022/05/03(火) 15:12:22.98ID:FP7f4hyR 問題がよくわからなくて解く以前の所で停止。そしてやる気消滅。
553デフォルトの名無しさん
2022/05/03(火) 23:10:33.84ID:JwGzWANE 説明不足で申し訳ない
問題文は数オリの紹介サイトからそのままコピペしてきたのでわかりにくかったかもしれない
1番最初の例
([3,5,8],[5,10])
だとバッタは最初x=0の地点にいて+3,+5,+8のジャンプでx=16の地点に行こうとしている
しかしx=5,x=10の地点は着地禁止地点で着地できない
飛び方は全部で6通りあるがその中から禁止地点に着地しないものを選んで下さいという問題
3回くらいなら総当たりで答え出せるけどジャンプ10回禁止地点9ヶ所だと全数検索すると10!通り必要になって実用にならない
どうしますかというテーマだけどもちろん数学オリンピックの問題なので中々自分で答え出すのは難しい
でここは数学板ではないので同じ数オリサイトにあった解答を転記して「こんなアルゴリズムが知られているけどアルゴリズムをインプリメントできますか」がお題です
問題文は数オリの紹介サイトからそのままコピペしてきたのでわかりにくかったかもしれない
1番最初の例
([3,5,8],[5,10])
だとバッタは最初x=0の地点にいて+3,+5,+8のジャンプでx=16の地点に行こうとしている
しかしx=5,x=10の地点は着地禁止地点で着地できない
飛び方は全部で6通りあるがその中から禁止地点に着地しないものを選んで下さいという問題
3回くらいなら総当たりで答え出せるけどジャンプ10回禁止地点9ヶ所だと全数検索すると10!通り必要になって実用にならない
どうしますかというテーマだけどもちろん数学オリンピックの問題なので中々自分で答え出すのは難しい
でここは数学板ではないので同じ数オリサイトにあった解答を転記して「こんなアルゴリズムが知られているけどアルゴリズムをインプリメントできますか」がお題です
554デフォルトの名無しさん
2022/05/04(水) 00:16:07.90ID:0lMETj8q お題: C/C++でスレッドセーフなstrtok関数を作れ
設計は各自で考えること
設計は各自で考えること
555デフォルトの名無しさん
2022/05/04(水) 08:22:49.31ID:WTZHV9SY 政府公認のスカトロサークルだって!?じゅるり
556デフォルトの名無しさん
2022/05/05(木) 02:33:11.33ID:FeY8iOM4 高度IT人材、富士通は最大年収3500万円へ
AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ
【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材
来年度から副業解禁 人材多様化へ―大同生命次期社長
第一生命HD、副業解禁 約1万5000人対象
第一生命HD、副業解禁 1万5000人対象―大手生保初
IHI、国内8000人の副業解禁 重厚長大企業も転機
IHI、社外兼業を解禁 社内副業もルール化
AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ
【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材
来年度から副業解禁 人材多様化へ―大同生命次期社長
第一生命HD、副業解禁 約1万5000人対象
第一生命HD、副業解禁 1万5000人対象―大手生保初
IHI、国内8000人の副業解禁 重厚長大企業も転機
IHI、社外兼業を解禁 社内副業もルール化
557デフォルトの名無しさん
2022/05/05(木) 16:49:02.33ID:SGcHNlDo >>554
C言語
https://paiza.io/projects/xS5GP9DAU6KzhDsM6x7M6g
strtok_r() を strtok_r2() の名前にして自分で実装した。
strsep() も paiza.io のCのライブラリには何故かなかったので strsep2() にして自分で実装した。
C言語
https://paiza.io/projects/xS5GP9DAU6KzhDsM6x7M6g
strtok_r() を strtok_r2() の名前にして自分で実装した。
strsep() も paiza.io のCのライブラリには何故かなかったので strsep2() にして自分で実装した。
558デフォルトの名無しさん
2022/05/11(水) 08:28:38.45ID:zQqHPRjb 思い付きでお題考えてみた
検証してないんだけどどう?
お題: ランダムな部屋を移動する最短距離を求める
行列がある
任意の横幅Wと高さHで表現される部屋がランダムに1 <= N <= 5個生成される
この部屋を部屋内の座標からランダムに選択した別の部屋の部屋内の座標まで通路を作る
通路の要素は斜めには生成されず横と縦に生成される
通路はランダムに1つの部屋から0 <= R <= 3生成される
各部屋を各通路で繋げ任意の部屋Aと任意の部屋Bを選択する
このときAからBまでの最短経路を求めよ
検証してないんだけどどう?
お題: ランダムな部屋を移動する最短距離を求める
行列がある
任意の横幅Wと高さHで表現される部屋がランダムに1 <= N <= 5個生成される
この部屋を部屋内の座標からランダムに選択した別の部屋の部屋内の座標まで通路を作る
通路の要素は斜めには生成されず横と縦に生成される
通路はランダムに1つの部屋から0 <= R <= 3生成される
各部屋を各通路で繋げ任意の部屋Aと任意の部屋Bを選択する
このときAからBまでの最短経路を求めよ
559デフォルトの名無しさん
2022/05/11(水) 10:03:08.65ID:u3pPN9f9 ランダムの部分いる?
560デフォルトの名無しさん
2022/05/11(水) 19:40:13.01ID:RtJ1FIjP 日本語がよくわからんから数式で書いてくれ
561デフォルトの名無しさん
2022/05/11(水) 19:57:58.11ID:dPHs0KwZ 数式だと答えになりそうだから図で書いてくれ
562デフォルトの名無しさん
2022/05/17(火) 17:53:19.20ID:UVEhLnaE さらに、閑古鳥をよびよせるか
[お題] 多倍長では無理!?
整数 S, T が与えられる。(1 <= S <= T <= 400万)
S以上T以下の(連続する)整数の最小公倍数(LCM)をもとめる
答えは, 1000000007(10億7)の余りで出力
1) 6 8 --> 168
6,7,8 の最小公倍数、LCM(6, 7)= 42 --> LCM(42, 8)= 168
2) 10 30 --> 89546497
剰余前は、2329089562800
3) 2567890 3456789 --> ?
4) 1 4000000 --> ?
[お題] 多倍長では無理!?
整数 S, T が与えられる。(1 <= S <= T <= 400万)
S以上T以下の(連続する)整数の最小公倍数(LCM)をもとめる
答えは, 1000000007(10億7)の余りで出力
1) 6 8 --> 168
6,7,8 の最小公倍数、LCM(6, 7)= 42 --> LCM(42, 8)= 168
2) 10 30 --> 89546497
剰余前は、2329089562800
3) 2567890 3456789 --> ?
4) 1 4000000 --> ?
563デフォルトの名無しさん
2022/05/19(木) 21:03:46.76ID:f4mJcXLG564デフォルトの名無しさん
2022/05/19(木) 21:16:43.90ID:bqW40Z5X √T以下の素数列挙
各数を素因数分解して各素数の指数の最大を求める
10億7の剰余で上の乗算を行う
各数を素因数分解して各素数の指数の最大を求める
10億7の剰余で上の乗算を行う
565デフォルトの名無しさん
2022/05/19(木) 22:51:31.74ID:vGEyxbeO566デフォルトの名無しさん
2022/05/20(金) 19:19:40.97ID:nM/DB7wD >>562
https://ideone.com/O9PQbN
想定解としては、(他の人同様)
求める最小公倍数を素因数分解した形に作るイメージ
400万以下の"素数及び素数べき乗"は、高々28.3万件。
S以上T以下で、素数べき乗が割り切れるかどうかチェックしている。
(方法は T/素数べき乗 > (S-1)/素数べき乗 ならあると, O(1)判定)
ボトルネックは素数を求める部分なので、手抜きしている。
余談)
・4)を多倍長で計算すると173万桁だった(一分程度ででた)
・10^9+7 ではなく、下9桁を出力だと、4)は 0になる(5^9が範囲にあるから)
https://ideone.com/O9PQbN
想定解としては、(他の人同様)
求める最小公倍数を素因数分解した形に作るイメージ
400万以下の"素数及び素数べき乗"は、高々28.3万件。
S以上T以下で、素数べき乗が割り切れるかどうかチェックしている。
(方法は T/素数べき乗 > (S-1)/素数べき乗 ならあると, O(1)判定)
ボトルネックは素数を求める部分なので、手抜きしている。
余談)
・4)を多倍長で計算すると173万桁だった(一分程度ででた)
・10^9+7 ではなく、下9桁を出力だと、4)は 0になる(5^9が範囲にあるから)
567デフォルトの名無しさん
2022/07/01(金) 10:06:17.68ID:GRk1+wVC age
568デフォルトの名無しさん
2022/07/01(金) 15:47:14.28ID:GJ0Vg4bO お題: 循環リストを検出するプログラムを書け
569デフォルトの名無しさん
2022/07/01(金) 19:58:00.80ID:il671KyI 循環リスト
の定義を書いてください
の定義を書いてください
570デフォルトの名無しさん
2022/07/02(土) 02:10:30.75ID:1mXsd8mZ お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
123 -> INT
1,234 -> INT
1.23 -> FLOAT
a123 -> INVALID
12abc -> INVALID
1.23.435 -> INVALID
変換できない場合はINVALIDと出力せよ
123 -> INT
1,234 -> INT
1.23 -> FLOAT
a123 -> INVALID
12abc -> INVALID
1.23.435 -> INVALID
571デフォルトの名無しさん
2022/07/02(土) 04:54:46.54ID:5fwFwNtd572デフォルトの名無しさん
2022/07/02(土) 05:51:46.20ID:y+j5RBoo >>570 Ruby
f = -> s {
case s
when /\A(?:0|[1-9]\d*)\z|\A(?:[1-9]\d{0,2})(?:,\d{3})*\z/
:INT
when /\A(?:0?|[1-9]\d*)\.\d+\z/
:FLOAT
else
:INVALID
end
}
%w[123 1,234 1.23 a123 12abc 1.23.435 .142857 1. 0 01 1,234,567 1234,567].each{|s|
puts '%s -> %s' % [s, f[s]]
}
# =>
123 -> INT
1,234 -> INT
1.23 -> FLOAT
a123 -> INVALID
12abc -> INVALID
1.23.435 -> INVALID
.142857 -> FLOAT
1. -> INVALID
0 -> INT
01 -> INVALID
1,234,567 -> INT
1234,567 -> INVALID
f = -> s {
case s
when /\A(?:0|[1-9]\d*)\z|\A(?:[1-9]\d{0,2})(?:,\d{3})*\z/
:INT
when /\A(?:0?|[1-9]\d*)\.\d+\z/
:FLOAT
else
:INVALID
end
}
%w[123 1,234 1.23 a123 12abc 1.23.435 .142857 1. 0 01 1,234,567 1234,567].each{|s|
puts '%s -> %s' % [s, f[s]]
}
# =>
123 -> INT
1,234 -> INT
1.23 -> FLOAT
a123 -> INVALID
12abc -> INVALID
1.23.435 -> INVALID
.142857 -> FLOAT
1. -> INVALID
0 -> INT
01 -> INVALID
1,234,567 -> INT
1234,567 -> INVALID
573デフォルトの名無しさん
2022/07/02(土) 05:58:59.35ID:At3W7bIA574デフォルトの名無しさん
2022/07/02(土) 08:08:58.00ID:syeRaQWQ そんな文句みたいな言い方するほどか?
他の問題に比べたらケースちゃんと提示してる方だし
そういうのは想定してないってなんとなくわかるだろ
競プロならちゃんと定義必要だろうけど
他の問題に比べたらケースちゃんと提示してる方だし
そういうのは想定してないってなんとなくわかるだろ
競プロならちゃんと定義必要だろうけど
575デフォルトの名無しさん
2022/07/02(土) 08:09:44.82ID:syeRaQWQ 123.0は確かに気になるけど
576デフォルトの名無しさん
2022/07/02(土) 09:41:42.13ID:At3W7bIA577デフォルトの名無しさん
2022/07/02(土) 09:58:04.16ID:dKfad4Z0 はい!
578デフォルトの名無しさん
2022/07/02(土) 09:58:41.88ID:COZLaCzb 123.0はfloatだろ常考
579デフォルトの名無しさん
2022/07/02(土) 12:04:36.48ID:oDFjP9XJ 黙って実装して自分なりの仕様を提示するテストケースを追加して提出した>>572の勝利
581デフォルトの名無しさん
2022/07/02(土) 15:40:39.43ID:ZFJdClOp >>579
クールだよな
クールだよな
582デフォルトの名無しさん
2022/07/02(土) 16:54:51.10ID:RqXE55Ja >>570
こういうアホがソフト仕様を書くと悲惨
こういうアホがソフト仕様を書くと悲惨
583デフォルトの名無しさん
2022/07/02(土) 17:49:49.50ID:Vxz6zO/I 久々に出題者現れたかと思ったらフルボッコでかわいそう
584デフォルトの名無しさん
2022/07/02(土) 18:03:20.65ID:+K04BJMF もっと気楽にやれよ
普段ゴミみたいな案件で意を汲み取れず怒られ理不尽な思いしてる底辺コーダーが叩き行為で鬱憤晴らししたいんだろうけどさw
仕様の隙間をどうするかをこういったところで一般共通認識得るのは有意義
その議論を「荒れる」と捉えるのは違うでしょ
普段ゴミみたいな案件で意を汲み取れず怒られ理不尽な思いしてる底辺コーダーが叩き行為で鬱憤晴らししたいんだろうけどさw
仕様の隙間をどうするかをこういったところで一般共通認識得るのは有意義
その議論を「荒れる」と捉えるのは違うでしょ
585デフォルトの名無しさん
2022/07/02(土) 20:54:40.02ID:1mXsd8mZ お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
version 1.0.1
123 -> INT
1,234 -> INT
1.23 -> FLOAT
a123 -> INVALID
12abc -> INVALID
1.23.435 -> INVALID
.142857 -> FLOAT
1. -> INVALID
0 -> INT
01 -> INVALID
1,234,567 -> INT
1234,567 -> INVALID
123.0 -> FLOAT
変換できない場合はINVALIDと出力せよ
version 1.0.1
123 -> INT
1,234 -> INT
1.23 -> FLOAT
a123 -> INVALID
12abc -> INVALID
1.23.435 -> INVALID
.142857 -> FLOAT
1. -> INVALID
0 -> INT
01 -> INVALID
1,234,567 -> INT
1234,567 -> INVALID
123.0 -> FLOAT
586デフォルトの名無しさん
2022/07/02(土) 23:37:34.43ID:12WH0HiU587デフォルトの名無しさん
2022/07/03(日) 06:43:46.91ID:/5k6Ls0P .142857がOKで1.がNG
なんか違和感
どの言語の流儀?
具体例だけに頼らないで
定義っぽく書けない?
----
[整数部]、[整数部].[小数部]、.[小数部] のいずれかの形
[整数部] : 0123456789の列1文字以上、もしくはこれを3桁ずつ,で区切った形
2桁以上の場合は先頭は0ではない
[小数部] : 0123456789の列1文字以上
....
こんな感じ
なんか違和感
どの言語の流儀?
具体例だけに頼らないで
定義っぽく書けない?
----
[整数部]、[整数部].[小数部]、.[小数部] のいずれかの形
[整数部] : 0123456789の列1文字以上、もしくはこれを3桁ずつ,で区切った形
2桁以上の場合は先頭は0ではない
[小数部] : 0123456789の列1文字以上
....
こんな感じ
588デフォルトの名無しさん
2022/07/03(日) 07:10:28.62ID:3/zKVKew 0.DDD を .DDD と表記するのは欧米では情報系に限らず日常よく見られること
CSSもperlも昔のrubyも対応してたんじゃなかったかな
CSSもperlも昔のrubyも対応してたんじゃなかったかな
589デフォルトの名無しさん
2022/07/03(日) 09:01:07.02ID:udoKn6Zg 1. がNGなのは?
どこの流儀?
どこの流儀?
590デフォルトの名無しさん
2022/07/03(日) 09:17:25.30ID:aLgpTdvv >>584
> 仕様の隙間をどうするかをこういったところで一般共通認識得るのは有意義
だからその一般認識がないから揉めるって話
既に違和感と言い出す奴とか欧米ガーとか流儀ガーとか言い出してるだろ
エディタの宗教戦争と同じで正解なんてないんだからお題を作った奴が決めないと収拾つかんよ
> 仕様の隙間をどうするかをこういったところで一般共通認識得るのは有意義
だからその一般認識がないから揉めるって話
既に違和感と言い出す奴とか欧米ガーとか流儀ガーとか言い出してるだろ
エディタの宗教戦争と同じで正解なんてないんだからお題を作った奴が決めないと収拾つかんよ
591デフォルトの名無しさん
2022/07/03(日) 09:24:18.29ID:3/zKVKew592デフォルトの名無しさん
2022/07/03(日) 09:34:46.48ID:/kuq8Z/3 お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
BNFは↓とする
INT: digit+
変換できない場合はINVALIDと出力せよ
BNFは↓とする
INT: digit+
593デフォルトの名無しさん
2022/07/03(日) 09:37:29.23ID:/kuq8Z/3 お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
BNFは↓とする
version 1.0.2
int: digits
float: digits ('.' digits)?
digits: digit+
digit: [0-9]+
変換できない場合はINVALIDと出力せよ
BNFは↓とする
version 1.0.2
int: digits
float: digits ('.' digits)?
digits: digit+
digit: [0-9]+
594デフォルトの名無しさん
2022/07/03(日) 10:08:31.69ID:JHbRyeE7 >>591
ガチに捉えるもなにも今でもやってるだろw
ガチに捉えるもなにも今でもやってるだろw
595デフォルトの名無しさん
2022/07/03(日) 10:15:42.92ID:JHbRyeE7596デフォルトの名無しさん
2022/07/03(日) 12:27:53.93ID:/kuq8Z/3 >>595
お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
BNFは↓とする
version 1.0.3
int: comma_digit
float: comma_digit '.' digit* | '.' digit*
comma_digit: digit_123 { ( ','? digit_3 ) }*
digit_3: digit digit digit
digit_123: digit digit? digit?
digit: [0-9]
どや?完璧だろこのBNF
これで文句ないな
お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
BNFは↓とする
version 1.0.3
int: comma_digit
float: comma_digit '.' digit* | '.' digit*
comma_digit: digit_123 { ( ','? digit_3 ) }*
digit_3: digit digit digit
digit_123: digit digit? digit?
digit: [0-9]
どや?完璧だろこのBNF
これで文句ないな
597デフォルトの名無しさん
2022/07/03(日) 12:41:01.89ID:E32cFzvb >>596
"1."、"01"、"1234,567" が INVALID になりませんし "." だけでも FLOAT になるのはどうかと思いますが...
"1."、"01"、"1234,567" が INVALID になりませんし "." だけでも FLOAT になるのはどうかと思いますが...
598デフォルトの名無しさん
2022/07/03(日) 12:54:46.68ID:/kuq8Z/3 >>597
お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
BNFは↓とする
version 1.0.4
int: comma_digit
float: comma_digit '.' digit_09+ | '.' digit_09+
comma_digit: digit_123 { ( ','? digit_3 ) }*
digit_3: digit_09 digit_09 digit_09
digit_123: digit_19 digit_09? digit_09?
digit_19: [1-9]
digit_09: [0-9]
どや?
お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
BNFは↓とする
version 1.0.4
int: comma_digit
float: comma_digit '.' digit_09+ | '.' digit_09+
comma_digit: digit_123 { ( ','? digit_3 ) }*
digit_3: digit_09 digit_09 digit_09
digit_123: digit_19 digit_09? digit_09?
digit_19: [1-9]
digit_09: [0-9]
どや?
599デフォルトの名無しさん
2022/07/03(日) 14:30:14.53ID:+vJDgzA0 勉強になる
600デフォルトの名無しさん
2022/07/03(日) 15:35:40.90ID:VBJi0e3g601デフォルトの名無しさん
2022/07/03(日) 15:38:27.96ID:7UQlj4nA ハズレ上司感
602デフォルトの名無しさん
2022/07/03(日) 15:41:49.46ID:yV0MWMu9603デフォルトの名無しさん
2022/07/03(日) 16:15:01.49ID:/kuq8Z/3604デフォルトの名無しさん
2022/07/03(日) 16:24:52.83ID:/kuq8Z/3 >>600
version 1.0.5
int: comma_digit | normal_digit
float: ( comma_digit | normal_digit ) '.' digit_09+ | '.' digit_09+
comma_digit: digit_123 { ',' digit_3 }*
normal_digit: digit_19 digit_09*
digit_3: digit_09 digit_09 digit_09
digit_123: digit_19 digit_09? digit_09?
digit_19: [1-9]
digit_09: [0-9]
ていうか1234,567にはならんはずだぞ
version 1.0.5
int: comma_digit | normal_digit
float: ( comma_digit | normal_digit ) '.' digit_09+ | '.' digit_09+
comma_digit: digit_123 { ',' digit_3 }*
normal_digit: digit_19 digit_09*
digit_3: digit_09 digit_09 digit_09
digit_123: digit_19 digit_09? digit_09?
digit_19: [1-9]
digit_09: [0-9]
ていうか1234,567にはならんはずだぞ
605デフォルトの名無しさん
2022/07/03(日) 16:30:18.21ID:/kuq8Z/3 >>600
version 1.0.6
int: comma_digit | normal_digit
float: ( comma_digit | normal_digit ) '.' digit_09+ | '.' digit_09+
comma_digit: digit_123 { ',' digit_3 }*
normal_digit: ( digit_19 digit_09+ ) | digit_09
digit_3: digit_09 digit_09 digit_09
digit_123: digit_19 digit_09? digit_09?
digit_19: [1-9]
digit_09: [0-9]
おら!完璧だろ!
version 1.0.6
int: comma_digit | normal_digit
float: ( comma_digit | normal_digit ) '.' digit_09+ | '.' digit_09+
comma_digit: digit_123 { ',' digit_3 }*
normal_digit: ( digit_19 digit_09+ ) | digit_09
digit_3: digit_09 digit_09 digit_09
digit_123: digit_19 digit_09? digit_09?
digit_19: [1-9]
digit_09: [0-9]
おら!完璧だろ!
606デフォルトの名無しさん
2022/07/03(日) 17:25:11.12ID:bGSSCSEx607デフォルトの名無しさん
2022/07/03(日) 20:20:25.60ID:H80x+Ni5 問題を解かずに出題の形式美に必死になるなんて、このスレ的にどうなのよ?
608蟻人間 ◆T6xkBnTXz7B0
2022/07/03(日) 21:46:41.57ID:wwKaul6r char buf[64];
fgets(buf, 64, stdin);
char *endptr;
strtol(buf, &endptr, 10);
if (*endptr == 0) {
puts("INT");
return;
}
strtod(buf, &endptr);
if (*endptr == 0) {
puts("FLOAT");
return;
}
puts("INVALID");
fgets(buf, 64, stdin);
char *endptr;
strtol(buf, &endptr, 10);
if (*endptr == 0) {
puts("INT");
return;
}
strtod(buf, &endptr);
if (*endptr == 0) {
puts("FLOAT");
return;
}
puts("INVALID");
609デフォルトの名無しさん
2022/07/04(月) 22:09:22.65ID:hLP3lYAM610デフォルトの名無しさん
2022/07/08(金) 20:02:47.21ID:N6PR1KyM お題
非負整数xが16進数表記で与えられる。xのビットu~lの範囲を逆順にした値を出力せよ。
[入力]
x u l
[例]
0x80 7 0
=> 0x1 (8bit全体をreverse)
0xABCD 11 4
=> 0xA3DD (真ん中8bitをreverse, 0xBC=0b10111100 -> 0b00111101=0x3D)
0x2 99 1
=> 0x8000000000000000000000000 (2の99乗)
非負整数xが16進数表記で与えられる。xのビットu~lの範囲を逆順にした値を出力せよ。
[入力]
x u l
[例]
0x80 7 0
=> 0x1 (8bit全体をreverse)
0xABCD 11 4
=> 0xA3DD (真ん中8bitをreverse, 0xBC=0b10111100 -> 0b00111101=0x3D)
0x2 99 1
=> 0x8000000000000000000000000 (2の99乗)
611デフォルトの名無しさん
2022/07/08(金) 22:06:04.39ID:ju1TxHLl >>610 Ruby
f = -> (*a) {_, e, s = a.map(&:to_i); '0x%X' % a[0].hex.digits(2).concat(Array.new(e, 0)).tap{_1[s..e] = _1[s..e].reverse}.reverse.reduce{|s, i| 2 * s + i}}
['0x80 7 0', '0xABCD 11 4', '0x2 99 1'].each{puts '%s -> %s' % [_1, f[*_1.split]]}
# =>
0x80 7 0 -> 0x1
0xABCD 11 4 -> 0xA3DD
0x2 99 1 -> 0x8000000000000000000000000
f = -> (*a) {_, e, s = a.map(&:to_i); '0x%X' % a[0].hex.digits(2).concat(Array.new(e, 0)).tap{_1[s..e] = _1[s..e].reverse}.reverse.reduce{|s, i| 2 * s + i}}
['0x80 7 0', '0xABCD 11 4', '0x2 99 1'].each{puts '%s -> %s' % [_1, f[*_1.split]]}
# =>
0x80 7 0 -> 0x1
0xABCD 11 4 -> 0xA3DD
0x2 99 1 -> 0x8000000000000000000000000
612デフォルトの名無しさん
2022/07/09(土) 09:28:21.31ID:72Wr/ML/613デフォルトの名無しさん
2022/07/09(土) 21:45:11.70ID:A5P06KhI614デフォルトの名無しさん
2022/07/24(日) 20:03:09.74ID:RqwYivmm あげ
615デフォルトの名無しさん
2022/07/26(火) 20:19:27.06ID:wEdk200U お題:数字をミラーリングせよ
入力 < 123
出力 > 123321
reverse系メソッドを使わなかったら加点とする
入力 < 123
出力 > 123321
reverse系メソッドを使わなかったら加点とする
616デフォルトの名無しさん
2022/07/26(火) 20:33:23.78ID:gSFNKY8C617デフォルトの名無しさん
2022/07/26(火) 22:30:32.74ID:LilaKoZu >>615
Java
static String mirror(String src) {
var dest = new char[src.length() * 2];
var a = src.toCharArray();
for (var i = 0; i < a.length; i++) {
dest[i] = a[i];
dest[dest.length - 1 - i] = a[i];
}
return new String(dest);
}
Java
static String mirror(String src) {
var dest = new char[src.length() * 2];
var a = src.toCharArray();
for (var i = 0; i < a.length; i++) {
dest[i] = a[i];
dest[dest.length - 1 - i] = a[i];
}
return new String(dest);
}
619デフォルトの名無しさん
2022/07/26(火) 23:38:05.85ID:ceC8PDvA620デフォルトの名無しさん
2022/07/26(火) 23:41:29.56ID:DU0tXUgh 魔法の計算式とか無いん?
621デフォルトの名無しさん
2022/07/27(水) 00:03:13.42ID:MKIa5t3g 俺も考えてみたけど調べても回分数のシグマ使わない一般式は無いみたいだな
622デフォルトの名無しさん
2022/07/27(水) 00:09:31.00ID:C/59UMec >>615 JavaScript
const mirror = (n, c, ...args) => c === null ? (answer => 0 <= n && answer <= Number.MAX_SAFE_INTEGER ? answer : RangeError(`${n} is invalid.`))(args.reduce((s, d) => s * 10 + d, n)) : c == undefined ? mirror(Number.parseInt(n), Number.parseInt(n), ...args) : mirror(n, c < 10 ? null : Math.floor(c / 10), ...args, c % 10);
// test
for (const [n] of [[-1, 'x'], [0, 'o'], [1, 'o'], [12345678, 'o'], [123456789, 'x'], [123.456, 'o (123321)']]) {
const answer = mirror(n);
console[answer instanceof RangeError ? 'error' : 'log'](answer);
}
const mirror = (n, c, ...args) => c === null ? (answer => 0 <= n && answer <= Number.MAX_SAFE_INTEGER ? answer : RangeError(`${n} is invalid.`))(args.reduce((s, d) => s * 10 + d, n)) : c == undefined ? mirror(Number.parseInt(n), Number.parseInt(n), ...args) : mirror(n, c < 10 ? null : Math.floor(c / 10), ...args, c % 10);
// test
for (const [n] of [[-1, 'x'], [0, 'o'], [1, 'o'], [12345678, 'o'], [123456789, 'x'], [123.456, 'o (123321)']]) {
const answer = mirror(n);
console[answer instanceof RangeError ? 'error' : 'log'](answer);
}
623デフォルトの名無しさん
2022/07/27(水) 01:46:36.04ID:7bF+Pf0F octave綺麗
62496
2022/08/02(火) 01:11:31.65ID:6KqVNIq0 >>615 Perl5
use feature qw{say signatures}; no warnings 'experimental';
sub f($i, @a) { $i and @a ? (f(@a), $i) : $i }
@a = split'',123;
say @a, f(@a);
実行結果
~ $ perl 20_615_mirror.pl
123321
use feature qw{say signatures}; no warnings 'experimental';
sub f($i, @a) { $i and @a ? (f(@a), $i) : $i }
@a = split'',123;
say @a, f(@a);
実行結果
~ $ perl 20_615_mirror.pl
123321
62596
2022/08/02(火) 01:20:34.60ID:6KqVNIq0 >>615 Perl5 (リスト処理版)
@a = split '', 123;
print @a, map{@a[$#a - $_]} 0..$#a;
実行結果
~ $ perl 20_615_mirror_list.pl
123321
@a = split '', 123;
print @a, map{@a[$#a - $_]} 0..$#a;
実行結果
~ $ perl 20_615_mirror_list.pl
123321
626デフォルトの名無しさん
2022/08/02(火) 22:22:16.97ID:9ppQHDnA >>615 ocaml
https://ideone.com/FFhxw9
let f s =
let csc c s = Char.escaped c ^ s ^ Char.escaped c in
let rec aux t = function 0 -> t | n -> aux (csc s.[n - 1] t) (n - 1)
in aux "" @@ String.length s
let () = print_endline @@ f "123"
https://ideone.com/FFhxw9
let f s =
let csc c s = Char.escaped c ^ s ^ Char.escaped c in
let rec aux t = function 0 -> t | n -> aux (csc s.[n - 1] t) (n - 1)
in aux "" @@ String.length s
let () = print_endline @@ f "123"
627デフォルトの名無しさん
2022/08/02(火) 23:32:00.13ID:49BZsXJW628デフォルトの名無しさん
2022/08/03(水) 00:34:26.60ID:xChmGTXr >>615 ocaml
https://ideone.com/6YqGis
let f s = s ^ String.init (String.length s) (fun i -> s.[String.length s - 1 - i])
let () = print_endline @@ f "123"
https://ideone.com/6YqGis
let f s = s ^ String.init (String.length s) (fun i -> s.[String.length s - 1 - i])
let () = print_endline @@ f "123"
629デフォルトの名無しさん
2022/08/05(金) 11:38:46.19ID:1Af6TgAi630デフォルトの名無しさん
2022/08/05(金) 13:16:58.45ID:6eafuacR gnuWin32を基本使っています。
で行のソートなのですが、各行の末尾から逆向きの文字でソートって出来ませんか
たとえば
aaaaCB
bbbBA
cccccDB
とかあったとき、これを
bbbBA
aaaaCB
cccccDB
としたいのです。
もし難しそうであれば、各行を反転、つまり
abcde
を
edcba
とする方法でもいいです。
で行のソートなのですが、各行の末尾から逆向きの文字でソートって出来ませんか
たとえば
aaaaCB
bbbBA
cccccDB
とかあったとき、これを
bbbBA
aaaaCB
cccccDB
としたいのです。
もし難しそうであれば、各行を反転、つまり
abcde
を
edcba
とする方法でもいいです。
631デフォルトの名無しさん
2022/08/05(金) 13:43:08.90ID:Vk8oFh91 >>630
Java
Arrays.sort(a, (left, right) -> {
var l = left.length() - 1;
var r = right.length() - 1;
while (l > -1 && r > -1) {
var c = Character.compare(left.charAt(l), right.charAt(r));
if (c != 0) {
return c;
}
l--;
r--;
}
if (l > -1) {
return 1;
}
if (r > -1) {
return -1;
}
return 0;
});
Java
Arrays.sort(a, (left, right) -> {
var l = left.length() - 1;
var r = right.length() - 1;
while (l > -1 && r > -1) {
var c = Character.compare(left.charAt(l), right.charAt(r));
if (c != 0) {
return c;
}
l--;
r--;
}
if (l > -1) {
return 1;
}
if (r > -1) {
return -1;
}
return 0;
});
63296
2022/08/05(金) 19:36:20.73ID:Rv34IsoP >>630 Perl5が使える環境であれば…
~ $ cat 20_630_isort.pl
chomp (@a = <>);
sub f {join '', reverse split'', $_[0]}
print "$_\n" for sort{f($a) cmp f($b)} @a;
~ $ cat input.txt
aaaaCB
bbbBA
cccccDB
~ $ perl 20_630_isort.pl < input.txt > output.txt
~ $ cat output.txt
bbbBA
aaaaCB
cccccDB
~ $ cat 20_630_isort.pl
chomp (@a = <>);
sub f {join '', reverse split'', $_[0]}
print "$_\n" for sort{f($a) cmp f($b)} @a;
~ $ cat input.txt
aaaaCB
bbbBA
cccccDB
~ $ perl 20_630_isort.pl < input.txt > output.txt
~ $ cat output.txt
bbbBA
aaaaCB
cccccDB
633デフォルトの名無しさん
2022/08/05(金) 20:52:38.21ID:C4r7F682 >>630 ruby
https://ideone.com/lQz0m2
f = ->(a) {a.sort_by &:reverse}
p f.(%w(aaaaCB bbbBA cccccDB))
>>630 octave
https://ideone.com/AUCxr3
function i = sorti(varargin), [~, i] = sort(varargin{:}); end
f = @(a) a(sorti(cellfun(@(s) {flip(s)}, a)));
f({'aaaaCB' 'bbbBA' 'cccccDB'})
https://ideone.com/lQz0m2
f = ->(a) {a.sort_by &:reverse}
p f.(%w(aaaaCB bbbBA cccccDB))
>>630 octave
https://ideone.com/AUCxr3
function i = sorti(varargin), [~, i] = sort(varargin{:}); end
f = @(a) a(sorti(cellfun(@(s) {flip(s)}, a)));
f({'aaaaCB' 'bbbBA' 'cccccDB'})
63496
2022/08/05(金) 22:43:00.57ID:Rv34IsoP63596
2022/08/06(土) 00:54:37.07ID:pYJx8bVL >>630 Perl5、計算量の抑制に配慮したバージョンと実行例
$ cat 20_630_isort2.pl
print $_->[0] for sort{$a->[1] cmp $b->[1]} map{[$_, scalar reverse $_]} <>;
$ cat input.txt
aaaaCB
bbbBA
cccccDB
$ perl 20_630_isort2.pl input.txt > output.txt
$ cat output.txt
bbbBA
aaaaCB
cccccDB
$ cat 20_630_isort2.pl
print $_->[0] for sort{$a->[1] cmp $b->[1]} map{[$_, scalar reverse $_]} <>;
$ cat input.txt
aaaaCB
bbbBA
cccccDB
$ perl 20_630_isort2.pl input.txt > output.txt
$ cat output.txt
bbbBA
aaaaCB
cccccDB
63696
2022/08/06(土) 01:06:37.87ID:pYJx8bVL >>635
これ各行の行末の改行まで含めてreverseしてsortキーとするので、
もし入力ファイルの最後の行に改行が欠けていて無かったらsort結果がおかしくなる。
そのような万が一の場合に対してもrubstさも持たすならこうか
chomp(@a = <>);
print "$$_[0]\n" for sort{$$a[1] cmp $$b[1]} map{[$_, scalar reverse]} @a;
これ各行の行末の改行まで含めてreverseしてsortキーとするので、
もし入力ファイルの最後の行に改行が欠けていて無かったらsort結果がおかしくなる。
そのような万が一の場合に対してもrubstさも持たすならこうか
chomp(@a = <>);
print "$$_[0]\n" for sort{$$a[1] cmp $$b[1]} map{[$_, scalar reverse]} @a;
637デフォルトの名無しさん
2022/08/06(土) 05:59:59.26ID:UcInr7RU638デフォルトの名無しさん
2022/08/06(土) 06:11:51.22ID:UcInr7RU >>630
Linux 等の UNIX 系 OS で rev コマンドと sort コマンドが使える環境ならシェルのコマンドラインからこう入力するとできる。
(入力文字列は input.txt に入っているとして)。
rev input.txt | sort | rev
Windows の環境でやる場合は互換性のあるコマンドを利用するか、または Cygwin や WSL や WSL2 等の UNIX 互換環境の中でコマンドラインから実行できる。
Linux 等の UNIX 系 OS で rev コマンドと sort コマンドが使える環境ならシェルのコマンドラインからこう入力するとできる。
(入力文字列は input.txt に入っているとして)。
rev input.txt | sort | rev
Windows の環境でやる場合は互換性のあるコマンドを利用するか、または Cygwin や WSL や WSL2 等の UNIX 互換環境の中でコマンドラインから実行できる。
63996
2022/08/06(土) 08:20:40.77ID:pYJx8bVL >>610 Perl5
use Bit::Vector;
$v = Bit::Vector->new(101);
for (<DATA>) {
($h, $s, $e) = /0x(\S+) (\S+) (\S+)/;
$v->from_Hex("$h");
$v->Interval_Reverse($e, $s);
($r) = $v->to_Hex() =~ /0+(\w+)/;
print "$_ => 0x$r\n";
}
__DATA__
0x80 7 0
0xABCD 11 4
0x2 99 1
※インデントを見易くするため全角スペースに置換しています
実行結果
$ perl 20_610_rebitfld.pl
0x80 7 0
=> 0x1
0xABCD 11 4
=> 0xA3DD
0x2 99 1
=> 0x8000000000000000000000000
use Bit::Vector;
$v = Bit::Vector->new(101);
for (<DATA>) {
($h, $s, $e) = /0x(\S+) (\S+) (\S+)/;
$v->from_Hex("$h");
$v->Interval_Reverse($e, $s);
($r) = $v->to_Hex() =~ /0+(\w+)/;
print "$_ => 0x$r\n";
}
__DATA__
0x80 7 0
0xABCD 11 4
0x2 99 1
※インデントを見易くするため全角スペースに置換しています
実行結果
$ perl 20_610_rebitfld.pl
0x80 7 0
=> 0x1
0xABCD 11 4
=> 0xA3DD
0x2 99 1
=> 0x8000000000000000000000000
640デフォルトの名無しさん
2022/08/06(土) 10:15:53.94ID:8a3zeEyr >>638
Linux環境ではrevというのがあるのですね
gnuWin32は全部揃ってないのですね。なんだかなあ
rev以外でもLinuxにあってgnuWin32にはないのがあるのかな
rev、自分で作ろうかな
Linux環境ではrevというのがあるのですね
gnuWin32は全部揃ってないのですね。なんだかなあ
rev以外でもLinuxにあってgnuWin32にはないのがあるのかな
rev、自分で作ろうかな
641デフォルトの名無しさん
2022/08/06(土) 11:17:00.60ID:y9e1BfKB >>630 ocaml
https://ideone.com/zdWLHX
let rev s = String.init (String.length s) (fun i -> s.[String.length s - 1 - i])
let (<<) f g x = f (g x)
let f = List.map (fun (r, s) -> s) << List.sort compare << List.map (fun s -> (rev s, s))
let () = List.iter print_endline @@ f ["aaaaCB"; "bbbBA"; "cccccDB"];
https://ideone.com/zdWLHX
let rev s = String.init (String.length s) (fun i -> s.[String.length s - 1 - i])
let (<<) f g x = f (g x)
let f = List.map (fun (r, s) -> s) << List.sort compare << List.map (fun s -> (rev s, s))
let () = List.iter print_endline @@ f ["aaaaCB"; "bbbBA"; "cccccDB"];
64296
2022/08/06(土) 15:02:55.35ID:ddLJv/Kp >>640
gnuWin32 用の rev.exe が欲しいなら、書き起こさなくともutil-linux-ng パッケージに入っていると思うが…
util-linux-ng for Windows
http://gnuwin32.sourceforge.net/packages/util-linux-ng.htm
Util-Linux contains miscellaneous utilities:
col: filter reverse line feeds from input
colcrt: filter nroff output for CRT previewing
colrm: remove columns from a file
ddate: converts Gregorian dates to Discordian dates
getopt: parse command options (enhanced)
hexdump: ascii, decimal, hexadecimal, octal dump
line: read one line
rename: rename files
rev: reverse lines of a file or files ←
tailf: follow the growth of a log file
whereis: locate the binary, source, and manual page files for a command
作りたいというなら類似のsampleソースはゴマンと転がっとるし
C reverse string rev.c strrev - Google 検索
https://www.google.com/search?q=C+reverse+string+rev.c+strrev
C program to reverse a string | Programming Simplified
https://www.programmingsimplified.com/c-program-reverse-string
C_69 C Program to Reverse a String | with strrev() and without strrev() function - YouTube
https://www.youtube.com/watch?v=530jWnBMD2M
… 好きにしんしゃい
gnuWin32 用の rev.exe が欲しいなら、書き起こさなくともutil-linux-ng パッケージに入っていると思うが…
util-linux-ng for Windows
http://gnuwin32.sourceforge.net/packages/util-linux-ng.htm
Util-Linux contains miscellaneous utilities:
col: filter reverse line feeds from input
colcrt: filter nroff output for CRT previewing
colrm: remove columns from a file
ddate: converts Gregorian dates to Discordian dates
getopt: parse command options (enhanced)
hexdump: ascii, decimal, hexadecimal, octal dump
line: read one line
rename: rename files
rev: reverse lines of a file or files ←
tailf: follow the growth of a log file
whereis: locate the binary, source, and manual page files for a command
作りたいというなら類似のsampleソースはゴマンと転がっとるし
C reverse string rev.c strrev - Google 検索
https://www.google.com/search?q=C+reverse+string+rev.c+strrev
C program to reverse a string | Programming Simplified
https://www.programmingsimplified.com/c-program-reverse-string
C_69 C Program to Reverse a String | with strrev() and without strrev() function - YouTube
https://www.youtube.com/watch?v=530jWnBMD2M
… 好きにしんしゃい
64396
2022/08/06(土) 15:16:53.43ID:ddLJv/Kp Cygwin などに使われている util-linux パッケージのオリジナルな現行のソースは
GitHub - util-linux/util-linux
https://github.com/util-linux/util-linux
かな。そのうち rev.c のソースは
util-linux/rev.c at master ・ util-linux/util-linux ・ GitHub
https://github.com/util-linux/util-linux/blob/master/text-utils/rev.c
ちな util-linux パッケージは2006年に fork したとき名前に -ng をつけて util-linux-ng になったが
2010年に util-linux に名前を戻している。
cf.)
util-linux - Wikipedia
https://en.wikipedia.org/wiki/Util-linux
ついつい、調べ物をしてしまった…orz
GitHub - util-linux/util-linux
https://github.com/util-linux/util-linux
かな。そのうち rev.c のソースは
util-linux/rev.c at master ・ util-linux/util-linux ・ GitHub
https://github.com/util-linux/util-linux/blob/master/text-utils/rev.c
ちな util-linux パッケージは2006年に fork したとき名前に -ng をつけて util-linux-ng になったが
2010年に util-linux に名前を戻している。
cf.)
util-linux - Wikipedia
https://en.wikipedia.org/wiki/Util-linux
ついつい、調べ物をしてしまった…orz
644デフォルトの名無しさん
2022/08/06(土) 17:24:05.41ID:8a3zeEyr >>642
ありがとう。そんなとこにあったのか
ありがとう。そんなとこにあったのか
645デフォルトの名無しさん
2022/08/07(日) 09:51:45.46ID:UY2OKMya646デフォルトの名無しさん
2022/08/07(日) 09:52:47.25ID:UY2OKMya >>642
linuxのrevでやってみました。ところが、全角日本語はやはりダメですね
なので、AHKで自作で作ってみました
rev input.txt | sort | rev
で問題なく動きました
linuxのrevでやってみました。ところが、全角日本語はやはりダメですね
なので、AHKで自作で作ってみました
rev input.txt | sort | rev
で問題なく動きました
647デフォルトの名無しさん
2022/08/07(日) 16:26:03.27ID:BSSIjy3s >>645
環境変数 LANG の設定の問題とか?
こっちでは日本語での rev できたよ。
CentOS 7 で bash で LANG=ja_JP.UTF-8 の状態。そこに Windows から TeraTerm で ssh ログインして試したらできた。
$ echo $LANG
ja_JP.UTF-8
$ ( echo 見城徹 ; echo 箕輪厚介 ; echo ガーシー ; echo 木原誠二官房副長官 ) | rev
徹城見
介厚輪箕
ーシーガ
官長副房官二誠原木
$
環境変数 LANG の設定の問題とか?
こっちでは日本語での rev できたよ。
CentOS 7 で bash で LANG=ja_JP.UTF-8 の状態。そこに Windows から TeraTerm で ssh ログインして試したらできた。
$ echo $LANG
ja_JP.UTF-8
$ ( echo 見城徹 ; echo 箕輪厚介 ; echo ガーシー ; echo 木原誠二官房副長官 ) | rev
徹城見
介厚輪箕
ーシーガ
官長副房官二誠原木
$
648デフォルトの名無しさん
2022/08/07(日) 18:30:22.20ID:C65TbvUb お題
0~2がランダムに8個入力されます
8個の数字を:で結合して出力してください
0が連続する場合は連続する0を::に置換してください
0の連続を::に置換できるのは1回のみです
0の連続が複数存在する場合は長い方を置換してください
長さが同じ場合は先頭の方を置換してください
1個の0は置換してはいけません
例
0, 0, 0, 1, 2, 1, 2, 2 → ::1:2:1:2:2
2, 1, 2, 0, 0, 0, 1, 1 → 2:1:2::1:1
1, 1, 2, 2, 1, 0, 0, 0 → 1:1:2:2:1::
2, 0, 0, 2, 0, 0, 0, 2 → 2:0:0:2::2
1, 0, 0, 1, 2, 0, 0, 2 → 1::1:2:0:0:2
0, 1, 2, 0, 1, 1, 0, 2 → 0:1:2:0:1:1:0:2
0~2がランダムに8個入力されます
8個の数字を:で結合して出力してください
0が連続する場合は連続する0を::に置換してください
0の連続を::に置換できるのは1回のみです
0の連続が複数存在する場合は長い方を置換してください
長さが同じ場合は先頭の方を置換してください
1個の0は置換してはいけません
例
0, 0, 0, 1, 2, 1, 2, 2 → ::1:2:1:2:2
2, 1, 2, 0, 0, 0, 1, 1 → 2:1:2::1:1
1, 1, 2, 2, 1, 0, 0, 0 → 1:1:2:2:1::
2, 0, 0, 2, 0, 0, 0, 2 → 2:0:0:2::2
1, 0, 0, 1, 2, 0, 0, 2 → 1::1:2:0:0:2
0, 1, 2, 0, 1, 1, 0, 2 → 0:1:2:0:1:1:0:2
649デフォルトの名無しさん
2022/08/07(日) 19:28:27.32ID:MpscsJR5 >>648 Ruby
f = -> s { x = s.gsub(', ', ?:); y = x.scan(/0(?::0)+/).max&.count(?0) || 0; x.sub(/:?0(:0){#{y - 1}}+:?/, '::') }
[
'0, 0, 0, 1, 2, 1, 2, 2',
'2, 1, 2, 0, 0, 0, 1, 1',
'1, 1, 2, 2, 1, 0, 0, 0',
'2, 0, 0, 2, 0, 0, 0, 2',
'1, 0, 0, 1, 2, 0, 0, 2',
'0, 1, 2, 0, 1, 1, 0, 2'
].each{ |s| puts '%s -> %s' % [s, f[s]] }
# =>
0, 0, 0, 1, 2, 1, 2, 2 -> ::1:2:1:2:2
2, 1, 2, 0, 0, 0, 1, 1 -> 2:1:2::1:1
1, 1, 2, 2, 1, 0, 0, 0 -> 1:1:2:2:1::
2, 0, 0, 2, 0, 0, 0, 2 -> 2:0:0:2::2
1, 0, 0, 1, 2, 0, 0, 2 -> 1::1:2:0:0:2
0, 1, 2, 0, 1, 1, 0, 2 -> 0:1:2:0:1:1:0:2
f = -> s { x = s.gsub(', ', ?:); y = x.scan(/0(?::0)+/).max&.count(?0) || 0; x.sub(/:?0(:0){#{y - 1}}+:?/, '::') }
[
'0, 0, 0, 1, 2, 1, 2, 2',
'2, 1, 2, 0, 0, 0, 1, 1',
'1, 1, 2, 2, 1, 0, 0, 0',
'2, 0, 0, 2, 0, 0, 0, 2',
'1, 0, 0, 1, 2, 0, 0, 2',
'0, 1, 2, 0, 1, 1, 0, 2'
].each{ |s| puts '%s -> %s' % [s, f[s]] }
# =>
0, 0, 0, 1, 2, 1, 2, 2 -> ::1:2:1:2:2
2, 1, 2, 0, 0, 0, 1, 1 -> 2:1:2::1:1
1, 1, 2, 2, 1, 0, 0, 0 -> 1:1:2:2:1::
2, 0, 0, 2, 0, 0, 0, 2 -> 2:0:0:2::2
1, 0, 0, 1, 2, 0, 0, 2 -> 1::1:2:0:0:2
0, 1, 2, 0, 1, 1, 0, 2 -> 0:1:2:0:1:1:0:2
650デフォルトの名無しさん
2022/08/07(日) 19:57:31.19ID:xO94aiKw651デフォルトの名無しさん
2022/08/07(日) 20:01:42.93ID:H+tq1Ypt 正規表現のreplace一個で行けそうと思ったけど最長マッチみたいなの無理なのか
652デフォルトの名無しさん
2022/08/07(日) 20:16:36.94ID:MpscsJR5 拡張正規表現の中にはチューリング完全なものもあるけどね
653デフォルトの名無しさん
2022/08/07(日) 20:17:47.43ID:xO94aiKw そうか
単純に s/0{$n}/::/;
を連射して増やしていくだけでいいんだな
最後に成功したのを返す感じで
単純に s/0{$n}/::/;
を連射して増やしていくだけでいいんだな
最後に成功したのを返す感じで
654デフォルトの名無しさん
2022/08/07(日) 20:58:47.87ID:xO94aiKw655デフォルトの名無しさん
2022/08/07(日) 22:19:54.37ID:UmcKtz1r >>648 octave
https://ideone.com/3Udpgi
function s = f(a)
c = diff(find([1 diff(a) 1]));
e = cumsum(c);
b = e - c + 1;
n = arrayfun(@(i) a(i), e);
[~, i] = max(c.*(n == 0));
s = arrayfun(@(n) {int2str(n)}, a);
if (1 < c(i))
s(b(i):e(i)) = ':';
end
s = regexprep(strjoin(s, ':'), ':::+', '::');
end
https://ideone.com/3Udpgi
function s = f(a)
c = diff(find([1 diff(a) 1]));
e = cumsum(c);
b = e - c + 1;
n = arrayfun(@(i) a(i), e);
[~, i] = max(c.*(n == 0));
s = arrayfun(@(n) {int2str(n)}, a);
if (1 < c(i))
s(b(i):e(i)) = ':';
end
s = regexprep(strjoin(s, ':'), ':::+', '::');
end
656655
2022/08/07(日) 23:28:54.94ID:UmcKtz1r 結果同じだけど若干の整理可能だった
n = arrayfun(@(i) a(i), e);
[~, i] = max(c.*(n == 0));
↓
[~, i] = max(c.*(a(e) == 0));
n = arrayfun(@(i) a(i), e);
[~, i] = max(c.*(n == 0));
↓
[~, i] = max(c.*(a(e) == 0));
65796
2022/08/08(月) 01:54:39.48ID:Fkng8CYp >>648 Perl5
use List::Util 'max';
for (<DATA>) {
%h = map{length($_) => $_} /(,?0(?:,0)+,?)/g;
$n = max keys %h;
chomp($i = $_);
s/$h{$n}/::/ if $n;
s/,/:/g;
print "$i => $_";
}
__DATA__
0,0,0,1,2,1,2,2
2,1,2,0,0,0,1,1
1,1,2,2,1,0,0,0
2,0,0,2,0,0,0,2
1,0,0,1,2,0,0,2
0,1,2,0,1,1,0,2
※見易くするためインデントを全角スペースに置換してあります。
実行結果
$ perl 20_648.pl
0,0,0,1,2,1,2,2 => ::1:2:1:2:2
2,1,2,0,0,0,1,1 => 2:1:2::1:1
1,1,2,2,1,0,0,0 => 1:1:2:2:1::
2,0,0,2,0,0,0,2 => 2:0:0:2::2
1,0,0,1,2,0,0,2 => 1::1:2:0:0:2
0,1,2,0,1,1,0,2 => 0:1:2:0:1:1:0:2
use List::Util 'max';
for (<DATA>) {
%h = map{length($_) => $_} /(,?0(?:,0)+,?)/g;
$n = max keys %h;
chomp($i = $_);
s/$h{$n}/::/ if $n;
s/,/:/g;
print "$i => $_";
}
__DATA__
0,0,0,1,2,1,2,2
2,1,2,0,0,0,1,1
1,1,2,2,1,0,0,0
2,0,0,2,0,0,0,2
1,0,0,1,2,0,0,2
0,1,2,0,1,1,0,2
※見易くするためインデントを全角スペースに置換してあります。
実行結果
$ perl 20_648.pl
0,0,0,1,2,1,2,2 => ::1:2:1:2:2
2,1,2,0,0,0,1,1 => 2:1:2::1:1
1,1,2,2,1,0,0,0 => 1:1:2:2:1::
2,0,0,2,0,0,0,2 => 2:0:0:2::2
1,0,0,1,2,0,0,2 => 1::1:2:0:0:2
0,1,2,0,1,1,0,2 => 0:1:2:0:1:1:0:2
658デフォルトの名無しさん
2022/08/08(月) 18:20:49.05ID:911TGIju659デフォルトの名無しさん
2022/08/10(水) 20:35:58.72ID:xa8ST9bT660デフォルトの名無しさん
2022/08/10(水) 21:08:31.81ID:xa8ST9bT661デフォルトの名無しさん
2022/08/11(木) 15:24:25.24ID:/k5aJ7yS662デフォルトの名無しさん
2022/08/11(木) 15:46:46.10ID:wxhIEZ4F663デフォルトの名無しさん
2022/08/11(木) 15:51:37.48ID:wxhIEZ4F >>661
別の解き方が見れておもろい
別の解き方が見れておもろい
664デフォルトの名無しさん
2022/08/11(木) 22:42:32.18ID:lr7eXs7b665661
2022/08/12(金) 00:33:44.04ID:DNG+vRxr 全部0の時に :: にならなかったので>>661はちょっと修正した。
666デフォルトの名無しさん
2022/08/13(土) 14:28:26.51ID:JbrEzaSr お題
1~37からランダムに重複なく7つの数を選び出して小さい順にソートしてください
それを5つ出力してください
例
[2, 4, 9, 13, 20, 29, 36]
[1, 4, 12, 13, 15, 20, 33]
[1, 3, 5, 7, 11, 20, 24]
[3, 7, 8, 21, 27, 33, 34]
[1, 2, 14, 23, 26, 35, 36]
1~37からランダムに重複なく7つの数を選び出して小さい順にソートしてください
それを5つ出力してください
例
[2, 4, 9, 13, 20, 29, 36]
[1, 4, 12, 13, 15, 20, 33]
[1, 3, 5, 7, 11, 20, 24]
[3, 7, 8, 21, 27, 33, 34]
[1, 2, 14, 23, 26, 35, 36]
667デフォルトの名無しさん
2022/08/13(土) 14:31:07.91ID:JPhXlbrB668デフォルトの名無しさん
2022/08/13(土) 18:53:16.03ID:jyB6kjuE669デフォルトの名無しさん
2022/08/13(土) 19:08:33.35ID:jyB6kjuE >>668
投稿後一部訂正、n の範囲チェックを追加
負数は弾く
(check-type n (integer 0 *))
上限はシーケンスの長さ
(loop repeat n
↓
(loop (min n (length sequence))
投稿後一部訂正、n の範囲チェックを追加
負数は弾く
(check-type n (integer 0 *))
上限はシーケンスの長さ
(loop repeat n
↓
(loop (min n (length sequence))
670デフォルトの名無しさん
2022/08/13(土) 19:54:15.55ID:JW3gpbYe >>666 octave
https://ideone.com/Iml4xq
f = @() sort(randperm(37, 7));
cell2mat(arrayfun(@(~) {f()}, (1:5)'))
https://ideone.com/Iml4xq
f = @() sort(randperm(37, 7));
cell2mat(arrayfun(@(~) {f()}, (1:5)'))
671デフォルトの名無しさん
2022/08/14(日) 00:39:46.54ID:YzvfyuVN >>666
Kotlin script
repeat(5) { println((1..37).toList().shuffled().slice(0..6).sorted()) }
実行例
[6, 7, 9, 10, 16, 22, 27]
[2, 8, 9, 11, 16, 32, 33]
[11, 13, 18, 25, 26, 30, 34]
[2, 3, 12, 14, 20, 27, 37]
[7, 13, 14, 19, 27, 30, 35]
Kotlin script
repeat(5) { println((1..37).toList().shuffled().slice(0..6).sorted()) }
実行例
[6, 7, 9, 10, 16, 22, 27]
[2, 8, 9, 11, 16, 32, 33]
[11, 13, 18, 25, 26, 30, 34]
[2, 3, 12, 14, 20, 27, 37]
[7, 13, 14, 19, 27, 30, 35]
672671
2022/08/14(日) 00:41:50.08ID:YzvfyuVN67396
2022/08/14(日) 01:45:55.09ID:jl8HjsTF >>666 Perl5
use List::Util 'shuffle';
@a = 1..37;
$" = ', ';
print "@{[(shuffle@a)[0..6]]}\n"
for 1..5;
実行結果
$ perl 20_666_shuffle1-37x5.pl
3, 2, 10, 25, 9, 23, 27
35, 6, 30, 8, 37, 29, 36
20, 29, 19, 18, 37, 21, 23
12, 30, 29, 7, 3, 31, 26
34, 12, 1, 14, 28, 2, 21
use List::Util 'shuffle';
@a = 1..37;
$" = ', ';
print "@{[(shuffle@a)[0..6]]}\n"
for 1..5;
実行結果
$ perl 20_666_shuffle1-37x5.pl
3, 2, 10, 25, 9, 23, 27
35, 6, 30, 8, 37, 29, 36
20, 29, 19, 18, 37, 21, 23
12, 30, 29, 7, 3, 31, 26
34, 12, 1, 14, 28, 2, 21
674デフォルトの名無しさん
2022/08/14(日) 01:54:16.92ID:v+rcxIed >>673
ソートされてないじゃん
ソートされてないじゃん
67596
2022/08/14(日) 01:59:26.66ID:jl8HjsTF >>666 Perl5、>>673 は sort するの忘れてた…orz
use List::Util 'shuffle';
@a = 1..37;
$" = ', ';
print "@{[sort{$a <=> $b} ((shuffle @a)[0..6])]}\n" for 1..5;
実行結果
$ perl 20_666_shuffle1-37x5.pl
5, 9, 22, 28, 30, 32, 36
1, 2, 7, 21, 23, 26, 36
6, 14, 15, 16, 19, 26, 28
13, 14, 15, 16, 30, 35, 37
1, 3, 10, 20, 27, 29, 30
use List::Util 'shuffle';
@a = 1..37;
$" = ', ';
print "@{[sort{$a <=> $b} ((shuffle @a)[0..6])]}\n" for 1..5;
実行結果
$ perl 20_666_shuffle1-37x5.pl
5, 9, 22, 28, 30, 32, 36
1, 2, 7, 21, 23, 26, 36
6, 14, 15, 16, 19, 26, 28
13, 14, 15, 16, 30, 35, 37
1, 3, 10, 20, 27, 29, 30
676デフォルトの名無しさん
2022/08/14(日) 12:35:56.93ID:JoIEy2rI >>666 ocaml
https://ideone.com/3UpGQV
let seq b e =
let rec aux acc n =
if n < b then acc else aux (n :: acc) (pred n)
in aux [] e
let (<<) f g x = f (g x)
let take n =
let rec aux acc n = function [] -> acc | x :: xs ->
if n <= 0 then acc else aux (x :: acc) (pred n) xs
in List.rev << aux [] n
let shuffle =
List.map snd << List.sort compare << List.map (fun x -> (Random.bits (), x))
let string_of_ints =
Printf.sprintf "[%s]" << String.concat "; " << List.map string_of_int
let f () = string_of_ints @@ List.sort compare @@ take 7 @@ shuffle @@ seq 1 37
let () = Random.self_init ();
List.iter (print_endline << f << ignore) @@ seq 1 5
https://ideone.com/3UpGQV
let seq b e =
let rec aux acc n =
if n < b then acc else aux (n :: acc) (pred n)
in aux [] e
let (<<) f g x = f (g x)
let take n =
let rec aux acc n = function [] -> acc | x :: xs ->
if n <= 0 then acc else aux (x :: acc) (pred n) xs
in List.rev << aux [] n
let shuffle =
List.map snd << List.sort compare << List.map (fun x -> (Random.bits (), x))
let string_of_ints =
Printf.sprintf "[%s]" << String.concat "; " << List.map string_of_int
let f () = string_of_ints @@ List.sort compare @@ take 7 @@ shuffle @@ seq 1 37
let () = Random.self_init ();
List.iter (print_endline << f << ignore) @@ seq 1 5
677デフォルトの名無しさん
2022/08/14(日) 18:02:28.90ID:JoIEy2rI678デフォルトの名無しさん
2022/08/14(日) 21:45:18.38ID:b/j10zkL (1) aとbからなる文字列があるときその中で部分文字列bbaが最初に完成する文字数を求める
ab -> 0
aaa -> 0
bba -> 3
bbba -> 4
babbab -> 5
bbabbaa -> 3
(2) ちょうど50文字のaとbからなる全ての並びの文字列の内
50文字目(最後)にbbaが完成するのは何通りあるか?
長さ3文字で3文字目に完成するのはbbaのひとつだけ
長さ4文字で4文字目に完成するのはabbaとbbbaの二通り
ab -> 0
aaa -> 0
bba -> 3
bbba -> 4
babbab -> 5
bbabbaa -> 3
(2) ちょうど50文字のaとbからなる全ての並びの文字列の内
50文字目(最後)にbbaが完成するのは何通りあるか?
長さ3文字で3文字目に完成するのはbbaのひとつだけ
長さ4文字で4文字目に完成するのはabbaとbbbaの二通り
679デフォルトの名無しさん
2022/08/14(日) 22:24:05.74ID:gf0q/4T2 >>678 Ruby
(1)
%w[ab aaa bba bbba babbab bbabbaa].each do |s|
i = s =~ /bba\K/
puts '%s -> %d' % [s, i ? i + 3 : 0]
end
# =>
ab -> 0
aaa -> 0
bba -> 3
bbba -> 4
babbab -> 5
bbabbaa -> 3
(2)
f = -> (n, a=[0, 0, 1]) {return a[n] if n<a.size; a<<f[n-1,a]+f[n-2,a]+1;a.last}
p f[49] # => 12586269024
(1)
%w[ab aaa bba bbba babbab bbabbaa].each do |s|
i = s =~ /bba\K/
puts '%s -> %d' % [s, i ? i + 3 : 0]
end
# =>
ab -> 0
aaa -> 0
bba -> 3
bbba -> 4
babbab -> 5
bbabbaa -> 3
(2)
f = -> (n, a=[0, 0, 1]) {return a[n] if n<a.size; a<<f[n-1,a]+f[n-2,a]+1;a.last}
p f[49] # => 12586269024
680デフォルトの名無しさん
2022/08/14(日) 22:30:32.35ID:z6QFcjeU 行列の掛け算を実装せよ
二次正方行列 A=((1 -2) (2 3)), B = ((-2 1)(3 -1)) について
AB, BA を求めよ
可能であれば二次正方行列以外の行列についても対応せよ
実装の細かい点については出題者は指定しないので良きに計らって結構。
<お願い>
行列の積において結合則成立の証明を教えてください
二次正方行列 A=((1 -2) (2 3)), B = ((-2 1)(3 -1)) について
AB, BA を求めよ
可能であれば二次正方行列以外の行列についても対応せよ
実装の細かい点については出題者は指定しないので良きに計らって結構。
<お願い>
行列の積において結合則成立の証明を教えてください
681デフォルトの名無しさん
2022/08/14(日) 22:43:04.52ID:0XTzAkvO682デフォルトの名無しさん
2022/08/14(日) 22:49:01.35ID:gf0q/4T2 >>680 Ruby Matrixクラス不使用
def product(a, b)
[
[a[0][0] * b[0][0] + a[0][1] * b[1][0], a[0][0] * b[0][1] + a[0][1] * b[1][1]],
[a[1][0] * b[0][0] + a[1][1] * b[1][0], a[1][0] * b[0][1] + a[1][1] * b[1][1]],
]
end
p product([[1, -2], [2, 3]], [[-2, 1], [3, -1]])
# => [[-8, 3], [5, -1]]
# 夏休みの宿題は自分でやりましょう
def product(a, b)
[
[a[0][0] * b[0][0] + a[0][1] * b[1][0], a[0][0] * b[0][1] + a[0][1] * b[1][1]],
[a[1][0] * b[0][0] + a[1][1] * b[1][0], a[1][0] * b[0][1] + a[1][1] * b[1][1]],
]
end
p product([[1, -2], [2, 3]], [[-2, 1], [3, -1]])
# => [[-8, 3], [5, -1]]
# 夏休みの宿題は自分でやりましょう
683デフォルトの名無しさん
2022/08/14(日) 22:51:54.64ID:7JC7m3TJ >>682
>二次正方行列以外の行列についても対応せよ
>二次正方行列以外の行列についても対応せよ
684デフォルトの名無しさん
2022/08/14(日) 23:05:21.92ID:gf0q/4T2 >>680 >>683
def product(a, b)
m = a.first.size
c = Array.new(a.size){[]}
a.size.times do |i|
b.first.size.times do |j|
c[j][i] = m.times.map{|k| a[k][i] * b[j][k]}.sum
end
end
c
end
p product([[1, -2], [2, 3]], [[-2, 1], [3, -1]])
# => [[0, 7], [1, -9]]
p product([[-2, 1], [3, -1]], [[1, -2], [2, 3]])
# => [[-8, 3], [5, -1]]
def product(a, b)
m = a.first.size
c = Array.new(a.size){[]}
a.size.times do |i|
b.first.size.times do |j|
c[j][i] = m.times.map{|k| a[k][i] * b[j][k]}.sum
end
end
c
end
p product([[1, -2], [2, 3]], [[-2, 1], [3, -1]])
# => [[0, 7], [1, -9]]
p product([[-2, 1], [3, -1]], [[1, -2], [2, 3]])
# => [[-8, 3], [5, -1]]
685デフォルトの名無しさん
2022/08/14(日) 23:09:42.44ID:ct8M+Uij NxMのデータをどう定義するか だけの問題だな
毎回悩む 下は後悔してるタイプ
(defparameter *position-IO*
(loop
for input in '(7 8 9
4 5 6
1 2 3)
for pos below 9
collect (cons input pos)))
毎回悩む 下は後悔してるタイプ
(defparameter *position-IO*
(loop
for input in '(7 8 9
4 5 6
1 2 3)
for pos below 9
collect (cons input pos)))
686デフォルトの名無しさん
2022/08/15(月) 00:42:19.42ID:PTEGgn5Q >>679
どういう頭してたらその法則性に気づくん???
どういう頭してたらその法則性に気づくん???
687デフォルトの名無しさん
2022/08/15(月) 01:31:39.90ID:b/MTJSvV >>678
Kotlin script
(1)
listOf("ab","aaa","bba","bbba","babbab","bbabbaa").forEach { print("$it ->"); it.indexOf("bba").let { if (it >= 0) println(it + 3) else println(0) } }
実行時の出力
ab ->0
aaa ->0
bba ->3
bbba ->4
babbab ->5
bbabbaa ->3
(2)
println(1L shl (50 - 3))
実行時の出力
140737488355328
Kotlin script
(1)
listOf("ab","aaa","bba","bbba","babbab","bbabbaa").forEach { print("$it ->"); it.indexOf("bba").let { if (it >= 0) println(it + 3) else println(0) } }
実行時の出力
ab ->0
aaa ->0
bba ->3
bbba ->4
babbab ->5
bbabbaa ->3
(2)
println(1L shl (50 - 3))
実行時の出力
140737488355328
688デフォルトの名無しさん
2022/08/15(月) 01:56:11.12ID:RG8mAl+Q689デフォルトの名無しさん
2022/08/15(月) 09:19:59.19ID:jWRkxbjN なるほど, 再帰的に構成すればいいのか
aから始まる時: a + x[n-1]
baから始まる時: ba + x[n-2]
bbから始まる時: bb...bba
aから始まる時: a + x[n-1]
baから始まる時: ba + x[n-2]
bbから始まる時: bb...bba
690デフォルトの名無しさん
2022/08/15(月) 09:43:22.06ID:90U51paY >>686
そういう漸化式は普通に受験で良くでてくる
そういう漸化式は普通に受験で良くでてくる
691デフォルトの名無しさん
2022/08/15(月) 17:00:11.92ID:ioAOBwsA692デフォルトの名無しさん
2022/08/15(月) 17:16:58.66ID:RVV7PTHo693デフォルトの名無しさん
2022/08/15(月) 17:19:53.25ID:RVV7PTHo694693
2022/08/16(火) 16:05:44.79ID:y+iYdbLW695デフォルトの名無しさん
2022/08/16(火) 19:29:50.25ID:6LZk+vGC >>688
え?言ってる意味がわからない。どういうこと?
え?言ってる意味がわからない。どういうこと?
696デフォルトの名無しさん
2022/08/16(火) 20:01:21.15ID:xodQRDI1 bba+gge=momo
697デフォルトの名無しさん
2022/08/16(火) 20:30:31.72ID:E3OXZYXp >>695
末尾以外にbbaが現れる文字列を除外するってことじゃろう
末尾以外にbbaが現れる文字列を除外するってことじゃろう
698デフォルトの名無しさん
2022/08/16(火) 21:15:34.85ID:dhC56AkH bbaが最後に達成されるんじゃなければ2^47計算するだけのなんの面白みもない問題になるからそこで気付く人は気づくよね
699デフォルトの名無しさん
2022/08/16(火) 23:04:49.04ID:mbmTGUKF ついでに50文字で今度は最後がbbaじゃなくて
bbbのときとbabのときのそれぞれのパターン数を求めるって問題
bbbのときとbabのときのそれぞれのパターン数を求めるって問題
700デフォルトの名無しさん
2022/08/17(水) 01:28:19.97ID:0f27vmNE >>697
なるほど。やっと意味がわかった。
なるほど。やっと意味がわかった。
701デフォルトの名無しさん
2022/08/17(水) 14:04:15.12ID:UFtMHmKs お題:分割されている顔文字を結合して表示してください
1つの顔文字は半角4字で構成。左右対称。2字ずつ半分に分割されてシャッフルされている
出力する顔文字の順番は自由とする
入力 < ^)(^
出力 > (^^)
入力 < ^)(-(^-)(vv)
出力 > (^^)(--)(vv)
1つの顔文字は半角4字で構成。左右対称。2字ずつ半分に分割されてシャッフルされている
出力する顔文字の順番は自由とする
入力 < ^)(^
出力 > (^^)
入力 < ^)(-(^-)(vv)
出力 > (^^)(--)(vv)
702デフォルトの名無しさん
2022/08/17(水) 14:59:27.47ID:2ZT38iyw お題:ナンプレ(数独)における「縦9マス(列)」「横9マス(行)」「3x3マス」をそれぞれ表示する方法を示してください
便宜的に、ナンプレのマスには左上から右へ、右下に向かい0〜80までの数値を入れます。
0 1 2 3 4 5 6 7 8
...
...............80
左から1列目の9マスは
便宜的に、ナンプレのマスには左上から右へ、右下に向かい0〜80までの数値を入れます。
0 1 2 3 4 5 6 7 8
...
...............80
左から1列目の9マスは
703デフォルトの名無しさん
2022/08/17(水) 15:10:22.08ID:2ZT38iyw 途中送信してしまった
お題:ナンプレ(数独)における「縦9マス(列)」「横9マス(行)」「3x3マス」のマスをそれぞれ表示する方法を示してください
※便宜的に、ナンプレのマスには左上から右へ、右下に向かい0〜80までの数値を入れます。
0 1 2 3 4 5 6 7 8
...
...............80
例えば左から1列目の9マスは
[0 9 18 27 36 45 54 63 72]
となります。
等差を利用して数字だけを表示するものは不可です。
マスに何の値が入っていても表示できるようにしてください。
お題:ナンプレ(数独)における「縦9マス(列)」「横9マス(行)」「3x3マス」のマスをそれぞれ表示する方法を示してください
※便宜的に、ナンプレのマスには左上から右へ、右下に向かい0〜80までの数値を入れます。
0 1 2 3 4 5 6 7 8
...
...............80
例えば左から1列目の9マスは
[0 9 18 27 36 45 54 63 72]
となります。
等差を利用して数字だけを表示するものは不可です。
マスに何の値が入っていても表示できるようにしてください。
704デフォルトの名無しさん
2022/08/17(水) 21:47:42.92ID:GkJOOerG705デフォルトの名無しさん
2022/08/17(水) 23:34:27.13ID:yTY/OYLu >>701
(><)
(><)
706デフォルトの名無しさん
2022/08/18(木) 02:15:12.90ID:KCyiWPRI707デフォルトの名無しさん
2022/08/18(木) 03:07:13.35ID:dBOjwuYR >>701 JavaScript
> ['^)(^', '^)(-(^-)(vv)', '<)(>'].map((R => input => Array.from(input.matchAll(/\((.)/g)).reduce((output, [l, r]) => output + l + R(r) + ')', ''))(r => r == '>' ? '<' : r))
[ '(^^)', '(--)(^^)(vv)', '(><)' ]
> ['^)(^', '^)(-(^-)(vv)', '<)(>'].map((R => input => Array.from(input.matchAll(/\((.)/g)).reduce((output, [l, r]) => output + l + R(r) + ')', ''))(r => r == '>' ? '<' : r))
[ '(^^)', '(--)(^^)(vv)', '(><)' ]
708デフォルトの名無しさん
2022/08/18(木) 10:19:41.72ID:KriVCD9m >>701 Ruby
f = -> str do
loop do
str.sub!(/(.)\)(.*)\(\1/, '(\1\1)\2') ||
str.sub!(/\((.)(.+)\1\)/, '(\1\1)\2') ||
(break str)
end
end
%w[ ^)(^ ^)(-(^-)(vv) (-(^-)^)].each do |s|
puts '%s -> %s' % [s, f[s.b]]
end
# =>
^)(^ -> (^^)
^)(-(^-)(vv) -> (^^)(--)(vv)
(-(^-)^) -> (--)(^^)
f = -> str do
loop do
str.sub!(/(.)\)(.*)\(\1/, '(\1\1)\2') ||
str.sub!(/\((.)(.+)\1\)/, '(\1\1)\2') ||
(break str)
end
end
%w[ ^)(^ ^)(-(^-)(vv) (-(^-)^)].each do |s|
puts '%s -> %s' % [s, f[s.b]]
end
# =>
^)(^ -> (^^)
^)(-(^-)(vv) -> (^^)(--)(vv)
(-(^-)^) -> (--)(^^)
709デフォルトの名無しさん
2022/08/18(木) 10:20:40.39ID:KriVCD9m >>703 Ruby
PLACEHOLDER = [*0..80]
field = 9.times.reduce([]) do |s, y|
s << 9.times.map do |x|
PLACEHOLDER[9 * y + x]
end
end
puts field.map{|r| r.map{'%02d' % _1}.join}
# =>
000102030405060708
091011121314151617
181920212223242526
272829303132333435
363738394041424344
454647484950515253
545556575859606162
636465666768697071
727374757677787980
PLACEHOLDER = [*0..80]
field = 9.times.reduce([]) do |s, y|
s << 9.times.map do |x|
PLACEHOLDER[9 * y + x]
end
end
puts field.map{|r| r.map{'%02d' % _1}.join}
# =>
000102030405060708
091011121314151617
181920212223242526
272829303132333435
363738394041424344
454647484950515253
545556575859606162
636465666768697071
727374757677787980
710デフォルトの名無しさん
2022/08/18(木) 10:42:28.41ID:KriVCD9m >>703 お題をよく読んでいなかった >>709の続き
row = -> (n, field) {field[n]}
column = -> (n, field) {field.map{_1[n]}}
block = -> (n, field) {9.times.map{n * 3 + n / 3 * 18 + _1 + _1 / 3 * 6}.map{field.flatten[_1]}}
puts row[7, field].join(?,)
# => 63,64,65,66,67,68,69,70,71
puts column[7, field].join($/)
# =>
7
16
25
34
43
52
61
70
79
puts block[7, field].each_slice(3).map{_1.join(?,)}.join($/)
# =>
57,58,59
66,67,68
75,76,77
row = -> (n, field) {field[n]}
column = -> (n, field) {field.map{_1[n]}}
block = -> (n, field) {9.times.map{n * 3 + n / 3 * 18 + _1 + _1 / 3 * 6}.map{field.flatten[_1]}}
puts row[7, field].join(?,)
# => 63,64,65,66,67,68,69,70,71
puts column[7, field].join($/)
# =>
7
16
25
34
43
52
61
70
79
puts block[7, field].each_slice(3).map{_1.join(?,)}.join($/)
# =>
57,58,59
66,67,68
75,76,77
711704
2022/08/18(木) 23:38:15.48ID:YBxy/c4L712デフォルトの名無しさん
2022/08/19(金) 23:42:01.44ID:GkIv/1vJ お題
<user>:<group>の数
<user>:<group>
<user>:<point>の数
<user>:<point>
が入力されます
<group>ごとに<point>を集計して<group>順に
<group>:<point>を出力してください
例)
// 入力
6
UserE:GroupC
UserD:GroupA
UserB:GroupC
UserA:GroupC
UserC:GroupB
UserF:GroupB
6
UserB:3
UserF:2
UserD:5
UserC:13
UserE:11
UserA:7
// 出力
GroupA:5
GroupB:15
GroupC:21
<user>:<group>の数
<user>:<group>
<user>:<point>の数
<user>:<point>
が入力されます
<group>ごとに<point>を集計して<group>順に
<group>:<point>を出力してください
例)
// 入力
6
UserE:GroupC
UserD:GroupA
UserB:GroupC
UserA:GroupC
UserC:GroupB
UserF:GroupB
6
UserB:3
UserF:2
UserD:5
UserC:13
UserE:11
UserA:7
// 出力
GroupA:5
GroupB:15
GroupC:21
713デフォルトの名無しさん
2022/08/19(金) 23:58:05.14ID:zRvvDV0W なんで数を入力してるんだ?
後の情報であきらかではないか
まさかグループ名が整数でも良いと考えている?
後の情報であきらかではないか
まさかグループ名が整数でも良いと考えている?
714デフォルトの名無しさん
2022/08/20(土) 00:02:54.24ID:xIohwuBb >>712 Ruby
g, p = str.split(/^\d+$/)[1, 2].map{_1.strip.each_line.map{|s| s.chomp.split(?:)}.to_h}
puts g.reduce(Hash.new(0)){|h, (k, v)| h[v] += p[k].to_i; h}.sort.map{_1.join(?:)}
# =>
GroupA:5
GroupB:15
GroupC:21
g, p = str.split(/^\d+$/)[1, 2].map{_1.strip.each_line.map{|s| s.chomp.split(?:)}.to_h}
puts g.reduce(Hash.new(0)){|h, (k, v)| h[v] += p[k].to_i; h}.sort.map{_1.join(?:)}
# =>
GroupA:5
GroupB:15
GroupC:21
715デフォルトの名無しさん
2022/08/20(土) 07:49:15.49ID:/HXUcxOA // >>712 Node.js
import readline from 'node:readline';
const rl = readline.createInterface({input: process.stdin, output: process.stdout});
const all = [/* {user, group, point}, ... */];
let usergroup = false;
rl.on('line', line => {
line = line.trim();
if (line) {
if (/^\d+$/.test(line)) {
usergroup = !usergroup;
} else if (usergroup) {
const {groups} = line.match(/^(?<user>[^:]+):(?<group>[^:]+)$/);
all.push(groups);
} else {
const {groups: {user, point}} = line.match(/^(?<user>[^:]+):(?<point>\d+)$/);
Object.defineProperty(all.find(_ => _.user == user), 'point', {value: Number(point), enumerable: true});
}
} else {
rl.close();
}
});
rl.on('close', () => {
for (const [group, point] of Object.entries(all.reduce((gp, {group, point}) => {gp[group] = (gp[group] ?? 0) + point; return gp;}, {})).sort(([a], [b]) => a < b ? -1 : 1)) {
console.log(`${group}:${point}`);
}
});
import readline from 'node:readline';
const rl = readline.createInterface({input: process.stdin, output: process.stdout});
const all = [/* {user, group, point}, ... */];
let usergroup = false;
rl.on('line', line => {
line = line.trim();
if (line) {
if (/^\d+$/.test(line)) {
usergroup = !usergroup;
} else if (usergroup) {
const {groups} = line.match(/^(?<user>[^:]+):(?<group>[^:]+)$/);
all.push(groups);
} else {
const {groups: {user, point}} = line.match(/^(?<user>[^:]+):(?<point>\d+)$/);
Object.defineProperty(all.find(_ => _.user == user), 'point', {value: Number(point), enumerable: true});
}
} else {
rl.close();
}
});
rl.on('close', () => {
for (const [group, point] of Object.entries(all.reduce((gp, {group, point}) => {gp[group] = (gp[group] ?? 0) + point; return gp;}, {})).sort(([a], [b]) => a < b ? -1 : 1)) {
console.log(`${group}:${point}`);
}
});
716デフォルトの名無しさん
2022/08/20(土) 17:09:35.31ID:tvd+mgyM717デフォルトの名無しさん
2022/08/20(土) 21:26:59.76ID:myFbjTal718デフォルトの名無しさん
2022/08/20(土) 22:24:09.90ID:5JSGWnVi71996
2022/08/21(日) 02:42:00.00ID:P6BPpVvp >>712 Perl5
use feature qw{say signatures}; no warnings "experimental::signatures";
sub ($n, @a) {
$h{$$_[0]} = $$_[1] for map{[/(\w+)/g]} @_[1..$n];
sub ($m, @) {
$g{$h{$$_[0]}} += $$_[1] for map{[/(\w+)/g]} @_[1..$m];
}->(@a[$n..$#a]);
say "$_:$g{$_}" for sort keys %g;
}->(<>);
※見易くするためインデントを全角スペースに置換してあります。
実行結果:
https://ideone.com/GxsRSY
use feature qw{say signatures}; no warnings "experimental::signatures";
sub ($n, @a) {
$h{$$_[0]} = $$_[1] for map{[/(\w+)/g]} @_[1..$n];
sub ($m, @) {
$g{$h{$$_[0]}} += $$_[1] for map{[/(\w+)/g]} @_[1..$m];
}->(@a[$n..$#a]);
say "$_:$g{$_}" for sort keys %g;
}->(<>);
※見易くするためインデントを全角スペースに置換してあります。
実行結果:
https://ideone.com/GxsRSY
720デフォルトの名無しさん
2022/08/21(日) 06:03:07.44ID:V5T4kdVo >>712
<group>順にって、何を元にして group の順序を決めるの?
入力された順?それだと例の入力のように GroupC, GroupA, GroupC の順で来ている場合はどうするの?
<group>順にって、何を元にして group の順序を決めるの?
入力された順?それだと例の入力のように GroupC, GroupA, GroupC の順で来ている場合はどうするの?
721デフォルトの名無しさん
2022/08/21(日) 07:03:57.35ID:3JIuIXQv <group>毎という事だと思う
サンプル見るとgroup名か集計したpointの昇順かも知れないけどそこはどうとでもなりそうだし
サンプル見るとgroup名か集計したpointの昇順かも知れないけどそこはどうとでもなりそうだし
722デフォルトの名無しさん
2022/08/21(日) 08:49:24.60ID:0ZMA3aWJ723デフォルトの名無しさん
2022/08/21(日) 18:07:19.66ID:ecIOs+Jg724デフォルトの名無しさん
2022/08/21(日) 18:28:38.88ID:Y2TZP89X お題:Hello, World!を出力中にプログラムを強制終了せよ
Hello, World!が完全に出力されたらGAME OVERとする
Hello, World!が完全に出力されたらGAME OVERとする
725デフォルトの名無しさん
2022/08/21(日) 18:45:13.28ID:ui07Fbeq >>724 Ruby
Thread.new{'Hello, World!'.each_char{|c| print c; sleep 0.01}; raise 'GAME OVER'}
Thread.new{exit}
# =>
Hello, World!
Thread.new{'Hello, World!'.each_char{|c| print c; sleep 0.01}; raise 'GAME OVER'}
Thread.new{exit}
# =>
Hello, World!
726デフォルトの名無しさん
2022/08/21(日) 18:49:48.17ID:ecIOs+Jg727デフォルトの名無しさん
2022/08/21(日) 18:51:27.42ID:ui07Fbeq >>725 訂正
Thread.new{'Hello, World!'.each_char{|c| print c; sleep 0.01}; raise 'GAME OVER'}
Thread.new{exit!}
# => H
Thread.new{'Hello, World!'.each_char{|c| print c; sleep 0.01}; raise 'GAME OVER'}
Thread.new{exit!}
# => H
728デフォルトの名無しさん
2022/08/21(日) 19:50:47.18ID:ecIOs+Jg729デフォルトの名無しさん
2022/08/21(日) 20:19:09.38ID:/7u80ZfN730デフォルトの名無しさん
2022/08/21(日) 21:11:05.94ID:ecIOs+Jg731729
2022/08/22(月) 19:20:01.17ID:7CA3B9Dd732デフォルトの名無しさん
2022/08/25(木) 15:38:14.81ID:bJn+zm7R733デフォルトの名無しさん
2022/08/25(木) 15:52:23.73ID:BfuXla1W734デフォルトの名無しさん
2022/08/25(木) 16:09:53.36ID:6j74uL6b 54.144.0.0/12といったどこかで見たことあるような形式の文字列を入力すると
^(?!(54.144.|54.145.|54.146.|54.147.|54.148.|54.149.|54.150.|54.151.|54.152.|54.153.|54.154.|54.155.|54.156.|54.157.|54.158.|54.159.))
といったいい感じの文字列が標準出力に出力されるやつ、誰か作れますか?
例の他にも54.208.0.0/13 54.216.0.0/14 54.192.0.0/12 54.160.0.0/11 54.220.0.0/15といった似た感じの文字列が入力され
やはりいい感じに処理された別の文字列が出力されます
できればライセンスはゼロ条項BSDライセンスでお願いします
^(?!(54.144.|54.145.|54.146.|54.147.|54.148.|54.149.|54.150.|54.151.|54.152.|54.153.|54.154.|54.155.|54.156.|54.157.|54.158.|54.159.))
といったいい感じの文字列が標準出力に出力されるやつ、誰か作れますか?
例の他にも54.208.0.0/13 54.216.0.0/14 54.192.0.0/12 54.160.0.0/11 54.220.0.0/15といった似た感じの文字列が入力され
やはりいい感じに処理された別の文字列が出力されます
できればライセンスはゼロ条項BSDライセンスでお願いします
735デフォルトの名無しさん
2022/08/25(木) 16:22:36.77ID:0z7AphVM ま、まあ、作れなくはないかな…
736デフォルトの名無しさん
2022/08/25(木) 18:48:07.98ID:0xws5w3m フワっとした頭の中にしか定義されてない案件なんて誰もこなせないぞ
本人以外は
本人以外は
737デフォルトの名無しさん
2022/08/25(木) 20:40:48.98ID:0z7AphVM738デフォルトの名無しさん
2022/08/25(木) 21:10:16.35ID:/BGaqBqg >>734 JavaScript
function _734(ip_range) {
const result = [];
const as = ip_range.split(/\D/).map(_ => Number(_));
const m = as.at(-1);
const q = Math.floor(m / 8);
const r = m % 8;
const e = 8 - r;
const l = as[q].toString(2).padStart(8, '0').slice(0, r);
for (let i = 0, sup = 2 ** e; i < sup; i++) {
as.splice(q, 1, Number.parseInt(l + i.toString(2).padStart(e, '0'), 2));
result.push(as.slice(0, q + 1));
}
return '^(?!(' + result.map(_ => `${_.join('\\.')}${q < 3 ? '\\.' : ''}`).join('|') + '))';
}
function _734(ip_range) {
const result = [];
const as = ip_range.split(/\D/).map(_ => Number(_));
const m = as.at(-1);
const q = Math.floor(m / 8);
const r = m % 8;
const e = 8 - r;
const l = as[q].toString(2).padStart(8, '0').slice(0, r);
for (let i = 0, sup = 2 ** e; i < sup; i++) {
as.splice(q, 1, Number.parseInt(l + i.toString(2).padStart(e, '0'), 2));
result.push(as.slice(0, q + 1));
}
return '^(?!(' + result.map(_ => `${_.join('\\.')}${q < 3 ? '\\.' : ''}`).join('|') + '))';
}
739デフォルトの名無しさん
2022/08/25(木) 22:00:47.00ID:JPPVgQ9Y beer licenseでよければ書くが
740デフォルトの名無しさん
2022/08/26(金) 04:09:37.08ID:NIKxWs5c 割とすぐに出来るもんなんですね
どちらも実用上問題なさそうな、いい感じの実行結果です
>738は最新の実行環境に心当たりがなかったので確認に手間どりましたが
Chromeのコンソールから実行して確認できました
(cscriptで実行しようとしたらat()に対応してなかったので)
いやー勉強になります、ありがとう
どちらも実用上問題なさそうな、いい感じの実行結果です
>738は最新の実行環境に心当たりがなかったので確認に手間どりましたが
Chromeのコンソールから実行して確認できました
(cscriptで実行しようとしたらat()に対応してなかったので)
いやー勉強になります、ありがとう
741デフォルトの名無しさん
2022/08/26(金) 04:49:22.52ID:0rX9u4fb >>740
スレタイも読めないアホは消えろ
スレタイも読めないアホは消えろ
743デフォルトの名無しさん
2022/08/26(金) 11:51:47.61ID:d54FvNjc >>733
マルチスレッドかマルチタスクで "Hello, world!" を出力する処理と、ランダムなタイミングでそれを強制終了させる処理が動くということで良いのか?
そして出力中に停止できなかったら "GAME OVER" が最後に出ると。
マルチスレッドかマルチタスクで "Hello, world!" を出力する処理と、ランダムなタイミングでそれを強制終了させる処理が動くということで良いのか?
そして出力中に停止できなかったら "GAME OVER" が最後に出ると。
744デフォルトの名無しさん
2022/08/26(金) 14:32:15.45ID:71YXfdUw745デフォルトの名無しさん
2022/08/26(金) 18:44:07.03ID:NQ4mbOjq >>733
#!/usr/bin/env sh
cat <<"EOL" | perl -ne '/(Hello, World)(?:[!])/ ? die " $1 got failed." : print'
> foo
> bar
> baz
> Hello, World
> Hello, World
> Hello, World!
> you can't see me, right?
> EOL
foo
bar
baz
Hello, World
Hello, World
Hello, World got failed. at -e line 1, <> line 6.
#!/usr/bin/env sh
cat <<"EOL" | perl -ne '/(Hello, World)(?:[!])/ ? die " $1 got failed." : print'
> foo
> bar
> baz
> Hello, World
> Hello, World
> Hello, World!
> you can't see me, right?
> EOL
foo
bar
baz
Hello, World
Hello, World
Hello, World got failed. at -e line 1, <> line 6.
746デフォルトの名無しさん
2022/08/26(金) 21:28:18.28ID:NIKxWs5c はて?プログラミングのお題を投げて、競技的な興味をもって答えたくなった人が答え
その回答に興味があれば参照して「普段は扱ってないこの言語だとそういうやりかたなのか」
「自分とは違うスマートなやり方があったのか」と思ったりするスレ、という理解でしたが
もしかして投げたときに”お題”という文字が抜けてたのが問題ありましたか?
概ね正解とするに足る実行結果を、実用上問題なさそうと表現したことが拙かったですか?
もしそうなら申し訳ない、次からは気をつけます
その回答に興味があれば参照して「普段は扱ってないこの言語だとそういうやりかたなのか」
「自分とは違うスマートなやり方があったのか」と思ったりするスレ、という理解でしたが
もしかして投げたときに”お題”という文字が抜けてたのが問題ありましたか?
概ね正解とするに足る実行結果を、実用上問題なさそうと表現したことが拙かったですか?
もしそうなら申し訳ない、次からは気をつけます
747デフォルトの名無しさん
2022/08/26(金) 21:31:39.94ID:NIKxWs5c ついでというかなんというか>734の自分のお題に対する自己回答です(色々と手抜きしてありますが)
#!/usr/bin/ksh
function proc {
typeset A B C D E F N M L I
IFS='.','/' read A B C D E <<XYZ
$1
XYZ
let N="(${E}+8)/8" let M="8-(${E}%8)"
if [ $N -eq 5 ]; then echo -n "${A}.${B}.${C}.${D}"; return; fi
set -A BASE dummy "" "${A}." "${A}.${B}." "${A}.${B}.${C}."
set dummy $A $B $C $D; shift $N; F=$1; let L="$F-1+(1<<$M)"
for I in `seq $F $L`; do echo -n "|${BASE[$N]}${I}."; done; }
if [ $# -eq 0 ]; then echo "need CIDR/s"; exit 65; fi
set -A CIDR dummy $@;
echo -n "^(?!dummy"; for I in `seq 1 $#`; do proc ${CIDR[$I]}; done; echo ")"
exit 0
#!/usr/bin/ksh
function proc {
typeset A B C D E F N M L I
IFS='.','/' read A B C D E <<XYZ
$1
XYZ
let N="(${E}+8)/8" let M="8-(${E}%8)"
if [ $N -eq 5 ]; then echo -n "${A}.${B}.${C}.${D}"; return; fi
set -A BASE dummy "" "${A}." "${A}.${B}." "${A}.${B}.${C}."
set dummy $A $B $C $D; shift $N; F=$1; let L="$F-1+(1<<$M)"
for I in `seq $F $L`; do echo -n "|${BASE[$N]}${I}."; done; }
if [ $# -eq 0 ]; then echo "need CIDR/s"; exit 65; fi
set -A CIDR dummy $@;
echo -n "^(?!dummy"; for I in `seq 1 $#`; do proc ${CIDR[$I]}; done; echo ")"
exit 0
74896
2022/08/29(月) 02:30:43.54ID:QAZMtAov >>734 Perl5
for (<>) {
print;
@a = /(\d+)/g;
$w = pop @a;
$o = ($w - 1) >> 3;
$m = $w - $o * 8;
$n = 2**(8 - $m);
$l = join '.', @a[0..$o-1];
$l .= '.' if '' ne $l;
$h = $a[$o] & (255 << (8 - $m));
$r = $o < 3 ? '.' : '';
@b = map{$l . ($h + $_) . $r} 0..($n - 1);
print '^(?!(' . join('|', @b) . "))\n";
print "\n";
}
※見易くするためインデントを全角スペースに置換しています。
実行例:
https://ideone.com/VBJMMo
for (<>) {
print;
@a = /(\d+)/g;
$w = pop @a;
$o = ($w - 1) >> 3;
$m = $w - $o * 8;
$n = 2**(8 - $m);
$l = join '.', @a[0..$o-1];
$l .= '.' if '' ne $l;
$h = $a[$o] & (255 << (8 - $m));
$r = $o < 3 ? '.' : '';
@b = map{$l . ($h + $_) . $r} 0..($n - 1);
print '^(?!(' . join('|', @b) . "))\n";
print "\n";
}
※見易くするためインデントを全角スペースに置換しています。
実行例:
https://ideone.com/VBJMMo
75096
2022/08/29(月) 03:01:45.22ID:QAZMtAov あれ?いいのかな?
仕様を推測して作ったけどちょっと混乱したかも…
寝るわ
仕様を推測して作ったけどちょっと混乱したかも…
寝るわ
751デフォルトの名無しさん
2022/09/09(金) 22:29:09.28ID:zwPgoVui お題
長方形の1辺の長さのリストと正方形の面積のリストが入力されます
それぞれの正方形の面積について
長方形の1辺の長さのリストから2つを選んで掛け合わせ長方形の面積を計算します
長方形の面積が正方形の面積以上でかつ最小の面積となる組み合わせを探して出力してください
見つからなかった場合はerrorを出力してください
(例)
// 1辺の長さのリスト
[17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]
// 正方形の面積のリスト
[390, 240, 37, 396, 198, 99, 242, 53, 329, 202]
// 出力
390:error
240:16,17
37:3,13
396:error
198:11,18
99:6,17
242:16,17
53:3,18
329:error
202:13,16
長方形の1辺の長さのリストと正方形の面積のリストが入力されます
それぞれの正方形の面積について
長方形の1辺の長さのリストから2つを選んで掛け合わせ長方形の面積を計算します
長方形の面積が正方形の面積以上でかつ最小の面積となる組み合わせを探して出力してください
見つからなかった場合はerrorを出力してください
(例)
// 1辺の長さのリスト
[17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]
// 正方形の面積のリスト
[390, 240, 37, 396, 198, 99, 242, 53, 329, 202]
// 出力
390:error
240:16,17
37:3,13
396:error
198:11,18
99:6,17
242:16,17
53:3,18
329:error
202:13,16
752デフォルトの名無しさん
2022/09/09(金) 23:02:00.41ID:Un8DgV3E >>751
a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]
b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202]
c = a.group_by(&:itself).values.map{_1.size > 2 ? _1[0, 2] : _1}.flatten.permutation(2).map{[_1 * _2, [_1, _2].sort]}.uniq.sort.to_h
b.each{|s| puts '%d: %s' % [s, c.find{_1[0] >= s}&.[](1)&.join(?,) || :error]}
# =>
390: error
240: 16,17
37: 3,13
396: error
198: 11,18
99: 6,17
242: 16,17
53: 3,18
329: error
202: 13,16
a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]
b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202]
c = a.group_by(&:itself).values.map{_1.size > 2 ? _1[0, 2] : _1}.flatten.permutation(2).map{[_1 * _2, [_1, _2].sort]}.uniq.sort.to_h
b.each{|s| puts '%d: %s' % [s, c.find{_1[0] >= s}&.[](1)&.join(?,) || :error]}
# =>
390: error
240: 16,17
37: 3,13
396: error
198: 11,18
99: 6,17
242: 16,17
53: 3,18
329: error
202: 13,16
753デフォルトの名無しさん
2022/09/09(金) 23:46:43.88ID:3788iROh >>751 ruby
https://ideone.com/hBHe51
def f(as, bs)
c = as.combination(2).map(&:sort).to_a.uniq.map {|x, y| [x * y, x, y]}.sort_by(&:first).each_cons(2)
bs.map do |b|
d = c.find {|e, f| e[0] < b && b <= f[0]}
"#{b}:#{d ? d[1][1..2].join(',') : 'error'}"
end
end
a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]
b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202]
puts f(a, b)
https://ideone.com/hBHe51
def f(as, bs)
c = as.combination(2).map(&:sort).to_a.uniq.map {|x, y| [x * y, x, y]}.sort_by(&:first).each_cons(2)
bs.map do |b|
d = c.find {|e, f| e[0] < b && b <= f[0]}
"#{b}:#{d ? d[1][1..2].join(',') : 'error'}"
end
end
a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]
b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202]
puts f(a, b)
754753
2022/09/10(土) 00:24:11.29ID:4GiNoMjQ >>751
https://ideone.com/2UDrLT
・>>753を若干の整理
・>>752さんのを見て&.を勉強
def f(a, b)
c = a.combination(2).map(&:sort).to_a.uniq.map {|x, y| [x * y, x, y]}.sort
b.map {|b| "#{b}:#{c.find {|e| b <= e[0]}&.[](1..2)&.join(',') || 'error'}"}
end
a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]
b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202]
puts f(a, b)
https://ideone.com/2UDrLT
・>>753を若干の整理
・>>752さんのを見て&.を勉強
def f(a, b)
c = a.combination(2).map(&:sort).to_a.uniq.map {|x, y| [x * y, x, y]}.sort
b.map {|b| "#{b}:#{c.find {|e| b <= e[0]}&.[](1..2)&.join(',') || 'error'}"}
end
a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]
b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202]
puts f(a, b)
755デフォルトの名無しさん
2022/09/10(土) 00:34:04.51ID:sDbT/M8A みんな解くのはえーなぁ
75696
2022/09/10(土) 02:29:07.85ID:7pWsuKpo >>751 Perl5
$ls = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1];
$ss = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202];
sub f {2 < @_ ? (f(@_[1..$#_]), map{[$_[0] * $_, $_[0], $_]} @_[1..$#_]) : ()}
@rs = sort{$$a[0] <=> $$b[0]} f @$ls;
for $aa (@$ss) {
@b = grep{$aa <= $$_[0]} @rs;
print @b ? "$aa:$b[0][1],$b[0][2]\n" : "$aa:error\n";
}
実行結果
$ perl 20_751.pl
390:error
240:17,16
37:3,13
396:error
198:18,11
99:17,6
242:17,16
53:3,18
329:error
202:13,16
$ls = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1];
$ss = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202];
sub f {2 < @_ ? (f(@_[1..$#_]), map{[$_[0] * $_, $_[0], $_]} @_[1..$#_]) : ()}
@rs = sort{$$a[0] <=> $$b[0]} f @$ls;
for $aa (@$ss) {
@b = grep{$aa <= $$_[0]} @rs;
print @b ? "$aa:$b[0][1],$b[0][2]\n" : "$aa:error\n";
}
実行結果
$ perl 20_751.pl
390:error
240:17,16
37:3,13
396:error
198:18,11
99:17,6
242:17,16
53:3,18
329:error
202:13,16
757デフォルトの名無しさん
2022/09/10(土) 11:29:46.54ID:q8enYz1J >>751 octave
https://ideone.com/WGkm27
function c = f(a, b)
u = unique(sort(nchoosek(a, 2), 2), 'rows');
p = prod(u, 2);
c = cell(size(b));
for i = 1:numel(b)
d = min(p(b(i) <= p));
if isempty(d)
c{i} = sprintf('%d:error', b(i));
else
s = strjoin(arrayfun(@(n) {num2str(n)}, u(p == d, :)), ',');
c{i} = sprintf('%d:%s', b(i), s);
end
end
end
a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1];
b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202];
cellfun(@disp, f(a, b))
https://ideone.com/WGkm27
function c = f(a, b)
u = unique(sort(nchoosek(a, 2), 2), 'rows');
p = prod(u, 2);
c = cell(size(b));
for i = 1:numel(b)
d = min(p(b(i) <= p));
if isempty(d)
c{i} = sprintf('%d:error', b(i));
else
s = strjoin(arrayfun(@(n) {num2str(n)}, u(p == d, :)), ',');
c{i} = sprintf('%d:%s', b(i), s);
end
end
end
a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1];
b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202];
cellfun(@disp, f(a, b))
758デフォルトの名無しさん
2022/09/10(土) 13:32:08.25ID:q8enYz1J >>751 c
https://ideone.com/Cqx8M3
#include <stdio.h>
void f(int *a, int *b, int na, int nb) {
int i, j, k, found, min, x, y;
for (i = 0; i < nb; i++) {
found = 0;
for (j = 0; j < na; j++)
for (k = 0; k < na; k++)
if (j != k && b[i] <= a[j] * a[k] && (!found || a[j] * a[k] < min))
found = 1, min = a[j] * a[k], x = a[j], y = a[k];
if (!found) printf("%d:error\n", b[i]);
else printf("%d:%d,%d\n", b[i], x, y);
}
}
int main() {
int a[] = {17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1};
int b[] = {390, 240, 37, 396, 198, 99, 242, 53, 329, 202};
f(a, b, sizeof a / sizeof *a, sizeof b / sizeof *b);
return 0;
}
https://ideone.com/Cqx8M3
#include <stdio.h>
void f(int *a, int *b, int na, int nb) {
int i, j, k, found, min, x, y;
for (i = 0; i < nb; i++) {
found = 0;
for (j = 0; j < na; j++)
for (k = 0; k < na; k++)
if (j != k && b[i] <= a[j] * a[k] && (!found || a[j] * a[k] < min))
found = 1, min = a[j] * a[k], x = a[j], y = a[k];
if (!found) printf("%d:error\n", b[i]);
else printf("%d:%d,%d\n", b[i], x, y);
}
}
int main() {
int a[] = {17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1};
int b[] = {390, 240, 37, 396, 198, 99, 242, 53, 329, 202};
f(a, b, sizeof a / sizeof *a, sizeof b / sizeof *b);
return 0;
}
759デフォルトの名無しさん
2022/09/10(土) 19:18:11.93ID:PLqR4TKQ >>751
Kotlin
可能な限り漢字を使ったプログラムにしてみたが、余計にゴチャゴチャしてしまったかな?
https://paiza.io/projects/ay4L7Wchnt6lGUvkh6h21A
240 が 16, 17 ではなく 17, 16 のように出るが、まあよかろう。
(リストの順番で覚えているのでこうなる)。
Kotlin
可能な限り漢字を使ったプログラムにしてみたが、余計にゴチャゴチャしてしまったかな?
https://paiza.io/projects/ay4L7Wchnt6lGUvkh6h21A
240 が 16, 17 ではなく 17, 16 のように出るが、まあよかろう。
(リストの順番で覚えているのでこうなる)。
760デフォルトの名無しさん
2022/09/10(土) 22:25:19.23ID:7X0yi8nW お題
>>751の問題について
長方形の1辺の長さをソートして縦方向と横方向に並べて交差するところに長方形の面積を入れて表にします
https://downloadx.getuploader.com/g/angel556/90/%E3%81%97%E3%82%83%E3%81%8F%E3%81%A8%E3%82%8A%E6%B3%95.png
この図は50を探すところを描いています
青色の斜めの値の中から正方形の面積以上かつ最小の値を見つけその場所を出発点とします
長方形の面積が正方形の面積よりも大きい場合は表を上にたどり、長方形の面積が正方形の面積よりも小さい場合は表を右にたどります
右方向から上方向に切り替わるところが回答の候補でその中から最小値を探すことで効率よく回答を見つけることができます
しゃくとり虫が動いてるように見えるのでこれをしゃくとり法と呼ぶことにします
>>751の問題をしゃくとり法で解いてください
>>751の問題について
長方形の1辺の長さをソートして縦方向と横方向に並べて交差するところに長方形の面積を入れて表にします
https://downloadx.getuploader.com/g/angel556/90/%E3%81%97%E3%82%83%E3%81%8F%E3%81%A8%E3%82%8A%E6%B3%95.png
この図は50を探すところを描いています
青色の斜めの値の中から正方形の面積以上かつ最小の値を見つけその場所を出発点とします
長方形の面積が正方形の面積よりも大きい場合は表を上にたどり、長方形の面積が正方形の面積よりも小さい場合は表を右にたどります
右方向から上方向に切り替わるところが回答の候補でその中から最小値を探すことで効率よく回答を見つけることができます
しゃくとり虫が動いてるように見えるのでこれをしゃくとり法と呼ぶことにします
>>751の問題をしゃくとり法で解いてください
761デフォルトの名無しさん
2022/09/10(土) 22:51:25.27ID:7X0yi8nW > 右方向から上方向に切り替わるところが回答の候補でその中から最小値を探すことで効率よく回答を見つけることができます
これは間違いかも、これだと55を見つけられない
各自で考えていただければありがたく
これは間違いかも、これだと55を見つけられない
各自で考えていただければありがたく
762デフォルトの名無しさん
2022/09/10(土) 22:52:41.16ID:7X0yi8nW いや、いいのか!? ダメだ混乱してきたもうパニックですわ
763デフォルトの名無しさん
2022/09/10(土) 22:57:53.10ID:sDbT/M8A おちつけ
764デフォルトの名無しさん
2022/09/10(土) 23:12:42.56ID:7X0yi8nW >>760
> 右方向から上方向に切り替わるところが回答の候補でその中から最小値を探すことで効率よく回答を見つけることができます
これは間違いでした、上方向から右方向に変わる直前の値が回答候補ですね
50を探す場合、56,55,51が候補です
https://downloadx.getuploader.com/g/angel556/91/%E3%81%97%E3%82%83%E3%81%8F%E3%81%A8%E3%82%8A%E6%B3%95_%E8%A8%82%E6%AD%A3.png
> 右方向から上方向に切り替わるところが回答の候補でその中から最小値を探すことで効率よく回答を見つけることができます
これは間違いでした、上方向から右方向に変わる直前の値が回答候補ですね
50を探す場合、56,55,51が候補です
https://downloadx.getuploader.com/g/angel556/91/%E3%81%97%E3%82%83%E3%81%8F%E3%81%A8%E3%82%8A%E6%B3%95_%E8%A8%82%E6%AD%A3.png
765素数を数えるんだ
2022/09/10(土) 23:25:22.59ID:22kPJ9rf 2, 3, 5, 7, 11, 13, 17, 19......
766デフォルトの名無しさん
2022/09/11(日) 01:04:25.98ID:/LH0BDzE お題
2~19までの素数を生成し掛け算の表を出力してください
2~19までの素数を生成し掛け算の表を出力してください
767デフォルトの名無しさん
2022/09/12(月) 01:50:52.46ID:xawmAmgS768デフォルトの名無しさん
2022/09/12(月) 10:44:10.79ID:VxR6iqOp >>764
Kotlin
https://paiza.io/projects/caNg1GtDFhBF9Rk6AwC52Q
出力をHTMLにするとそれっぽく表示できた。
50は正方形の面積リストの最初に入れたが例の画像と同じような見た目になった。
Kotlin
https://paiza.io/projects/caNg1GtDFhBF9Rk6AwC52Q
出力をHTMLにするとそれっぽく表示できた。
50は正方形の面積リストの最初に入れたが例の画像と同じような見た目になった。
769デフォルトの名無しさん
2022/09/12(月) 18:32:56.65ID:eGlSQ2pk770デフォルトの名無しさん
2022/09/13(火) 22:22:38.95ID:B0VHMNYc771デフォルトの名無しさん
2022/09/13(火) 22:25:19.07ID:V4Kz63G0 お題:OpenGLで四角形を3つ描画せよ
一番下の四角形が1番大きく赤色
その上にのってる四角形は2番目に大きく緑色
さらにその上にのってる四角形は3番目に大きく青色
一番下の四角形が1番大きく赤色
その上にのってる四角形は2番目に大きく緑色
さらにその上にのってる四角形は3番目に大きく青色
772デフォルトの名無しさん
2022/09/14(水) 12:47:57.36ID:LkrioAg+ お題
フェアフィールドの公式は、西暦1年1月1日から指定した日付までの日数を求めるもので次の式です
日数 = (365 * Y) + (Y / 4) - (Y / 100) + (Y / 400) + (306 * (M + 1) / 10) + D - 428
UNIX時間は、西暦1970年1月1日午前0時0分0秒からの経過秒数です
フェアフィールドの公式を用いてUNIX時間から年月日を求めて出力してください
(例)
1000000000 → 2001-09-09T01:46:40
1234567890 → 2009-02-13T23:31:30
フェアフィールドの公式は、西暦1年1月1日から指定した日付までの日数を求めるもので次の式です
日数 = (365 * Y) + (Y / 4) - (Y / 100) + (Y / 400) + (306 * (M + 1) / 10) + D - 428
UNIX時間は、西暦1970年1月1日午前0時0分0秒からの経過秒数です
フェアフィールドの公式を用いてUNIX時間から年月日を求めて出力してください
(例)
1000000000 → 2001-09-09T01:46:40
1234567890 → 2009-02-13T23:31:30
773デフォルトの名無しさん
2022/09/14(水) 15:20:59.73ID:s+3MjQLV >>772 bat
@echo off &setlocal
call :Conv_uTime2iso 1000000000
call :Conv_uTime2iso 1234567890
pause&exit /b
:Conv_uTime2iso
set /a "GD=(UT=%~1)/86400+719468, h=100+(R=UT%%86400)/3600, n=100+(R%%=3600)/60, s=100+R%%60, y=400*(GD/146097), y+=100*(i=(R=GD%%146097)/36524), y+=(R%%=36524)/1461*4, y+=j=(R%%=1461)/365, R=R%%365+365*(L=(i|j)/4), f=(k=(R*5+2)/153)/10, d=R+101-(306*k+4)/10, m=k+103-f*12, y+=f-L"
echo %y%-%m:~-2%-%d:~-2%T%h:~-2%:%n:~-2%:%s:~-2%
@echo off &setlocal
call :Conv_uTime2iso 1000000000
call :Conv_uTime2iso 1234567890
pause&exit /b
:Conv_uTime2iso
set /a "GD=(UT=%~1)/86400+719468, h=100+(R=UT%%86400)/3600, n=100+(R%%=3600)/60, s=100+R%%60, y=400*(GD/146097), y+=100*(i=(R=GD%%146097)/36524), y+=(R%%=36524)/1461*4, y+=j=(R%%=1461)/365, R=R%%365+365*(L=(i|j)/4), f=(k=(R*5+2)/153)/10, d=R+101-(306*k+4)/10, m=k+103-f*12, y+=f-L"
echo %y%-%m:~-2%-%d:~-2%T%h:~-2%:%n:~-2%:%s:~-2%
774デフォルトの名無しさん
2022/09/15(木) 05:31:46.38ID:LgD4XKTt //>>772 JavaScript
function _772(epoch) {
/**/epoch = BigInt(epoch);if (epoch < 0n) {throw new RangeError('');}
/**/const lastDateOfMonth = (_ => Object.fromEntries(Array.from([, , , ..._.slice(2), _[0], _[1]].entries()).filter(([, v]) => v)))(Array.from(new Array(12).keys()).map(m => BigInt(new Date(2_022, m + 1, 0, 0, 0 - new Date().getTimezoneOffset()).getDate())));
/**/const FAIRFIELD = fairfield(1_969n, 12n, 31n) + epoch / 86_400n + 1n;
/**/let [Y, M, D] = [1_969n, 13n, 1n];
/**/for (; D <= 58n; D++) {if (FAIRFIELD == fairfield(Y, M, D)) {return {Y: 1_970n, M: 1n + D / 31n, D: D % 31n};}}
/**/for (Y = 1_970n; Y <= Number.MAX_SAFE_INTEGER; Y++) {
/**//**/for (M = 3n, D = 1n; D <= 366n; D++) {
/**//**//**/if (FAIRFIELD == fairfield(Y, M, D)) {
/**//**//**//**/if (D == 366n) {
/**//**//**//**//**/if (isLeapFullYear(Y + 1n)) {
/**//**//**//**//**//**/return {Y: Y + 1n, M: 2n, D: 29n};
/**//**//**//**//**/} else {
/**//**//**//**//**//**/return {Y: Y + 1n, M: 3n, D: 1n};
/**//**//**//**//**/}
/**//**//**//**/} else {
/**//**//**//**//**/for (; lastDateOfMonth[M] <= D; D -= lastDateOfMonth[M++]);
/**//**//**//**//**/if (M <=12n) {
/**//**//**//**//**//**/return {Y, M, D};
/**//**//**//**//**/} else {
/**//**//**//**//**//**/return {Y: Y + 1n, M: M % 12n, D};
/**/}}}}}
/**/function isLeapFullYear(Y) {return Y % 4n == 0n && Y % 100n != 0n || Y % 400n == 0;}
/**/function fairfield(Y, M, D) {return Y * 365n + Y / 4n - Y / 100n + Y / 400n + 306n * (M + 1n) / 10n + D - 428n;}
}
function _772(epoch) {
/**/epoch = BigInt(epoch);if (epoch < 0n) {throw new RangeError('');}
/**/const lastDateOfMonth = (_ => Object.fromEntries(Array.from([, , , ..._.slice(2), _[0], _[1]].entries()).filter(([, v]) => v)))(Array.from(new Array(12).keys()).map(m => BigInt(new Date(2_022, m + 1, 0, 0, 0 - new Date().getTimezoneOffset()).getDate())));
/**/const FAIRFIELD = fairfield(1_969n, 12n, 31n) + epoch / 86_400n + 1n;
/**/let [Y, M, D] = [1_969n, 13n, 1n];
/**/for (; D <= 58n; D++) {if (FAIRFIELD == fairfield(Y, M, D)) {return {Y: 1_970n, M: 1n + D / 31n, D: D % 31n};}}
/**/for (Y = 1_970n; Y <= Number.MAX_SAFE_INTEGER; Y++) {
/**//**/for (M = 3n, D = 1n; D <= 366n; D++) {
/**//**//**/if (FAIRFIELD == fairfield(Y, M, D)) {
/**//**//**//**/if (D == 366n) {
/**//**//**//**//**/if (isLeapFullYear(Y + 1n)) {
/**//**//**//**//**//**/return {Y: Y + 1n, M: 2n, D: 29n};
/**//**//**//**//**/} else {
/**//**//**//**//**//**/return {Y: Y + 1n, M: 3n, D: 1n};
/**//**//**//**//**/}
/**//**//**//**/} else {
/**//**//**//**//**/for (; lastDateOfMonth[M] <= D; D -= lastDateOfMonth[M++]);
/**//**//**//**//**/if (M <=12n) {
/**//**//**//**//**//**/return {Y, M, D};
/**//**//**//**//**/} else {
/**//**//**//**//**//**/return {Y: Y + 1n, M: M % 12n, D};
/**/}}}}}
/**/function isLeapFullYear(Y) {return Y % 4n == 0n && Y % 100n != 0n || Y % 400n == 0;}
/**/function fairfield(Y, M, D) {return Y * 365n + Y / 4n - Y / 100n + Y / 400n + 306n * (M + 1n) / 10n + D - 428n;}
}
775デフォルトの名無しさん
2022/09/15(木) 22:07:10.52ID:AaudQZzp うるう秒のテーブルがないと求められなくない?
776デフォルトの名無しさん
2022/09/16(金) 00:34:31.77ID:ETiYX3D6 400年で146097日増えるみたいだから適当にバイアス付けて146097で割る予感
777デフォルトの名無しさん
2022/09/16(金) 00:35:51.49ID:ETiYX3D6 違う
適当にバイアス付けて÷365.2425だ
適当にバイアス付けて÷365.2425だ
778デフォルトの名無しさん
2022/09/16(金) 01:05:26.42ID:/mniU0r8 フェアフィールドの公式てwikipediaに書かれている出自不明な公式でも何でも無いでっち上げの記事でしょ
式の解説文がこれまた頭悪くて、なのに誰も修正しないという
式の解説文がこれまた頭悪くて、なのに誰も修正しないという
779デフォルトの名無しさん
2022/09/16(金) 01:13:35.77ID:mMDmJ4/Z780デフォルトの名無しさん
2022/09/16(金) 21:18:24.66ID:k/2PI65L781デフォルトの名無しさん
2022/09/17(土) 17:48:30.91ID:fw6a0lZo お題
2*2の整数行列がいくつか与えられる。
これらを適当な順番で掛け合わせる(行列積)ことで零行列を作ることが可能かどうか判定せよ。
ただし、同じ行列を2回以上使用してもよい。
例
[[1, 0], [0, 0]], [[0, -1], [1, 0]] =>可能(行列1*行列2*行列1==0)
[[1, 2], [3, 4]], [[0, -3], [2, 4]] =>不可能(正則行列だから)
2*2の整数行列がいくつか与えられる。
これらを適当な順番で掛け合わせる(行列積)ことで零行列を作ることが可能かどうか判定せよ。
ただし、同じ行列を2回以上使用してもよい。
例
[[1, 0], [0, 0]], [[0, -1], [1, 0]] =>可能(行列1*行列2*行列1==0)
[[1, 2], [3, 4]], [[0, -3], [2, 4]] =>不可能(正則行列だから)
782デフォルトの名無しさん
2022/09/17(土) 18:42:03.76ID:ZMguHADz >>781
零因子の発掘ですか、濃ゆいお題ですね…
零因子の発掘ですか、濃ゆいお題ですね…
783デフォルトの名無しさん
2022/09/18(日) 11:34:42.07ID:qZaavGGf784デフォルトの名無しさん
2022/09/18(日) 12:52:34.73ID:BMeW7wRv785デフォルトの名無しさん
2022/09/18(日) 16:37:27.93ID:BMeW7wRv786デフォルトの名無しさん
2022/09/19(月) 02:47:41.37ID:/08McGz8 >>783
Kotlin
https://paiza.io/projects/dZhh0NhaeEwnxD45W6V7Ng
Java VM 上で動くから Java と同じで参照している変数を null にして System.gc() するだけ。
Kotlin
https://paiza.io/projects/dZhh0NhaeEwnxD45W6V7Ng
Java VM 上で動くから Java と同じで参照している変数を null にして System.gc() するだけ。
787デフォルトの名無しさん
2022/09/24(土) 01:13:05.90ID:uYRJl5GL >>772
亀レスHaskell
https://ideone.com/y7jYXr
色々考えて結局テーブル作って処理という最後の手段
わざわざ公開するほどのもんでもないけど一区切りつけるため
暦の勉強になった
なんで大の月と小の月の配置はこんなみっともないことになってるんだろ?
歴史家が調べでよくわからんみたいだけど
亀レスHaskell
https://ideone.com/y7jYXr
色々考えて結局テーブル作って処理という最後の手段
わざわざ公開するほどのもんでもないけど一区切りつけるため
暦の勉強になった
なんで大の月と小の月の配置はこんなみっともないことになってるんだろ?
歴史家が調べでよくわからんみたいだけど
788デフォルトの名無しさん
2022/09/24(土) 04:40:38.82ID:6vPOYH6k >>772
だめ。その式に当てはめると必ずずれる。
だめ。その式に当てはめると必ずずれる。
789デフォルトの名無しさん
2022/09/24(土) 07:42:29.88ID:aunrhsr3 うるう秒を考慮しないとずれる
790デフォルトの名無しさん
2022/09/24(土) 09:42:29.34ID:v3rIJe0P791デフォルトの名無しさん
2022/09/24(土) 11:33:11.17ID:aunrhsr3 >>790
日付に変換する過程でうるう秒考慮しないとずれるでしょう
日付に変換する過程でうるう秒考慮しないとずれるでしょう
792デフォルトの名無しさん
2022/09/24(土) 12:13:55.28ID:v3rIJe0P >>791
UNIXTIMEは「epocからの実時間の秒数」では無い
実時間から、うるう秒は加減され含まれず、1日は86400秒換算
だからそれを日時に変換しても「うるう秒の時刻を表せない」だけでズレなど発生しない
UNIXTIMEは「epocからの実時間の秒数」では無い
実時間から、うるう秒は加減され含まれず、1日は86400秒換算
だからそれを日時に変換しても「うるう秒の時刻を表せない」だけでズレなど発生しない
793デフォルトの名無しさん
2022/09/24(土) 12:34:24.41ID:aunrhsr3 >>792
レスありがとう。不勉強だったわ。
レスありがとう。不勉強だったわ。
794デフォルトの名無しさん
2022/09/24(土) 16:57:05.53ID:6vPOYH6k795デフォルトの名無しさん
2022/09/24(土) 22:38:52.94ID:Fvr5cAu6 wikiにはそこまで詳しい解説はなかったけど式みたらわかったけどな
⌊(m+1)/30.6⌋
という項
⌊x/30.6⌋という関数は0,1,2,3,4となる値が
31,30,31,30,31,31,(繰り返し)‥①
と変化してコレを周期153で繰り返す
月の長さは3月から見ると
31,30,31,30,31,31,30,31,30,31,31,28(29)
となってるから①を一月分左に平行移動すれば良いとわかる
からの⌊(m+1)/30.6⌋
⌊(m+1)/30.6⌋
という項
⌊x/30.6⌋という関数は0,1,2,3,4となる値が
31,30,31,30,31,31,(繰り返し)‥①
と変化してコレを周期153で繰り返す
月の長さは3月から見ると
31,30,31,30,31,31,30,31,30,31,31,28(29)
となってるから①を一月分左に平行移動すれば良いとわかる
からの⌊(m+1)/30.6⌋
796デフォルトの名無しさん
2022/09/24(土) 22:45:27.51ID:Fvr5cAu6797デフォルトの名無しさん
2022/09/28(水) 02:17:31.98ID:UDkh+W3M お題:4回呼び出したらその内の1回が失敗する関数を書け
失敗した場合は「failed」と表示、成功した場合は「ok」と表示せよ
失敗した場合は「failed」と表示、成功した場合は「ok」と表示せよ
798デフォルトの名無しさん
2022/09/28(水) 09:47:46.29ID:+QlM3L0o seed変数はパラメータ渡しで良いですか
799デフォルトの名無しさん
2022/09/28(水) 19:05:59.31ID:WptV1D3q >>797 c
https://ideone.com/PIpRmD
void f() {
static int i = 0, j, k = 4;
if (i == 0) j = rand() % k;
puts(i == j ? "failed" : "ok");
i = (i + 1) % k;
}
https://ideone.com/PIpRmD
void f() {
static int i = 0, j, k = 4;
if (i == 0) j = rand() % k;
puts(i == j ? "failed" : "ok");
i = (i + 1) % k;
}
800デフォルトの名無しさん
2022/09/28(水) 22:51:23.95ID:7XofIB3A801デフォルトの名無しさん
2022/09/30(金) 04:16:06.13ID:F2zw9Wj+ >>797
Kotlin
https://paiza.io/projects/QipeLOxxfW3_GNBarDA-8w
Int型1つ分のワークエリアを呼ぶ側から与えてそこでカウントして必ず4回の内1回が失敗になる。
乱数を使うと4回の内1回失敗ではなくなる可能性があるので使っていない。
引数としてInt型の参照を渡しても中身を変えられないのでIntArray(Java なら int[] に相当)で1要素作ってIntArrayの参照を渡している。
クラスでやっても良かったが、わざわざクラス作るほどのことでもないと思ったのでこの方式にした。
Kotlin
https://paiza.io/projects/QipeLOxxfW3_GNBarDA-8w
Int型1つ分のワークエリアを呼ぶ側から与えてそこでカウントして必ず4回の内1回が失敗になる。
乱数を使うと4回の内1回失敗ではなくなる可能性があるので使っていない。
引数としてInt型の参照を渡しても中身を変えられないのでIntArray(Java なら int[] に相当)で1要素作ってIntArrayの参照を渡している。
クラスでやっても良かったが、わざわざクラス作るほどのことでもないと思ったのでこの方式にした。
802デフォルトの名無しさん
2022/10/01(土) 01:23:09.73ID:I5nFps2z803デフォルトの名無しさん
2022/10/09(日) 17:49:59.08ID:tsulmG4c お題: あみだ https://imgur.com/6XtTF0E.png
画像のようなマス目の上に直線を引いたあみだを次のように表現することにします。
N: 縦線の本数(列数)
M: 橋が架けられている行数
B: M行N-1列の二次元配列で、橋が架けられていたら1、そうでない場合は0が格納されています。
あらかじめ、あみだの入力には左から0〜N-1までの整数が割り振られていることにします。また、同じ行に橋が二つ連続で隣り合うことは禁止されています。
一応の制約: 2 <= N <= 100, 1 <= M <= 100
あみだに橋が1つも存在しない場合、M=1となり、Bは1行N-1列の大きさで、すべての要素が0の2次元配列になることにします。
お題1: N, M, Bが与えられるので、あみだの出力を求めてください。(入出力のフォーマットは各自で適宜変更してもいいです。)
入力例(画像のもの):
4
4
1 0 1
0 1 0
1 0 0
0 1 0
出力例:
3 0 1 2
お題2: Nとあみだの出力が与えられるので、Mをできるだけ小さくしたあみだを求め、Mと Bの一例 を表示してください。
入力例:
5
2 4 0 1 3
出力例:
3
0 1 0 1
1 0 1 0
0 1 0 0
あみだ関連のお題は過去スレで何回か見かけたがろくに相手にされていなかったのであげてみる。
画像のようなマス目の上に直線を引いたあみだを次のように表現することにします。
N: 縦線の本数(列数)
M: 橋が架けられている行数
B: M行N-1列の二次元配列で、橋が架けられていたら1、そうでない場合は0が格納されています。
あらかじめ、あみだの入力には左から0〜N-1までの整数が割り振られていることにします。また、同じ行に橋が二つ連続で隣り合うことは禁止されています。
一応の制約: 2 <= N <= 100, 1 <= M <= 100
あみだに橋が1つも存在しない場合、M=1となり、Bは1行N-1列の大きさで、すべての要素が0の2次元配列になることにします。
お題1: N, M, Bが与えられるので、あみだの出力を求めてください。(入出力のフォーマットは各自で適宜変更してもいいです。)
入力例(画像のもの):
4
4
1 0 1
0 1 0
1 0 0
0 1 0
出力例:
3 0 1 2
お題2: Nとあみだの出力が与えられるので、Mをできるだけ小さくしたあみだを求め、Mと Bの一例 を表示してください。
入力例:
5
2 4 0 1 3
出力例:
3
0 1 0 1
1 0 1 0
0 1 0 0
あみだ関連のお題は過去スレで何回か見かけたがろくに相手にされていなかったのであげてみる。
804デフォルトの名無しさん
2022/10/10(月) 00:03:47.74ID:Em47unOv reduced expressionのまとめられる積を出来るだけまとめたものが必ず最短になるなら簡単なんだけどな
805デフォルトの名無しさん
2022/10/10(月) 12:25:25.51ID:CId/Nblu Gapとか使えばいいんじゃね
806デフォルトの名無しさん
2022/10/10(月) 15:00:17.69ID:AiOpkeUk reduced expression の長さ自体の計算は簡単だけどこの問題は"reduced expressionの長さを求めよ"ではないからそこまで数学的に単純じゃないよ
807デフォルトの名無しさん
2022/10/10(月) 20:53:48.73ID:uiS3Rjx/ >>803
お題1
ttps://paiza.io/projects/tUaZay_JvtZRkIaUhjYF7Q
お題2
ttps://paiza.io/projects/1yDZy-Vx-C9Q9Z_Oc03Mtw
お題1とお題2でそれぞれ入力と出力をあわせるようにした
Mをできるだけ小さくって難しいな
これでいいのかわからん
お題1
ttps://paiza.io/projects/tUaZay_JvtZRkIaUhjYF7Q
お題2
ttps://paiza.io/projects/1yDZy-Vx-C9Q9Z_Oc03Mtw
お題1とお題2でそれぞれ入力と出力をあわせるようにした
Mをできるだけ小さくって難しいな
これでいいのかわからん
808デフォルトの名無しさん
2022/10/10(月) 21:09:44.88ID:TC3V9vEZ アルゴリズムが存在するのは明らかだしひとつ答え見つけるアルゴリズムも簡単
でもreduced expression見つけるアルゴリズムと同程度のアルゴリズムとなると途端に難しくなる
reduced expressionの場合には置換σのreduced expressionを見つけるには
(1) σ = idであるか否か判定する、σ=idなら空列を返して終了
(2) そうでない場合σ(i) > σ(i+1)であるiを見つける、見つけたiに対してτ=σ(i i+1)とおいてτほreduced expression sを求める
(3)
でもreduced expression見つけるアルゴリズムと同程度のアルゴリズムとなると途端に難しくなる
reduced expressionの場合には置換σのreduced expressionを見つけるには
(1) σ = idであるか否か判定する、σ=idなら空列を返して終了
(2) そうでない場合σ(i) > σ(i+1)であるiを見つける、見つけたiに対してτ=σ(i i+1)とおいてτほreduced expression sを求める
(3)
809デフォルトの名無しさん
2022/10/10(月) 21:16:09.04ID:TC3V9vEZ (3) s ( i i+1 )を返して終了
でもとまる
ここでミソはreduced expressionの1番右は( i i+1 )と決め打ち出来ること、コレがあるから多項式時間で終わる
しかしアミダの場合1番右の初手をそんなに簡単に決定出来るかが分からん
初手の可能性は転置全部の可換な集合のうち極大であるもの全体のいずれかに最短が入る事は簡単に示せるけど、そのような極大な可換集合をどれとっても必ずうまくいくことの証明がむずかしい
多分出来るんだとは思うけど正直数学板で話題にするような話でプロ板で出すような問題じゃない気がする
でもとまる
ここでミソはreduced expressionの1番右は( i i+1 )と決め打ち出来ること、コレがあるから多項式時間で終わる
しかしアミダの場合1番右の初手をそんなに簡単に決定出来るかが分からん
初手の可能性は転置全部の可換な集合のうち極大であるもの全体のいずれかに最短が入る事は簡単に示せるけど、そのような極大な可換集合をどれとっても必ずうまくいくことの証明がむずかしい
多分出来るんだとは思うけど正直数学板で話題にするような話でプロ板で出すような問題じゃない気がする
810441
2022/10/11(火) 10:43:04.37ID:Q+yx5xdI >>803
最近やっとpythonを学び始めたレベルだから合ってるかわからん
コメントとかもちゃんと書いたほうがいいのだろうか
暇な人添削してくれると嬉しい
お題1
https://ideone.com/uQ0lEu
お題2
https://ideone.com/IvtRj2
最近やっとpythonを学び始めたレベルだから合ってるかわからん
コメントとかもちゃんと書いたほうがいいのだろうか
暇な人添削してくれると嬉しい
お題1
https://ideone.com/uQ0lEu
お題2
https://ideone.com/IvtRj2
811デフォルトの名無しさん
2022/10/11(火) 12:04:38.77ID:xv8Y5zzF しゃぶれよ
813デフォルトの名無しさん
2022/10/22(土) 02:49:22.02ID:ql0xnxKt やってるやん
814デフォルトの名無しさん
2022/10/24(月) 10:24:26.56ID:sCRx2Xsd お題
プリンタAは1分間に1ページ印刷できます
プリンタBは3分間に1ページ印刷できます
プリンタCは5分間に1ページ印刷できます
プリンタを3台同時に動かして100ページを印刷します
100ページを印刷し終わるのに何分掛かるか求めてください
プリンタAは1分間に1ページ印刷できます
プリンタBは3分間に1ページ印刷できます
プリンタCは5分間に1ページ印刷できます
プリンタを3台同時に動かして100ページを印刷します
100ページを印刷し終わるのに何分掛かるか求めてください
815デフォルトの名無しさん
2022/10/24(月) 12:38:35.85ID:PxuF7JuF816デフォルトの名無しさん
2022/10/24(月) 13:32:21.38ID:LLDppSf/817デフォルトの名無しさん
2022/10/24(月) 14:17:54.79ID:l9s5dDsa >>814 cmd
set /a "p=100, n=15*p/23+!!(15*p%23)"
set /a "p=100, n=15*p/23+!!(15*p%23)"
818デフォルトの名無しさん
2022/10/24(月) 15:31:07.39ID:FSEywfH4 haskell
pages n = sum $ map ( div n ) [ 1,3,5 ]
main = print $ head [ n | n <- [1..], pages n >= 100 ]
pages n = sum $ map ( div n ) [ 1,3,5 ]
main = print $ head [ n | n <- [1..], pages n >= 100 ]
819デフォルトの名無しさん
2022/10/24(月) 20:20:16.51ID:112hix5y820デフォルトの名無しさん
2022/10/24(月) 22:40:57.89ID:SGYFZ2pJ821デフォルトの名無しさん
2022/10/25(火) 01:46:09.54ID:m3snEfri822デフォルトの名無しさん
2022/10/25(火) 06:54:39.16ID:LZqPXT/2823デフォルトの名無しさん
2022/10/25(火) 07:50:54.84ID:V4E25MPr A, B, Cでそれぞれ45/23, 15/23, 9/23ページ印刷すれば45/23分で3ページ印刷し終わるよ
824デフォルトの名無しさん
2022/10/25(火) 08:18:47.97ID:5cB2OctB 100ページだからセーフ
825デフォルトの名無しさん
2022/10/25(火) 13:35:12.41ID:xp4U3IJL826デフォルトの名無しさん
2022/10/25(火) 20:38:44.30ID:Er29dtqL 甘えんな
印刷周期を一定と仮定した上で解として取りうる離散値のどれになるかを小数単位で求めるプログラムも書こうよ
印刷周期を一定と仮定した上で解として取りうる離散値のどれになるかを小数単位で求めるプログラムも書こうよ
827デフォルトの名無しさん
2022/10/25(火) 21:08:38.15ID:idE58GAF すまん、1分に3枚じゃなくて3分に1枚かorz
828デフォルトの名無しさん
2022/10/25(火) 22:03:54.71ID:b0dw4lqu829デフォルトの名無しさん
2022/10/25(火) 22:28:13.40ID:F6XUw+z/ じゃあ1分に1枚、3枚、5枚のプリンターでの印刷というお題も出すか。
830デフォルトの名無しさん
2022/10/25(火) 22:38:49.46ID:d0t/LHiA >>814 octave
https://ideone.com/0V6LlD
function m = f(n, m)
if nargin == 1
m = f(n, 0);
elseif sum(idivide(m, [1 3 5])) < n
m = f(n, m + 1);
end
end
>>814 ocaml
https://ideone.com/4iPTJS
let f n =
let rec aux m =
if n <= (m + m / 3 + m / 5) then m else aux (m + 1)
in aux 0
https://ideone.com/0V6LlD
function m = f(n, m)
if nargin == 1
m = f(n, 0);
elseif sum(idivide(m, [1 3 5])) < n
m = f(n, m + 1);
end
end
>>814 ocaml
https://ideone.com/4iPTJS
let f n =
let rec aux m =
if n <= (m + m / 3 + m / 5) then m else aux (m + 1)
in aux 0
831デフォルトの名無しさん
2022/10/25(火) 23:47:11.01ID:b0dw4lqu >>829
Java
public static void main(String[] args)
{
var pages = 100;
var s = IntStream.of(1, 3, 5).sum();
System.out.println((pages + s - 1) / s);
}
Java
public static void main(String[] args)
{
var pages = 100;
var s = IntStream.of(1, 3, 5).sum();
System.out.println((pages + s - 1) / s);
}
832デフォルトの名無しさん
2022/10/26(水) 13:26:51.44ID:FciA0hc1 お題
オークA「ぐっふっふ…… 俺は媚薬を盛ってないぜ……」
オークB「ぐふっ…… 媚薬を盛ったやつはAかCのどちらかだぜ…」
オークC「オークBかDは嘘をついているぜ…ぐっふっふっふっ……」
オークD「ぐふふ…媚薬を盛った奴はB,Eの中にはいないぜ……ぐひっ…」
オークE「げひひっ……媚薬を盛ったやつは本当の事を言っているぞ…」
オーク達「ちなみに、お前に媚薬を盛ったのはこの中の一匹で、俺たちの中で一匹が嘘をついているぞ……」
女騎士「くうぅ…誰が嘘をついて誰が私に媚薬を盛ったんだ……!」
オーク達「ぐっふっふ……」
論理演算を用いて答えを求めてください
オークA「ぐっふっふ…… 俺は媚薬を盛ってないぜ……」
オークB「ぐふっ…… 媚薬を盛ったやつはAかCのどちらかだぜ…」
オークC「オークBかDは嘘をついているぜ…ぐっふっふっふっ……」
オークD「ぐふふ…媚薬を盛った奴はB,Eの中にはいないぜ……ぐひっ…」
オークE「げひひっ……媚薬を盛ったやつは本当の事を言っているぞ…」
オーク達「ちなみに、お前に媚薬を盛ったのはこの中の一匹で、俺たちの中で一匹が嘘をついているぞ……」
女騎士「くうぅ…誰が嘘をついて誰が私に媚薬を盛ったんだ……!」
オーク達「ぐっふっふ……」
論理演算を用いて答えを求めてください
833デフォルトの名無しさん
2022/10/26(水) 13:33:52.83ID:FciA0hc1 オークCとオークEがめんどくさいな
834デフォルトの名無しさん
2022/10/26(水) 15:30:35.63ID:DM8ZU7Du 全てが媚薬を盛って全員が嘘をついている
これで全員の発言と矛盾がないと思う
これで全員の発言と矛盾がないと思う
835デフォルトの名無しさん
2022/10/26(水) 16:28:02.83ID:xzd5i3vP さすがに
> オーク達「ちなみに、お前に媚薬を盛ったのはこの中の一匹で、俺たちの中で一匹が嘘をついているぞ……」
は正しいと仮定しないとなんでもありありになっちゃうだろ
> オーク達「ちなみに、お前に媚薬を盛ったのはこの中の一匹で、俺たちの中で一匹が嘘をついているぞ……」
は正しいと仮定しないとなんでもありありになっちゃうだろ
836デフォルトの名無しさん
2022/10/26(水) 18:06:43.51ID:VWCwwszG さすがに
> オーク達「ちなみに、お前に媚薬を盛ったのはこの中の一匹で、俺たちの中で一匹が嘘をついているぞ……」
コレウソついてるのは一匹“だけ”つて意味だよね?
“少なくとも一匹はウソついてる”
じゃないよね?
> オーク達「ちなみに、お前に媚薬を盛ったのはこの中の一匹で、俺たちの中で一匹が嘘をついているぞ……」
コレウソついてるのは一匹“だけ”つて意味だよね?
“少なくとも一匹はウソついてる”
じゃないよね?
837デフォルトの名無しさん
2022/10/26(水) 18:20:40.38ID:S3XzLK/s このタイプの論理問題ってよく見かけるな
初出ってどこなんだろうな
初出ってどこなんだろうな
838デフォルトの名無しさん
2022/10/26(水) 19:23:29.30ID:gD5qQ1ZG839デフォルトの名無しさん
2022/10/26(水) 20:30:42.10ID:dmTYCGjA840デフォルトの名無しさん
2022/10/26(水) 21:23:18.21ID:OrdcPqRc オーク達「」が真であることは、
この世界の神である出題者が保証してるわけだな?
この世界の神である出題者が保証してるわけだな?
841デフォルトの名無しさん
2022/10/26(水) 21:38:57.12ID:Bjop1AC4 出題者が嘘をついていて、オークがそのような発言をしていない可能性もある
842デフォルトの名無しさん
2022/10/27(木) 01:22:34.18ID:s7i1htqL843デフォルトの名無しさん
2022/10/27(木) 09:19:06.82ID:Uf+5HE/G844デフォルトの名無しさん
2022/10/27(木) 14:26:07.23ID:QRorZadJ845デフォルトの名無しさん
2022/10/29(土) 19:11:19.58ID:O3TXZpYa お題
Kの倍数の桁の和
自然数nに対してf(n)をnの10進表示の各桁の和とします
(例 f(1024) = 1+2+4 = 7)
自然数kに対してg(k)を
g(k) = { f(n) | nはkの倍数である自然数 }
とします
入力kに対してg(k)を出力するコードを書いて下さい
Kの倍数の桁の和
自然数nに対してf(n)をnの10進表示の各桁の和とします
(例 f(1024) = 1+2+4 = 7)
自然数kに対してg(k)を
g(k) = { f(n) | nはkの倍数である自然数 }
とします
入力kに対してg(k)を出力するコードを書いて下さい
846デフォルトの名無しさん
2022/10/29(土) 19:33:57.73ID:uuZ1gbyy >>845
g(k)って必ずしも有限集合にならなくない?
g(k)って必ずしも有限集合にならなくない?
847デフォルトの名無しさん
2022/10/29(土) 19:39:30.16ID:O3TXZpYa848デフォルトの名無しさん
2022/10/30(日) 00:28:15.63ID:BQOGiCuF お題
プレーヤーの前に閉じた3つのドアがあります
1つのドアの後ろには景品の新車があります
2つのドアの後ろにははずれを意味するヤギがいます
プレーヤーは新車のドアを当てると新車がもらえます
プレーヤーが1つのドアを選択したあとに司会のモンティが残りのドアのうちヤギがいるドアを開けてヤギを見せます
ここでプレーヤーは「最初に選んだドアを残っている開けられていないドアに変更してもよい」と言われます
ここでプレーヤーはドアを変更すべきだろうか?
乱数を使ったシミュレーションで答えを求めてください
プレーヤーの前に閉じた3つのドアがあります
1つのドアの後ろには景品の新車があります
2つのドアの後ろにははずれを意味するヤギがいます
プレーヤーは新車のドアを当てると新車がもらえます
プレーヤーが1つのドアを選択したあとに司会のモンティが残りのドアのうちヤギがいるドアを開けてヤギを見せます
ここでプレーヤーは「最初に選んだドアを残っている開けられていないドアに変更してもよい」と言われます
ここでプレーヤーはドアを変更すべきだろうか?
乱数を使ったシミュレーションで答えを求めてください
849デフォルトの名無しさん
2022/10/30(日) 03:55:05.76ID:KHak5nKt850デフォルトの名無しさん
2022/10/30(日) 08:09:55.23ID:oF72FRjI ドアを変更するかどうかのところはランダムにする必要無くない?
二択なので一方に決めていれば残りが逆側の確率
二択なので一方に決めていれば残りが逆側の確率
851デフォルトの名無しさん
2022/10/30(日) 10:05:48.56ID:Rpnmj8SE まぁ
交換戦略「必ず交換する」
非交換戦略「決して交換しない」
確率交換戦略「ある分布に従って確率的に交換するかしないか決める」
で答えが変わる事を確認せよだからな
ある意味最初2つの戦略も最後の戦略の特別な場合
交換戦略「必ず交換する」
非交換戦略「決して交換しない」
確率交換戦略「ある分布に従って確率的に交換するかしないか決める」
で答えが変わる事を確認せよだからな
ある意味最初2つの戦略も最後の戦略の特別な場合
852デフォルトの名無しさん
2022/10/30(日) 11:47:05.86ID:0KuBg4yb お題N x Nのルービックキューブのパターン数を求めよ
853デフォルトの名無しさん
2022/10/30(日) 18:39:10.46ID:KHak5nKt >>850
なるほど。
なるほど。
854デフォルトの名無しさん
2022/10/30(日) 18:54:42.34ID:Sqe0pI7B モンティ・ホール問題のシミュレートのように見えて実はちょっと違う
モンキーホール問題だったのだ
モンキーホール問題だったのだ
855デフォルトの名無しさん
2022/10/30(日) 20:02:07.15ID:4vBwn6CZ856デフォルトの名無しさん
2022/10/31(月) 00:39:33.45ID:MKojko7I お題 ジュールトムソン効果っぽいものをシミュレーションで再現せよ
857デフォルトの名無しさん
2022/11/04(金) 07:13:30.92ID:jLlmakBU お題:1~10までの合計を求めよ
*ただしライブラリ、ループ文を使わないこと
*ただしライブラリ、ループ文を使わないこと
858デフォルトの名無しさん
2022/11/04(金) 07:18:56.49ID:yh54R4RT >>857 PHP
55
55
859デフォルトの名無しさん
2022/11/04(金) 08:24:04.42ID:TDQ1gw2t (1+10)*5
860デフォルトの名無しさん
2022/11/04(金) 12:00:50.88ID:ryvUUS8Q >>857 cmd
set /a "A=1, B=10, (B-A+1)/2*(A+B)+(B-A+1)%2*(A+B)/2" &rem A≦B
set /a "A=1, B=10, (B-A+1)/2*(A+B)+(B-A+1)%2*(A+B)/2" &rem A≦B
861デフォルトの名無しさん
2022/11/04(金) 15:50:39.28ID:q0UsXtCi 1+2+3+4+5+6+7+8+9+10
862デフォルトの名無しさん
2022/11/04(金) 15:52:05.99ID:TBUnPbqZ863デフォルトの名無しさん
2022/11/04(金) 16:28:57.36ID:q0UsXtCi 整数とは書いてないな
三角数とか実数とか何か別のものを想定してるかもしれない
三角数とか実数とか何か別のものを想定してるかもしれない
864デフォルトの名無しさん
2022/11/04(金) 16:32:28.85ID:q0UsXtCi 高級言語なら大抵暗黙のうちにライブラリは使ってるだろうし内部的にループも使ってるかもしれない
ループの定義も問題になるかと
gotoは?再帰は?列挙は?...
ループの定義も問題になるかと
gotoは?再帰は?列挙は?...
865デフォルトの名無しさん
2022/11/04(金) 16:36:48.58ID:BHFqhq9y866デフォルトの名無しさん
2022/11/04(金) 16:55:47.69ID:q0UsXtCi 「その場合」に限定する理由は無いよね?
867デフォルトの名無しさん
2022/11/04(金) 17:35:42.12ID:u3TD418O868デフォルトの名無しさん
2022/11/04(金) 18:32:31.67ID:iggZ7AM6 そう思ってない人もいる
869デフォルトの名無しさん
2022/11/04(金) 18:59:46.26ID:u3TD418O 思ってない人は具体的にどう言う定義があるのか書けばいいんじゃね?
870デフォルトの名無しさん
2022/11/04(金) 19:06:50.77ID:iggZ7AM6 ちょっと前のレスくらい読め
871デフォルトの名無しさん
2022/11/04(金) 19:18:35.30ID:u3TD418O ん?
ならなにを言いたいのかわからんわ
ならなにを言いたいのかわからんわ
872デフォルトの名無しさん
2022/11/04(金) 19:20:02.13ID:iggZ7AM6 わからないなら無理に書き込まなくていいよ
873デフォルトの名無しさん
2022/11/04(金) 19:54:59.56ID:u3TD418O ごめん、説明できないならいいや
874デフォルトの名無しさん
2022/11/05(土) 14:37:23.18ID:wb4h3pkZ875デフォルトの名無しさん
2022/11/05(土) 22:37:38.99ID:ik3uUvNv876デフォルトの名無しさん
2022/11/05(土) 23:35:33.60ID:WGyFluMA 10*11/2
877デフォルトの名無しさん
2022/11/06(日) 03:33:15.03ID:V4pkDxVq >>857
Kotlin
https://paiza.io/projects/uWXy93c98CoNzF0o2H_wgQ
ループ文は使わず再帰でなんとかした。
(1..10).sum() や (1..10).reduce { a, n -> a + n } でも結果は出るが sum() や reduce() がライブラリにある拡張関数なので没。
10 * 11 / 2 とか 55 を直接出すのはプログラム作る意味がほとんどないような感じがするので止めた。
Kotlin
https://paiza.io/projects/uWXy93c98CoNzF0o2H_wgQ
ループ文は使わず再帰でなんとかした。
(1..10).sum() や (1..10).reduce { a, n -> a + n } でも結果は出るが sum() や reduce() がライブラリにある拡張関数なので没。
10 * 11 / 2 とか 55 を直接出すのはプログラム作る意味がほとんどないような感じがするので止めた。
878デフォルトの名無しさん
2022/11/06(日) 04:47:10.33ID:p1AlQ8ne お題が、正方形や三角形の面積を求めるのと
同程度に簡単な式だしなあ
同程度に簡単な式だしなあ
879デフォルトの名無しさん
2022/11/06(日) 08:11:23.79ID:l6ScHNeb Haskell
sum [1..10]
sum [1..10]
880デフォルトの名無しさん
2022/11/06(日) 08:35:41.45ID:5UCgIOa9881デフォルトの名無しさん
2022/11/06(日) 09:08:00.03ID:aYMPlSSq 一垓にそうは言えないのでは
ループを使わないの意味が多くの数でもすぐ答えがでそうな処理を見たいのかもしれない
ループを使わないの意味が多くの数でもすぐ答えがでそうな処理を見たいのかもしれない
882デフォルトの名無しさん
2022/11/06(日) 09:25:21.24ID:p1AlQ8ne 掛け算割り算だと中途半端でアホで
足し算だと利口だとおっしゃる
足し算だと利口だとおっしゃる
883デフォルトの名無しさん
2022/11/06(日) 09:33:05.99ID:5UCgIOa9 和の公式を使うくらいなら55の方が良い
って話
なんで中途半端な最適化をするの?
って話
なんで中途半端な最適化をするの?
884デフォルトの名無しさん
2022/11/06(日) 09:38:06.42ID:gK09y9Q8 1^n + 2^n +・・・+(10^25)^n
n=10、 n=-17
の手段選ばすとかは?
25条はぎりふつうループでは困難かとおもえる数値を適当にいまおもいついた
n=10、 n=-17
の手段選ばすとかは?
25条はぎりふつうループでは困難かとおもえる数値を適当にいまおもいついた
885デフォルトの名無しさん
2022/11/06(日) 10:54:00.31ID:Zb5xxfES = 10+(9+1)+(8+2)+(7+3)+(4+6)+5
= 10+10+ 10+ 10+ 10+ 5
= 10 + (10 * ((10/2)-1))+5
= (10 * ((10/2)-1))+10+5
= x(0.5x-1)+1.5x
= 10+10+ 10+ 10+ 10+ 5
= 10 + (10 * ((10/2)-1))+5
= (10 * ((10/2)-1))+10+5
= x(0.5x-1)+1.5x
886デフォルトの名無しさん
2022/11/06(日) 12:06:08.03ID:5iQhHwnm こうどなじょうほうせん を愉しむための問題でしょ
887デフォルトの名無しさん
2022/11/06(日) 15:29:02.07ID:RIYDMAGE と思って>>863を書いたんだけど
888デフォルトの名無しさん
2022/11/06(日) 15:33:43.73ID:RIYDMAGE 1~10の合計
1から10までの合計
じゃなくて
1~10までの合計
っていうのも気になった
1から10までの合計
じゃなくて
1~10までの合計
っていうのも気になった
889デフォルトの名無しさん
2022/11/06(日) 17:04:56.12ID:PNCv3I6p 1~10までの実数の合計って言ってる奴は有限の値に収束するとでも思っているか
890デフォルトの名無しさん
2022/11/06(日) 18:24:36.01ID:S6zCBHE1891デフォルトの名無しさん
2022/11/06(日) 18:35:07.31ID:mzFwuoQr >>890
合計にはdx関係ないぞ...
合計にはdx関係ないぞ...
892デフォルトの名無しさん
2022/11/06(日) 18:37:14.41ID:PNCv3I6p 低レベルすぎて草
1以上10以下の実数全体の集合をAとすると
#A = ?_1 ゆえに Σ_{λ∈A}λ は有限の値を取らない
1以上10以下の実数全体の集合をAとすると
#A = ?_1 ゆえに Σ_{λ∈A}λ は有限の値を取らない
893デフォルトの名無しさん
2022/11/06(日) 18:38:48.30ID:PNCv3I6p 文字化けしたか
「#A = 連続体濃度」
「#A = 連続体濃度」
894デフォルトの名無しさん
2022/11/06(日) 18:48:29.30ID:qhQ571Br なんか足すと一見無限になりそうだけど
ある区間a<bの間にa<c<bとなるcが取れなくなることはありえないよね?
ある区間a<bの間にa<c<bとなるcが取れなくなることはありえないよね?
895デフォルトの名無しさん
2022/11/06(日) 19:07:23.07ID:9PA1hevU896デフォルトの名無しさん
2022/11/06(日) 19:12:17.73ID:PNCv3I6p >>895
和が発散する説明はすでにしてあるんだが何を言いたいの
和が発散する説明はすでにしてあるんだが何を言いたいの
897デフォルトの名無しさん
2022/11/06(日) 19:14:51.13ID:9PA1hevU Q:和を求めよ
A:和は存在しない
A:和は存在しない
898デフォルトの名無しさん
2022/11/06(日) 19:15:52.52ID:9PA1hevU 発散とか収束とか
意味をわかって使わないと恥ずかしいぞ
意味をわかって使わないと恥ずかしいぞ
899デフォルトの名無しさん
2022/11/06(日) 19:17:22.08ID:PNCv3I6p >>895みたいなこと言う奴が解析の基礎すら理解できてるとすら思えないが
900デフォルトの名無しさん
2022/11/06(日) 19:17:36.32ID:9PA1hevU >>892が最高に恥ずかしい
901デフォルトの名無しさん
2022/11/06(日) 19:19:08.56ID:9PA1hevU >>899
最高に笑える書き込みありがとう
最高に笑える書き込みありがとう
902デフォルトの名無しさん
2022/11/06(日) 19:19:25.97ID:PNCv3I6p 数学的に具体的な反論が一切ないじゃん
バカなの
バカなの
903デフォルトの名無しさん
2022/11/06(日) 19:21:59.86ID:aYMPlSSq ぽまえら
餅付いて >>857 を嫁
餅付いて >>857 を嫁
904デフォルトの名無しさん
2022/11/06(日) 19:23:24.47ID:9PA1hevU >>892を見ただけでアホだとわかる
905デフォルトの名無しさん
2022/11/06(日) 19:24:24.94ID:PNCv3I6p906デフォルトの名無しさん
2022/11/06(日) 19:28:25.36ID:9PA1hevU907デフォルトの名無しさん
2022/11/06(日) 19:30:41.70ID:9PA1hevU 1以上10以下の実数の総和が存在しないことなんて
誰でもわかる
和が存在するなんて主張はしてないから勘違いしないように
誰でもわかる
和が存在するなんて主張はしてないから勘違いしないように
908デフォルトの名無しさん
2022/11/06(日) 19:31:28.37ID:PNCv3I6p909デフォルトの名無しさん
2022/11/06(日) 19:35:38.89ID:9PA1hevU 和が存在しないというならそれが答え
の意味がわからなかったかな?
その次の文は和の存在とは関係ない
君への宿題
の意味がわからなかったかな?
その次の文は和の存在とは関係ない
君への宿題
910デフォルトの名無しさん
2022/11/06(日) 19:37:43.37ID:PNCv3I6p >>909
任意のRの開区間に対してその元の和が有限の値になる場合何てないんだから
「和が存在しないというならそれが答え」なんて発言は問題の本質を理解していないバカの発言だろ
人に宿題出す前に算数からやり直せよ
任意のRの開区間に対してその元の和が有限の値になる場合何てないんだから
「和が存在しないというならそれが答え」なんて発言は問題の本質を理解していないバカの発言だろ
人に宿題出す前に算数からやり直せよ
911デフォルトの名無しさん
2022/11/06(日) 19:40:06.40ID:eRXytuty 【悲報】アスペ君、今日も元気。。。
912デフォルトの名無しさん
2022/11/06(日) 19:46:26.35ID:Zb5xxfES プログラミングのお題なんだから1+2+に決まってるだろ。
少数を含めた1から10までに考えられる数値を足すとかできるわけねえだろ。
少数を含めた1から10までに考えられる数値を足すとかできるわけねえだろ。
913デフォルトの名無しさん
2022/11/06(日) 19:47:59.95ID:9PA1hevU914デフォルトの名無しさん
2022/11/06(日) 19:48:45.29ID:9PA1hevU >>912
floatやdoubleなら有限だね
floatやdoubleなら有限だね
915デフォルトの名無しさん
2022/11/06(日) 19:49:37.79ID:PNCv3I6p >>913
お気持ちで数学を語るのやめてくれませんかね
はなはだ不愉快です
「任意のRの開区間に対してその元の和」に対して有限の値を取らないという以外にどんな有意味なモデルが取り得るんですかね
バカすぎて日本語の意味すら理解できてなさそうだけど
お気持ちで数学を語るのやめてくれませんかね
はなはだ不愉快です
「任意のRの開区間に対してその元の和」に対して有限の値を取らないという以外にどんな有意味なモデルが取り得るんですかね
バカすぎて日本語の意味すら理解できてなさそうだけど
916デフォルトの名無しさん
2022/11/06(日) 19:49:56.13ID:9PA1hevU 決まってるといくら主張しても
お題に書いてないんだから
どう解釈されても出題者が悪い
お題に書いてないんだから
どう解釈されても出題者が悪い
917デフォルトの名無しさん
2022/11/06(日) 19:51:41.99ID:9PA1hevU918デフォルトの名無しさん
2022/11/06(日) 19:52:43.83ID:9PA1hevU >>863に数学っぽい話あったか?
919デフォルトの名無しさん
2022/11/06(日) 19:52:59.97ID:PNCv3I6p920デフォルトの名無しさん
2022/11/06(日) 19:53:54.13ID:9PA1hevU >>919
それ別の人
それ別の人
921デフォルトの名無しさん
2022/11/06(日) 19:55:00.86ID:9PA1hevU922デフォルトの名無しさん
2022/11/06(日) 19:55:05.02ID:PNCv3I6p >>920
>和が存在しないとうならそれが答え
って和が存在する有意義なモデルがあるって言う前提で話してますよね?
もしそうじゃないならこれはどういう意図で行ったんですか?
ちなみに続く3.5云々の意味もよく分かってません
>和が存在しないとうならそれが答え
って和が存在する有意義なモデルがあるって言う前提で話してますよね?
もしそうじゃないならこれはどういう意図で行ったんですか?
ちなみに続く3.5云々の意味もよく分かってません
923デフォルトの名無しさん
2022/11/06(日) 19:56:03.75ID:aYMPlSSq もうこりゃ発散とか収束とか言う前に就職の心配したほうがいいな
924デフォルトの名無しさん
2022/11/06(日) 19:57:33.13ID:9PA1hevU >>922
落ち着いてから書き込んでね
落ち着いてから書き込んでね
925デフォルトの名無しさん
2022/11/06(日) 19:59:09.36ID:PNCv3I6p926デフォルトの名無しさん
2022/11/06(日) 20:01:35.14ID:9PA1hevU 数学を語りたがってるのはお前と>>890だけだって
だから落ち着け
だから落ち着け
927デフォルトの名無しさん
2022/11/06(日) 20:06:58.14ID:9PA1hevU928デフォルトの名無しさん
2022/11/06(日) 20:07:53.80ID:Zb5xxfES 問題は出題者の意図を読み取ることが重要
1~10までの整数の和の事だろうなと考えるのが低レベルとは思えない。
常識で考えればそうなる
できればその高レベルのプログラムとやらを説明してほしいものだな。
1~10までの整数の和の事だろうなと考えるのが低レベルとは思えない。
常識で考えればそうなる
できればその高レベルのプログラムとやらを説明してほしいものだな。
929デフォルトの名無しさん
2022/11/06(日) 20:12:04.95ID:9PA1hevU 一応プログラム板なんだからさ
解釈の多様性を多少は意識しようよ
プログラミング言語だったら「動作未定義」
曖昧な仕様書で中国人に発注したら
一番都合の良い解釈をされてとんでもないソフトになるぞ
解釈の多様性を多少は意識しようよ
プログラミング言語だったら「動作未定義」
曖昧な仕様書で中国人に発注したら
一番都合の良い解釈をされてとんでもないソフトになるぞ
930デフォルトの名無しさん
2022/11/06(日) 20:17:19.25ID:Zb5xxfES プログラムのお題なんだから、
プログラムで実現できないってのは答えにはならんよ。
国語の問題じゃねえんだから、
プログラムとして成立する答えを出せよ
プログラムで実現できないってのは答えにはならんよ。
国語の問題じゃねえんだから、
プログラムとして成立する答えを出せよ
931デフォルトの名無しさん
2022/11/06(日) 20:24:40.28ID:9PA1hevU 国語の問題じゃねえんだから
出題者の意図を好意的に汲み取る必要はないんだよ
出題者の意図を好意的に汲み取る必要はないんだよ
932デフォルトの名無しさん
2022/11/06(日) 20:26:21.60ID:mzFwuoQr933デフォルトの名無しさん
2022/11/06(日) 20:32:00.92ID:9PA1hevU934デフォルトの名無しさん
2022/11/06(日) 20:38:00.65ID:mzFwuoQr >>933
お前にアンカーしてるわけでもないのに絡んでくるとかあたおかすぎる
お前にアンカーしてるわけでもないのに絡んでくるとかあたおかすぎる
935デフォルトの名無しさん
2022/11/06(日) 20:59:57.69ID:Zb5xxfES 1から10までの整数の和では無い可能性があるから、
その場合はプログラムでは実現できないって言いたいだけだろ
整数の和として答えてるプログラムを低レベルってどういことやねん。
素直に受け取ればいいものを曲解して不可能に持って行ってるだけだろ
その場合はプログラムでは実現できないって言いたいだけだろ
整数の和として答えてるプログラムを低レベルってどういことやねん。
素直に受け取ればいいものを曲解して不可能に持って行ってるだけだろ
936デフォルトの名無しさん
2022/11/06(日) 21:02:11.02ID:9PA1hevU 「整数の和として答えてるプログラムを低レベルってどういことやねん。」
だれがそんなことかいた?
だれがそんなことかいた?
937デフォルトの名無しさん
2022/11/06(日) 21:04:22.43ID:9PA1hevU938デフォルトの名無しさん
2022/11/06(日) 21:07:02.93ID:tOVlE3Vc939デフォルトの名無しさん
2022/11/07(月) 06:42:16.97ID:C4s2+P7f 仕事では御免だが
解釈の余地を残すことが娯楽では大切だって良く分かる例
解釈の余地を残すことが娯楽では大切だって良く分かる例
940デフォルトの名無しさん
2022/11/07(月) 15:08:59.94ID:4okW5BTf お題:1/1+1/2+...+1/nの合計を求め、分母と分子を整数で出力せよ。
*ただしライブラリを使わないこと
*ただしライブラリを使わないこと
941デフォルトの名無しさん
2022/11/07(月) 15:35:37.09ID:Sowq9nFL942デフォルトの名無しさん
2022/11/07(月) 15:48:12.36ID:wln8XcGb943デフォルトの名無しさん
2022/11/07(月) 17:42:49.96ID:dFD6FGsc gcdとかsumとかprintはライブラリじゃないの?
944デフォルトの名無しさん
2022/11/07(月) 18:21:56.48ID:UfWjgfnM 1+・・・+1/n の小数点n桁目はいくらか
945デフォルトの名無しさん
2022/11/07(月) 18:47:35.11ID:Fdh4LiCB946デフォルトの名無しさん
2022/11/07(月) 20:48:13.34ID:OXo72DE3947デフォルトの名無しさん
2022/11/07(月) 20:49:01.52ID:FonngYyy948デフォルトの名無しさん
2022/11/07(月) 21:06:30.94ID:Fdh4LiCB 組み込み関数はライブラリじゃないと
ライブラリと呼ばない言語なら何でもありか
ライブラリと呼ばない言語なら何でもありか
949デフォルトの名無しさん
2022/11/07(月) 21:08:54.69ID:Fdh4LiCB C言語上のただのintの乗算でもライブラリが必要な環境もあるわけだけど
950デフォルトの名無しさん
2022/11/07(月) 21:34:22.19ID:q2YPtCXX アルゴリズムが見たいのでしょうね
951デフォルトの名無しさん
2022/11/07(月) 21:35:14.79ID:kmERiYaX まあ今時組込とかでもなきゃintの乗算でライブラリ呼び出す環境もあまりないけどそもそも入出力はライブラリ任せだからねぇ
952デフォルトの名無しさん
2022/11/07(月) 23:30:13.24ID:3GzmFPX6953デフォルトの名無しさん
2022/11/08(火) 01:53:36.92ID:s644Ul/+954デフォルトの名無しさん
2022/11/08(火) 21:45:51.73ID:dCnZkmaL >>940
https://ideone.com/zNHUB9
・「ただし」以下は無視した回答
function [n, d] = f(n)
[n, d] = rat(sum(1./(1:n)), 1e-7);
end
https://ideone.com/zNHUB9
・「ただし」以下は無視した回答
function [n, d] = f(n)
[n, d] = rat(sum(1./(1:n)), 1e-7);
end
955デフォルトの名無しさん
2022/11/08(火) 21:46:18.88ID:dCnZkmaL >>940 octave
https://ideone.com/zNHUB9
・「ただし」以下は無視した回答
function [n, d] = f(n)
[n, d] = rat(sum(1./(1:n)), 1e-7);
end
https://ideone.com/zNHUB9
・「ただし」以下は無視した回答
function [n, d] = f(n)
[n, d] = rat(sum(1./(1:n)), 1e-7);
end
956デフォルトの名無しさん
2022/11/09(水) 00:46:04.53ID:oWTDq5DR >>940 octave
https://ideone.com/zNHUB9
・「ただし」以下は無視した回答
function [n, d] = f(n)
[n, d] = rat(sum(1./(1:n)), 1e-7);
end
https://ideone.com/zNHUB9
・「ただし」以下は無視した回答
function [n, d] = f(n)
[n, d] = rat(sum(1./(1:n)), 1e-7);
end
957デフォルトの名無しさん
2022/11/09(水) 00:46:10.95ID:oWTDq5DR >>940 octave
https://ideone.com/zNHUB9
・「ただし」以下は無視した回答
function [n, d] = f(n)
[n, d] = rat(sum(1./(1:n)), 1e-7);
end
https://ideone.com/zNHUB9
・「ただし」以下は無視した回答
function [n, d] = f(n)
[n, d] = rat(sum(1./(1:n)), 1e-7);
end
958デフォルトの名無しさん
2022/11/09(水) 01:55:16.87ID:QvIAsso6 なぜ同じ書き込みが4つもある?
959デフォルトの名無しさん
2022/11/09(水) 02:02:28.03ID:Ewgu9c/a お題スレの7不思議に加えよう
960デフォルトの名無しさん
2022/11/09(水) 12:49:26.26ID:AHjhHUHj お題
入力した文字列を以下の4種類に分けた文字列を作成する関数を作成してください
・アルファベット大文字
・アルファベット小文字
・数字
・それ以外の文字
入力した文字列を以下の4種類に分けた文字列を作成する関数を作成してください
・アルファベット大文字
・アルファベット小文字
・数字
・それ以外の文字
961デフォルトの名無しさん
2022/11/09(水) 18:55:40.68ID:dDwxEUkd Array.from(input).filter(c=>c.match(/[A-Z]/)).join("")
+ Array.from(input).filter(c=>c.match(/[a-z]/)).join("")
+ Array.from(input).filter(c=>c.match(/[0-9]/)).join("")
+ Array.from(input).filter(c=>c.match(/[^A-Za-z0-9]/)).join("")
+ Array.from(input).filter(c=>c.match(/[a-z]/)).join("")
+ Array.from(input).filter(c=>c.match(/[0-9]/)).join("")
+ Array.from(input).filter(c=>c.match(/[^A-Za-z0-9]/)).join("")
962デフォルトの名無しさん
2022/11/09(水) 20:05:26.68ID:1g3d+RJJ >>960 octave
https://ideone.com/SHPVub
function c = f(s)
u = isstrprop(s, 'upper');
l = isstrprop(s, 'lower');
d = isstrprop(s, 'digit');
c = {s(u) s(l) s(d) s(~(u | l | d))};
end
https://ideone.com/SHPVub
function c = f(s)
u = isstrprop(s, 'upper');
l = isstrprop(s, 'lower');
d = isstrprop(s, 'digit');
c = {s(u) s(l) s(d) s(~(u | l | d))};
end
963デフォルトの名無しさん
2022/11/10(木) 01:00:36.16ID:UXFdZVAF >>960
Haskell
https://ideone.com/jMHNnq
isUpper = flip elem [ 'A' .. 'Z' ]
isLower = flip elem [ 'a' .. 'z' ]
isNum = flip elem [ '0' .. '9' ]
isOthers = id
. all not
. zipWith ( $ ) [ isUpper, isLower, isNum ]
. repeat
sieve str = [ filter cond str |
cond <- [ isUpper, isLower, isNum, isOthers ] ]
testStr = "foldl1 :: Foldable t => (a -> a -> a) -> t a -> a"
main = mapM_ print $ sieve testStr
Haskell
https://ideone.com/jMHNnq
isUpper = flip elem [ 'A' .. 'Z' ]
isLower = flip elem [ 'a' .. 'z' ]
isNum = flip elem [ '0' .. '9' ]
isOthers = id
. all not
. zipWith ( $ ) [ isUpper, isLower, isNum ]
. repeat
sieve str = [ filter cond str |
cond <- [ isUpper, isLower, isNum, isOthers ] ]
testStr = "foldl1 :: Foldable t => (a -> a -> a) -> t a -> a"
main = mapM_ print $ sieve testStr
964デフォルトの名無しさん
2022/11/10(木) 01:50:38.82ID:j8kXq8l6965デフォルトの名無しさん
2022/11/10(木) 02:29:28.73ID:kjI8mJgQ >>961
俺も正規表現でやりたいけどこっちのほうが5倍速かった…
コンパイル言語に比べたら目くそ鼻くそだがこんだけ違うと考えちゃうな
const str = 'aA0!bB1@cC2#dD3$eE4%'.repeat(500);
let oomoji = [], komoji = [], suuji = [], sonota = [];
for (const c of str) {
let cp;
switch (true) {
case 65 <= cp && cp <= 90:
oomoji.push(c);
break;
case 97 <= cp && cp <= 122:
komoji.push(c);
break;
case 48 <= cp && cp <= 57:
suuji.push(c);
break;
default:
sonota.push(c);
}
}
[oomoji, komoji, suuji, sonota] = [oomoji, komoji, suuji, sonota]
.map(a => a.join``);
// console.table({oomoji, komoji, suuji, sonota});
俺も正規表現でやりたいけどこっちのほうが5倍速かった…
コンパイル言語に比べたら目くそ鼻くそだがこんだけ違うと考えちゃうな
const str = 'aA0!bB1@cC2#dD3$eE4%'.repeat(500);
let oomoji = [], komoji = [], suuji = [], sonota = [];
for (const c of str) {
let cp;
switch (true) {
case 65 <= cp && cp <= 90:
oomoji.push(c);
break;
case 97 <= cp && cp <= 122:
komoji.push(c);
break;
case 48 <= cp && cp <= 57:
suuji.push(c);
break;
default:
sonota.push(c);
}
}
[oomoji, komoji, suuji, sonota] = [oomoji, komoji, suuji, sonota]
.map(a => a.join``);
// console.table({oomoji, komoji, suuji, sonota});
966デフォルトの名無しさん
2022/11/10(木) 02:37:16.98ID:kjI8mJgQ967デフォルトの名無しさん
2022/11/10(木) 07:33:44.51ID:oQpocXYl968デフォルトの名無しさん
2022/11/10(木) 07:56:41.06ID:3FlvzqxM969デフォルトの名無しさん
2022/11/10(木) 14:11:20.86ID:oQpocXYl >>960
Kotlin
https://paiza.io/projects/Qfx9ljGCsICVDui8fcn-0A
Unicodeで作った。サロゲートペアの文字もちゃんと扱える。
判別には Java の Character クラスのメソッドを利用している。
これだといわゆる全角の数字は数字扱いになるが漢数字は数字と分類してくれない。
ローマ数字はアルファベット大文字扱い。
日本語の「あ」とかもアルファベットとして扱われるが大文字でも小文字でもないのでそれ以外の文字に追加されるようにした。
コントロールコードは \uXXXX 形式になるようにした。
Kotlin
https://paiza.io/projects/Qfx9ljGCsICVDui8fcn-0A
Unicodeで作った。サロゲートペアの文字もちゃんと扱える。
判別には Java の Character クラスのメソッドを利用している。
これだといわゆる全角の数字は数字扱いになるが漢数字は数字と分類してくれない。
ローマ数字はアルファベット大文字扱い。
日本語の「あ」とかもアルファベットとして扱われるが大文字でも小文字でもないのでそれ以外の文字に追加されるようにした。
コントロールコードは \uXXXX 形式になるようにした。
970デフォルトの名無しさん
2022/11/10(木) 18:57:30.40ID:3zaWz6R+ >>960
PowerShell
function StrClassify($s)
{
"\P{Lu}", "\P{Ll}", "\P{N}", "[\p{Lu}\p{Ll}\p{N}]" |% {$s -creplace $_}
}
StrClassify "Κωνσταντινούπολιςは1453年にİstanbulと改称された。`n"
StrClassify "塩化銅(Ⅱ)は水中で CuCl₂ ⇄ Cu²⁺ + 2Cl⁻ のように電離する。"
[実行結果]
Κİ
ωνσταντινούπολιςstanbul
1453
は年にと改称された。
CCCC
ulul
Ⅱ₂²2
塩化銅()は水中で ⇄ ⁺ + ⁻ のように電離する。
PowerShell
function StrClassify($s)
{
"\P{Lu}", "\P{Ll}", "\P{N}", "[\p{Lu}\p{Ll}\p{N}]" |% {$s -creplace $_}
}
StrClassify "Κωνσταντινούπολιςは1453年にİstanbulと改称された。`n"
StrClassify "塩化銅(Ⅱ)は水中で CuCl₂ ⇄ Cu²⁺ + 2Cl⁻ のように電離する。"
[実行結果]
Κİ
ωνσταντινούπολιςstanbul
1453
は年にと改称された。
CCCC
ulul
Ⅱ₂²2
塩化銅()は水中で ⇄ ⁺ + ⁻ のように電離する。
971デフォルトの名無しさん
2022/11/10(木) 20:35:16.34ID:V5vZiHvW >>944をやってみたらPythonで300くらいでオーバーフローになった
分子と分母をべつべつに計算してp/qだったとすると
int(10^n * p / q ) % 10 が求める答えのはずだが、この計算ができなかった
分子と分母をべつべつに計算してp/qだったとすると
int(10^n * p / q ) % 10 が求める答えのはずだが、この計算ができなかった
972デフォルトの名無しさん
2022/11/10(木) 20:44:38.28ID:V5vZiHvW ここで問題変更でp/qの小数点n桁目を求める問題にすればいいか
オーバーフローしないように×10ずつして整数部分は無視していけば整数演算の範囲内にできるか
忘れたがユークリッド互除法みたいな?
オーバーフローしないように×10ずつして整数部分は無視していけば整数演算の範囲内にできるか
忘れたがユークリッド互除法みたいな?
973デフォルトの名無しさん
2022/11/10(木) 20:50:26.16ID:m98zu82a input.replace(/[^A-Z]/g,"")
+ input.replace(/[^a-z]/g,"")
+ input.replace(/[^0-9]/g,"")
+ input.replace(/[A-Za-z0-9]/g,"")
+ input.replace(/[^a-z]/g,"")
+ input.replace(/[^0-9]/g,"")
+ input.replace(/[A-Za-z0-9]/g,"")
974デフォルトの名無しさん
2022/11/10(木) 20:51:12.57ID:m98zu82a [/[^A-Z]/g, /[^a-z]/g, /[^0-9]/g, /[A-Za-z0-9]/g]
.map(r => input.replace(r,"")).join("")
.map(r => input.replace(r,"")).join("")
975971
2022/11/10(木) 21:10:50.60ID:V5vZiHvW976デフォルトの名無しさん
2022/11/10(木) 21:27:26.89ID:p27a51fr >>944
Haskell
https://ideone.com/2tUIFo
import Data.Ratio
hnn n = flip mod 10 $ truncate $ (* ( 10^n)) $ sum $ map recip [ 1%1..n%1 ]
main = print $ hnn 300
Haskell
https://ideone.com/2tUIFo
import Data.Ratio
hnn n = flip mod 10 $ truncate $ (* ( 10^n)) $ sum $ map recip [ 1%1..n%1 ]
main = print $ hnn 300
977デフォルトの名無しさん
2022/11/10(木) 21:45:52.91ID:KPTSzoDK お題 小数点第n位を求めるプログラムを作成せよ
978デフォルトの名無しさん
2022/11/10(木) 21:58:11.94ID:JknzoKCK >>977
何の?
何の?
979デフォルトの名無しさん
2022/11/11(金) 12:27:18.79ID:eQP0gwqb ルート4の
980デフォルトの名無しさん
2022/11/11(金) 13:33:07.98ID:XogJxnoW そんなむず過ぎるお題は過疎るのだ却下
981デフォルトの名無しさん
2022/11/11(金) 18:36:58.77ID:Jm4DMnci >>978
入力された実数
入力された実数
982デフォルトの名無しさん
2022/11/11(金) 20:10:51.65ID:+Uq9lyYZ (x*10**n)%10
983デフォルトの名無しさん
2022/11/12(土) 01:53:40.01ID:Y/i2pfZ3 お題
配列データと、同じ長さの確率の配列(合計値1)が与えられた時に、対応する確率で配列からデータを出力せよ
例
aa,bb,cc
0.4,0.5,0.1
→aa 40%, bb 50%, cc 10%で出力
配列データと、同じ長さの確率の配列(合計値1)が与えられた時に、対応する確率で配列からデータを出力せよ
例
aa,bb,cc
0.4,0.5,0.1
→aa 40%, bb 50%, cc 10%で出力
984デフォルトの名無しさん
2022/11/12(土) 08:50:36.22ID:yCEPOpQl >>983 Ruby
a = %w[aa bb cc]
p = [0.4, 0.5, 0.1]
f = -> (a, p) { r = rand; a[(0..a.size-2).find{ r < p[0.._1].sum } || a.size - 1] }
10.times{ print f[a, p] }
# => aabbccbbaaaaaabbbbbb
a = %w[aa bb cc]
p = [0.4, 0.5, 0.1]
f = -> (a, p) { r = rand; a[(0..a.size-2).find{ r < p[0.._1].sum } || a.size - 1] }
10.times{ print f[a, p] }
# => aabbccbbaaaaaabbbbbb
985デフォルトの名無しさん
2022/11/12(土) 10:10:20.03ID:g2vYgSbJ >>983
Haskell
https://ideone.com/UErkR7
import System.Random
import Data.List
randomDbls :: StdGen -> [ Double ]
randomDbls= randomRs (0,1)
chooseItem is ws r = let
folder a b = a : map ( + a ) b
selecter r ( i, ( f, t ) ) = f <= r && r < t
ts = foldr folder [ ] ws
fs = 0 : ts
ifts = zip is $ zip fs ts
in fst $ head $ filter ( selecter r ) ifts
main = do
rds <- ( return . randomDbls ) =<< getStdGen
print $ map (chooseItem ['A'..'C' ] [0.4,0.5,0.1] ) $ take 100 rds
Haskell
https://ideone.com/UErkR7
import System.Random
import Data.List
randomDbls :: StdGen -> [ Double ]
randomDbls= randomRs (0,1)
chooseItem is ws r = let
folder a b = a : map ( + a ) b
selecter r ( i, ( f, t ) ) = f <= r && r < t
ts = foldr folder [ ] ws
fs = 0 : ts
ifts = zip is $ zip fs ts
in fst $ head $ filter ( selecter r ) ifts
main = do
rds <- ( return . randomDbls ) =<< getStdGen
print $ map (chooseItem ['A'..'C' ] [0.4,0.5,0.1] ) $ take 100 rds
986デフォルトの名無しさん
2022/11/12(土) 10:19:35.32ID:uOtU06vW987デフォルトの名無しさん
2022/11/12(土) 14:34:06.57ID:Q9bJaddO >>983 ocaml
https://ideone.com/aDR0Do
let (<<) f g x = f (g x)
let cumsum =
List.rev << fst << List.fold_left (fun (a, s) f -> s +. f :: a, s +. f) ([], 0.)
let f xs =
let r = Random.float 1. in
fst << List.find ((<) r << snd) << List.combine xs << cumsum
https://ideone.com/aDR0Do
let (<<) f g x = f (g x)
let cumsum =
List.rev << fst << List.fold_left (fun (a, s) f -> s +. f :: a, s +. f) ([], 0.)
let f xs =
let r = Random.float 1. in
fst << List.find ((<) r << snd) << List.combine xs << cumsum
988デフォルトの名無しさん
2022/11/12(土) 16:47:04.36ID:We3Ba5Li >>983
コレでよかった
Haskell
https://ideone.com/WtPXzw
import System.Random
randomDbls :: StdGen -> [ Double ]
randomDbls= randomRs (0,1)
chooseItem (i:is) (w:ws) r | r < w = i
chooseItem (i:is) (w:ws) r = chooseItem is ws ( r - w )
main = do
rds <- ( return . randomDbls ) =<< getStdGen
print $ map (chooseItem ['A'..'C' ] [0.4,0.5,0.1] ) $ take 100 rds
コレでよかった
Haskell
https://ideone.com/WtPXzw
import System.Random
randomDbls :: StdGen -> [ Double ]
randomDbls= randomRs (0,1)
chooseItem (i:is) (w:ws) r | r < w = i
chooseItem (i:is) (w:ws) r = chooseItem is ws ( r - w )
main = do
rds <- ( return . randomDbls ) =<< getStdGen
print $ map (chooseItem ['A'..'C' ] [0.4,0.5,0.1] ) $ take 100 rds
989デフォルトの名無しさん
2022/11/12(土) 17:19:40.29ID:MirHjvCf990デフォルトの名無しさん
2022/11/12(土) 19:13:20.80ID:MirHjvCf https://ideone.com/8utmEg
元からあったコードをちょっといじったんだけど変換ミスがあった
元からあったコードをちょっといじったんだけど変換ミスがあった
991デフォルトの名無しさん
2022/11/13(日) 18:45:40.25ID:zjrUNZaB992デフォルトの名無しさん
2022/11/13(日) 19:01:26.14ID:ZCYlhUwL993デフォルトの名無しさん
2022/11/15(火) 08:06:01.58ID:XL64sJsG うめ
994デフォルトの名無しさん
2022/11/15(火) 09:22:13.74ID:x0rg5fHd お題:1辺がn文字の正四角形を表示せよ
1 <= n <= 8 とする
1 <= n <= 8 とする
995デフォルトの名無しさん
2022/11/15(火) 10:16:55.01ID:V1sKjJZc haskell
https://ideone.com/4Kd3el
sqStr n = ""
++ "\x250f" ++ r "\x2501" ++ "\x2513" ++ "\n"
++ r ( "\x2503" ++ r "\x2001" ++ "\x2503" ++ " \n" )
++ "\x2517" ++ r "\x2501" ++ "\x251b" ++ "\n"
where r = concat . replicate ( n-2 )
main = putStr $ sqStr 10
https://ideone.com/4Kd3el
sqStr n = ""
++ "\x250f" ++ r "\x2501" ++ "\x2513" ++ "\n"
++ r ( "\x2503" ++ r "\x2001" ++ "\x2503" ++ " \n" )
++ "\x2517" ++ r "\x2501" ++ "\x251b" ++ "\n"
where r = concat . replicate ( n-2 )
main = putStr $ sqStr 10
996デフォルトの名無しさん
2022/11/15(火) 20:16:12.10ID:r20LvnA2 >>994 octave
https://ideone.com/k9cAWw
function s = f(n)
s = repmat('#', n);
s(2:end-1, 2:end-1) = ' ';
end
https://ideone.com/k9cAWw
function s = f(n)
s = repmat('#', n);
s(2:end-1, 2:end-1) = ' ';
end
997デフォルトの名無しさん
2022/11/17(木) 21:39:57.15ID:BbSHYj/y うめ
998デフォルトの名無しさん
2022/11/17(木) 21:40:03.49ID:BbSHYj/y うめ
999デフォルトの名無しさん
2022/11/17(木) 21:40:08.22ID:BbSHYj/y うめ
1000デフォルトの名無しさん
2022/11/17(木) 23:04:00.66ID:W9+RkUIs 竹
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 516日 23時間 1分 3秒
新しいスレッドを立ててください。
life time: 516日 23時間 1分 3秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 【悲報】中国→日本行きの航空チケット、高市有事の影響で50万人分がキャンセルされる [834922174]
- 高市早苗「……なんて言ってみたw」中国「なんだ、言ってみただけかw」👈これで全部元通りになるという事実 [782460143]
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- んなっしょい🍬禁止🈲のお🏡
- 映画「ゼルダの伝説」、リンクとゼルダ姫が白人になってしまう。日本のものは日本人だろうが!! [592058334]
