プログラミングのお題スレ Part20at TECH
プログラミングのお題スレ Part20 - 暇つぶし2ch2:デフォルトの名無しさん
21/06/19 00:37:51.46 qGn/On1S.net
>>1
オツ

3:
21/06/19 07:27:57.12 NotTQLCm.net
>>1
お疲れ様です

4:デフォルトの名無しさん
21/06/19 09:51:25.47 bhsM+Hmb.net
>>1
haskell
putStrLn "乙"

5:デフォルトの名無しさん
21/06/19 11:32:47.24 HedGQGNJ.net
部分解答可
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土曜日なら指定の画像ファイルを表示

6:デフォルトの名無しさん
21/06/19 11:34:07.84 HedGQGNJ.net
解答例
#!/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

7:デフォルトの名無しさん
21/06/19 11:53:11.09 wmUlN/CJ.net
まだやってるのか

8:デフォルトの名無しさん
21/06/21 21:15:15.50 h4Y3M1Y8.net
0 と "n + 1" を任意に定義して自然数を作り、
足し算と掛け算を実装せよ
なお "n + 1" は次を満たすこと
・ n + 1 == m + 1 ⇒ n == m
・ n が自然数 ⇒ n + 1 は自然数
・ n が自然数 ⇒ n + 1 != 0

9:デフォルトの名無しさん
21/06/22 13:23:44.46 VRgeVVL3.net
お題
リストを受け取って、重複のないリストに分割してください
入力:[b,d,e,c,b,a,a,d,d,a]
出力:[a,b,c,d,e],[a,b,d],[a,d]

10:デフォルトの名無しさん
21/06/22 14:29:49.78 q0OZcNy5.net
「すいませーん パンください」
「なんだとー!パンクはダサくねえ!」

11:デフォルトの名無しさん
21/06/22 18:35:38.31 3KNNvFBI.net
>>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"]]

12:デフォルトの名無しさん
21/06/22 18:38:56.74 3KNNvFBI.net
FBIだ

13:デフォルトの名無しさん
21/06/22 19:37:22.20 KgqIpy+v.net
>>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]

14:デフォルトの名無しさん
21/06/23 00:49:21.38 1nP79viV.net
>>9
haskell
iimport Data.List
splitSet = transpose . group . sort
main = print $ splitSet $ "bdecbaadda"
----
["abcde","abd","ad"]

15:デフォルトの名無しさん
21/06/23 01:16:40.91 P132dmNh.net
>>9
pyth


16:on 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:])



17:デフォルトの名無しさん
21/06/23 03:03:47.96 yaBz/mVt.net
何分割するか指定がないんだからこれで十分だよね
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]

18:デフォルトの名無しさん
21/06/23 19:57:35.36 PDI/0UM/.net
>>9
Java
URLリンク(paiza.io)

19:デフォルトの名無しさん
21/06/23 19:59:10.71 VBbwJDrL.net
指定は無いがそうすると自明になりつまんなくなる、
つまり問題としてwell-definedじゃなくなるから、Ruby使ってる人は空気と行間を読む訓練をした方がいい

20:デフォルトの名無しさん
21/06/23 20:41:17.73 N3JUxele.net
皮肉を理解できないのは統合失調症の症状だそうで

21:デフォルトの名無しさん
21/06/23 23:35:40.56 gV4gb+yX.net
お題
正整数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

22:デフォルトの名無しさん
21/06/24 12:40:28.82 QkkrxV02.net
お題
月最後の金曜日をプレミアムフライデーといいますが
指定した年のプレミアムフライデー一覧を出力してください
入力: 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

23:デフォルトの名無しさん
21/06/24 13:22:13.95 mpRYRE1b.net
>>20
極小ってのはかんたんに分かるモンなの?

24:デフォルトの名無しさん
21/06/24 13:33:05.04 x/nvCroK.net
「極力小さく」だから
プログラマの能力でできる限り、
じゃないの?

25:デフォルトの名無しさん
21/06/24 14:07:33.05 mpRYRE1b.net
要するにこれエジプト分数だろ
極小かどうかが面倒くさい話だった
エジプト式分数 - Wikipedia
URLリンク(ja.wikipedia.org)

26:デフォルトの名無しさん
21/06/24 19:38:29.60 XMpTcDaC.net
>>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' )
}

27:デフォルトの名無しさん
21/06/24 19:39:02.06 XMpTcDaC.net
>>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) ]
}

28:デフォルトの名無しさん
21/06/24 22:03:03.66 HCLTIuII.net
>>21
Kotlin
URLリンク(paiza.io)
次の月の1日の曜日を求めてそこから何日引くかを計算して引いているだけ。
java.time.LocalDate クラス使っているので Java でも似たようなプログラムは作れると思う。

29:デフォルトの名無しさん
21/06/25 05:25:13.97 RM7Ajj8i.net
>>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"

30:デフォルトの名無しさん
21/06/25 05:30:47.47 RM7Ajj8i.net
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)

31:デフォルトの名無しさん
21/06/25 05:33:54.12 RM7Ajj8i.net
# 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回押して関数を一覧表示

32:デフォルトの名無しさん
21/06/25 05:50:35.99 RM7Ajj8i.net
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,

33:27
21/06/25 15:31:39.30 F/zdAmk3.net
>>21
C
URLリンク(paiza.io)
>>27のKotlinのやつと考え方は同じ。

34:デフォルトの名無しさん
21/06/25 21:10:31.51 kVdfg08P.net
ともかく最小とか入れてしまうと途端に難しくなる
できればいいんだよ

35:デフォルトの名無しさん
21/06/26 00:46:33.35 6gOgcdGN.net
>>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

36:デフォルトの名無しさん
21/06/26 05:00:02.78 m56tn/Vu.net
Rubyの公式リファレンスは docs.ruby-lang.org

37:デフォルトの名無しさん
21/06/30 18:30:07.65 fCthiOXz.net
お題: 年、月、週の初めの曜日を表す値(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倍)と考えて作って良い。
(なんだったら出力を画像にしても良い)

38:デフォルトの名無しさん
21/06/30 23:36:42.12 0jpC4Abq.net
今年は休日変則だな

39:デフォルトの名無しさん
21/07/01 03:39:10.59 fmzZ+/Bo.net
>>36
Kotlin
URLリンク(paiza.io)

40:デフォルトの名無しさん
21/07/01 08:32:02.86 rhoqKmqn.net
>>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(' ') }

41:デフォルトの名無しさん
21/07/01 15:44:48.02 fmzZ+/Bo.net
>>36
Kotlin
paiza.ioでHTML出力にして画像表示
URLリンク(paiza.io)

42:デフォルトの名無しさん
21/07/01 15:53:06.10 x5n7ySmh.net
>>40
しゅごい

43:39
21/07/01 19:49:58.87 rhoqKmqn.net
>>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 * ' ' }

44:
21/07/01 20:48:40.02 Es0JxggH.net
>>36
>週の初めの曜日を表す値(0=日曜日, 1=月曜日)を入力する
その条件、いるのですか?

45:デフォルトの名無しさん
21/07/01 21:15:18.27 FSqo0WtF.net
>>43
お前の存在、いるのですか?

46:
21/07/01 21:44:00.07 Es0JxggH.net
>>44
なぜ要らないとおもったのですか?

47:デフォルトの名無しさん
21/07/01 22:06:31.90 FSqo0WtF.net
>>45
誰も要らないとは言っていないのに要らないと言っているように感じられるのは
お前がお前自身のことを要らないと思っているからなのだろうな

48:デフォルトの名無しさん
21/07/02 10:06:20.83 6rZLVHEq.net
>>44
要る。

49:デフォルトの名無しさん
21/07/02 10:38:45.74 xu7tv1xS.net
>>43
キチ外だな
>>46
言い訳すんなアスペ
普通の人間は文脈読むだろ

50:デフォルトの名無しさん
21/07/02 13:39:10.26 E59Amcuv.net
本気で知らないんだろう
月曜始まりのカレンダーを見たことないご存じないとかじゃね?

51:デフォルトの名無しさん
21/07/02 16:10:17.73 lOCqtdeG.net
URLリンク(www.543life.com)

52:デフォルトの名無しさん
21/07/02 22:18:49.57 IHzKftMK.net
>>36
haskell
URLリンク(ideone.com)

53:デフォルトの名無しさん
21/07/02 22:25:49.60 6PmzgaZp.net
>>48
お前が一番日本語理解できてなくて草

54:デフォルトの名無しさん
21/07/02 22:59:04.30 bqpqPyM3.net
>>49
むしろ全てのカレンダーを月曜始まりにして欲しいぐらい

55:デフォルトの名無しさん
21/07/03 02:44:37.57 +PW8v28+.net
月月火水木金金

56:デフォルトの名無しさん
21/07/03 12:07:58.36 gq7PWL9B.net
オプションの話なんてどうでもいいけど
1日を左上始まりの方が合理的だと思う

57:デフォルトの名無しさん
21/07/03 18:17:25.88 IfvioC2j.net
どうかな
多くの場合
月の開始日を固定するより
曜日を固定した方が有用だ

月によって

58:デフォルトの名無しさん
21/07/03 18:34:34.91 8vTMQXC9.net
曜日固定の暦も提案されたけど採用されることはなかったんだよね

59:デフォルトの名無しさん
21/07/03 19:07:03.68 uSbSUvL9.net
まあ大抵の人は基本的に曜日で休みが決まってたりするしな

60:デフォルトの名無しさん
21/07/03 19:13:38.83 DPpwWmVc.net
28日×13月、最終月で調整、がシンプルで良かったのにな
年初の時期も夏至とか分かりやすい日にすれば良かったのに

61:デフォルトの名無しさん
21/07/03 21:26:36.17 IfvioC2j.net
暦は農業をするうえで細かく日を読む必要から作られ発展してきた
農閑期には日付が定められなかったことも
ヨーロッパの言語で前半は神の名が付けられ、後ろの方がテキトーなことからもその時代における重要度が推し量れる

62:デフォルトの名無しさん
21/07/03 21:35:30.23 TQwtnc11.net
そもそも古代ローマの暦では11-12月は名前がなかった

63:デフォルトの名無しさん
21/07/04 00:40:14.83 FJOBYcj7.net
エチオピアではエチオピア歴が今も使われており13月があったりする。
URLリンク(www.hope.or.jp)

64:39
21/07/04 08:11:39.86 iOGAyFs7.net
>>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 * ' ' }

65:39
21/07/05 00:26:38.86 e4Vm80Jj.net
>>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 * ' ' }

66:39
21/07/05 01:08:34.16 e4Vm80Jj.net
>>64 もバグ有り
> sw = m1.wday - s % 7
sw = (m1.wday - s) % 7

67:デフォルトの名無しさん
21/07/05 17:31:47.07 7Yd2cijs.net
>>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秒。

68:デフォルトの名無しさん
21/07/06 12:39:02.75 gfjghTPI.net
数学板から
お題
Σ[n:2〜∞]cos(n)/log(n)を小数第10まで求めよ
元々収束するか?で収束するなら10桁計算せよってついてたけど今のところ10桁計算してみせた人おらず
もちろん収束遅すぎて少し工夫しないと10桁出すのは難しいかなと

69:デフォルトの名無しさん
21/07/06 18:27:19.16 ifvAZrxB.net
>>67
わからない。

70:デフォルトの名無しさん
21/07/07 06:44:52.69 GHc1zSP4.net
>>67
チェザロ平均考えるとかかな
1万項の平均雑に計算したら-1.34までは収束してる感じ
URLリンク(ja.wikipedia.org)チェザロ平均

71:デフォルトの名無しさん
21/07/07 07:00:20.59 GHc1zSP4.net
>>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桁辺りまでは収束してそう

72:デフォルトの名無しさん
21/07/07 07:19:49.97 GHc1zSP4.net
8桁って小数第七位ね

73:デフォルトの名無しさん
21/07/07 19:16:52.25 5d+e1myw.net
この文献
URLリンク(www.kurims.kyoto-u.ac.jp)
をもとに 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

74:デフォルトの名無しさん
21/07/07 20:36:04.14 MZbePiNM.net
>>67 収束する。
B_k := Σ[n : 2..k] cos(n)
|B_k| = |cos((k + 1) / 2) sin(k / 2) / sin(1 / 2) - (1 + cos(1))|
 (see URLリンク(math.stackexchange.com))
 <= 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) よりアーベルの級数判定法の条件を満たすので所与の級数は収束する。

75:デフォルトの名無しさん
21/07/07 21:23:56.34 GHc1zSP4.net
>>72
すごい
あんまり読めてないけど交代級数じゃなくても使えるの?

76:デフォルトの名無しさん
21/07/07 21:39:28.53 5d+e1myw.net
>>74
6節でFFTの計算とともに使ってるのでフーリエ級数全般に使えるはず

77:デフォルトの名無しさん
21/07/07 22:23:37.48 7LucU1Ml.net
>>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')}/"
);
}

78:デフォルトの名無しさん
21/07/07 22:51:04.45 GHc1zSP4.net
>>75
やっぱり交代級数限定の話っぽいけど何で今回上手く行ってるのか良く分からない

79:デフォルトの名無しさん
21/07/21 03:52:07.59 s4XLTZzk.net
お題
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]

80:デフォルトの名無しさん
21/07/21 04:00:54.83 s4XLTZzk.net
訂正
-2 → [2,-2,1,1,0]
-1 → [0,-1,0,0,0]

81:デフォルトの名無しさん
21/07/21 05:27:57.77 qAe+ZLCy.net
-1と-2は自然数じゃない

82:デフォルトの名無しさん
21/07/21 13:17:19.10 s4XLTZzk.net
>>80
ですな
-1,-2は抜いて
じゃ追加で
3→[1,1,1,0,0]
10→[1,2,1,0,0]
1000→[1,-3,1,4,1]
などなど

83:デフォルトの名無しさん
21/07/21 16:30:29.39 s75CxDCd.net
>>81
n<=10^6 を力業で、先頭と最後の101件のみ表示
URLリンク(ideone.com)

84:デフォルトの名無しさん
21/07/21 20:59:05.44 qAe+ZLCy.net
寧ろ定義域を整数全体にすれば?

85:デフォルトの名無しさん
21/07/21 22:08:26.55 DfqCC9n+.net
>>83
元々整数のつもりだったのが筆が滑りましたw
お好きな方でという事で
自然数に限定して楽になる事もないと思うけど

86:デフォルトの名無しさん
21/07/22 03:13:11.19 o3SPPMDQ.net
>>78
Kotlin
URLリンク(paiza.io)
無念無想で何も考えずにただ作った。

87:デフォルトの名無しさん
21/07/22 13:52:09.29 mzts8Rpt.net
元の問題
面白い問題おしえて~な 37問目
スレリンク(math板:543番)
元の問題は7乗まで使って桶だったけど6乗までの解答が出た
スレリンク(math板:588番)
あくまでプログラムの話、数学の部分はどうでもいいという方は参考にして下さい
この方法はn-t^5-76843が6630の倍数になるような整数tが取れる事を使います(t:0〜6629の中で探す)

88:デフォルトの名無しさん
21/07/22 20:25:25.04 giJnvKaJ.net
>>86
5次以下にはできない証明は?

89:デフォルトの名無しさん
21/07/22 20:30:40.90 eIP4GB5u.net
>>87
それはまだ数学板では5以下でも可能も5以外では不可能もどっちも証明されてません

90:デフォルトの名無しさん
21/07/24 11:44:46.01 uYrXTofe.net
お題: 端末上に地球を模した円の描画を行い、入力された緯度、経度のおおよその地点に印を付けろ
ただし描画される円の中心は常に日本の東京とし、東京が見えるようにすること
描画される円の大きさは自由とする
入力された座標が東京の裏側の半球上にあって印を描画できない場合は、印を描画しないか、あるいは円(地球)を透過させて印を描画する
地球の半径=6,371 km
東京の経度=139°41′30″
東京の緯度=35°41′22″
*出題者は自分で実装してません

91:デフォルトの名無しさん
21/07/24 11:48:58.50 2jz91/WX.net
>>89
画面の上を地球上のどの方位にするとか、平行投影なのか透視投影なのか画角どうするかとか決めないといけないんでないの?

92:デフォルトの名無しさん
21/07/24 11:53:24.04 uYrXTofe.net
>>89
>>90
画面の上端を北とします
投影方法と画角はよくわからないので自由とします^^;

93:デフォルトの名無しさん
21/07/24 12:18:19.24 /U+1YhTs.net
地球は球体じゃないから無理じゃない?

94:デフォルトの名無しさん
21/07/25 16:25:19.73 YgX/LOmt.net
地形データってどっかから取って来れるの?そこも自作しろと?それとも地形描画なしのツルツルの地球で良い?

95:デフォルトの名無しさん
21/07/26 04:06:01.70 uFE88Z/4.net
いいよ

96:デフォルトの名無しさん
21/07/27 08:42:26.61 3vSla0fp.net
>>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') + '/'
)

97:96
21/07/28 13:12:24.23 D9Z9/eJz.net
>>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 = は時間がかかりすぎて解けない

98:デフォルトの名無しさん
21/08/08 11:08:25.71 KegFD0tb.net
平面上に円をおくと、円周上に整数点ができることがあるが
それがちょうど47個の円の最小半径は?
ここで前にもあったとおもったが、答わからん

99:デフォルトの名無しさん
21/08/10 04:18:36.48 RT5RB9Hc.net
解き方がわからん。

100:蟻人間
21/08/11 00:16:58.90 yQA623uX.net
お題: (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はバイナリとみなしてもよい。

101:デフォルトの名無しさん
21/08/11 19:57:42.99 lGVA2SmZ.net
宿題は自分でやれ

102:デフォルトの名無しさん
2021/08/


103:11(水) 23:48:46.02 ID:BaITumyQ.net



104:デフォルトの名無しさん
21/08/12 04:41:39.82 zN4hKecF.net
昔々グラフィックス画面に直線を描くアルゴリズム調べた時は感�


105:ョしたな。あれは40年ぐらい前か。月日の経つのは早いものぢゃ。



106:デフォルトの名無しさん
21/08/12 09:29:17.38 GeyAERvY.net
お題
文字列を入力として受け取って
入力された文字列と、入力された文字列を逆順にした文字列を
1文字ずつ交互に結合した文字列を出力してください
入力: abcde
出力: aebdccdbea

107:デフォルトの名無しさん
21/08/12 10:08:21.06 Lpug+0Go.net
>>103 Ruby
'abcde'.size.times{$><<s[_1]<<s[~_1]} # => aebdccdbea

108:デフォルトの名無しさん
21/08/13 03:01:45.42 pLlXEN4h.net
>>103
Haskell
import Data.List
acbbca x = concat $ transpose [ x , reverse x ]
main = do
putStrLn $ acbbca "Hello World"
putStrLn $ acbbca "たけやぶやけた"
----
HdellrlooW WoolrlledH
たたけけややぶぶややけけたた

109:デフォルトの名無しさん
21/08/13 03:35:13.90 hXjFUBNl.net
なんかこういうのはhaskellのlensが得意そうな気がするな
この前Intのリストの奇数だけソートするのを
sortArray xs = xs & partsOf (each . filtered odd) %~ sort
だけで済ましてるのを見た

110:デフォルトの名無しさん
21/08/13 11:47:55.66 Zwr8vbQY.net
>>103 octave
URLリンク(ideone.com)
f = @(s) [s; flip(s)](:)';
f('abcde')

111:96
21/08/13 12:16:45.65 Tqy/ucLn.net
>>103 Perl5
@b = reverse @a = split'', 'abcde';
use List::MoreUtils 'zip';
print zip @a, @b;
実行結果
~ $ perl 20_103.pl
aebdccdbea

112:デフォルトの名無しさん
21/08/13 18:31:56.72 C2vgWz0X.net
>>103
Kotlin
URLリンク(paiza.io)

113:デフォルトの名無しさん
21/08/13 18:54:31.59 C2vgWz0X.net
>>103
C
URLリンク(paiza.io)
>>109と出力が同じになるようにした。
それと、折角なので wchar で作った。

114:デフォルトの名無しさん
21/08/13 20:49:58.92 ++s/0C9b.net
>>103 J
f =: ,@(,. |.)
___ f 'abcde'
aebdccdbea

115:sage
21/08/13 23:42:35.13 WxHHmkEE.net
>>104
Rbuy 3.0.2 だと s が未定だと怒られる

116:デフォルトの名無しさん
21/08/14 12:38:10.02 LgiNTbaj.net
>>36 octave
URLリンク(ideone.com)
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

117:デフォルトの名無しさん
21/08/17 02:41:19.70 5M+zf85m.net
お題: 菅話法作成

Kotlin
URLリンク(paiza.io)

118:デフォルトの名無しさん
21/08/17 19:49:43.89 skFpZz34.net
>>114 Ruby
$><<%W[「中止の考えはない。強い警戒感を持って に臨む」\n「バブル方式で する。感染拡大の恐れはないと認識している」]*gets.chop

119:96
21/08/17 22:38:15.40 BrZ+lWok.net
>>114 Perl5
$it="うっふ~ん";
print<<EOF;
「中止の考えはない。強い警戒感を持って${it}に臨む」
「バブル方式で${it}する。感染拡大の恐れはないと認識している」
「コロナに打ち勝った証として${it}する」
「${it}を中止することは一番簡単なこと、楽なことだ。${it}に挑戦するのが国民の役割だ」
「安心安全な${it}に向けて全力で取り組む」
「不要不急かどうかは本人が判断すべきだ」
EOF
実行結果
$ perl 20_114_菅話法.pl
「中止の考えはない。強い警戒感を持ってうっふ~んに臨む」
「バブル方式でうっふ~んする。感染拡大の恐れはないと認識している」
「コロナに打ち勝った証としてうっふ~んする」
「うっふ~んを中止することは一番簡単なこと、楽なことだ。うっふ~んに挑戦するのが国民の役割だ」
「安心安全なうっふ~んに向けて全力で取り組む」
「不要不急かどうかは本人が判断すべきだ」

120:デフォルトの名無しさん
21/09/03 01:55:54.93 d87lg/Z2.net
半月ぐらいお題が出ないので一つ。
お題: テトロミノ
こんなパズルを解く。
URLリンク(ja.wikipedia.org)
大きさもピースも任意だが、上記ページにあるやつそのままで良い。(2つあるがどちらか一つで良い)
沢山パターンがあるかも知れないが、最初に見つかった一つを出すだけでも良い。
出力はテキストでも何でも人間が見て分かるようになってれば良い。
この問題については既にあちこちで答えが出ているような枯れた問題だと思うので、なるべく何も見ずに自分で考えて作ること。

121:蟻人間
21/09/03 20:43:43.19 9DjO+PTi.net
お題:15パズルを解くプログラム。
15パズルの盤を16要素の配列で表現し、実際に解く様子を出力せよ。空白は整数のゼロで表現する。
解けないときは「No answer」を出力せよ。可能ならば画像データも出力せよ。
参考資料:
URLリンク(www.studio-boiler.com)

122:デフォルトの名無しさん
21/09/04 00:30:45.45 ExeocnPJ.net
猿真似しか出来んのか

123:デフォルトの名無しさん
21/09/04 02:42:13.50 7+Hy81Ja.net
全然お題が出なかったからこれで良い

124:デフォルトの名無しさん
21/09/04 15:54:45.82 Q1ZjOy0h.net
最短でも80手らしい
それくらいだと全部表示してもそこまでうるさくないんだけど簡単な探索法だと2,300超えてしまいそう
全部表示したらうるさい事この上ないんだよな

125:デフォルトの名無しさん
21/09/04 16:28:17.76 HA1H8jBr.net
お題:パンくずリストを出力せよ
入力
東京,特許,許可局
出力
<ul class="pankuzu">
<li class="pankuzu_item">東京</li>
<li class="pankuzu_item">特許</li>
<li class="pankuzu_item active">許可局</li>
</ul>

126:デフォルトの名無しさん
21/09/06 02:26:18.29 gafTCMAF.net
>>122
Perl5
URLリンク(paiza.io)
よく分からんがこんなのでいいの?

127:デフォルトの名無しさん
21/09/06 09:51:36.66 AS0MIjWb.net
XSSに気をつけましょう

128:デフォルトの名無しさん
21/09/06 10:28:52.31 c9RFzrWf.net
>>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>
);

129:デフォルトの名無しさん
21/09/06 11:28:19.10 DJ6jxapu.net
>>122 Python
URLリンク(ideone.com)

130:96
21/09/06 12:09:28.54 GTV7C5SZ.net
>>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>

131:96
21/09/06 13:04:59.11 moEus4wD.net
>>127 use HTML::TreeBuilder; だと色々引き連れて来るので、使う use HTML::Element; をuseすれば良かったんだけど、結果は同じだしまいいや…



133:デフォルトの名無しさん
21/09/06 13:13:49.70 uTG0VSHW.net
>>117
Ruby
URLリンク(ideone.com)
久しぶりにやってみた

134:デフォルトの名無しさん
21/09/06 19:38:11.84 n/A9WgFn.net
>>122 ocaml
URLリンク(ideone.com)
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 ["東京"; "特許"; "許可局"]

135:デフォルトの名無しさん
21/09/07 09:55:32.26 WSMGeNyo.net
>>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

136:デフォルトの名無しさん
21/09/07 12:33:03.11 Q6Cbfir4.net
お題
次のように置換した文字列が入力される
ESC → ESCESC
CR → ESCcr
LF → ESClf
元の文字列を復元してください
続く・・・

137:デフォルトの名無しさん
21/09/07 12:33:27.25 Q6Cbfir4.net
>>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

138:デフォルトの名無しさん
21/09/07 13:04:58.96 YXnsp+WP.net
>>132 Ruby
def decode( str ) = str.gsub( /ESC(ESC|cr|lf)/, { 'ESCESC' => 'ESC', 'ESCcr' => 'CR', 'ESClf' => 'LF' } )

139:134
21/09/07 13:14:10.80 YXnsp+WP.net
>>132 Ruby
def decode( str ) = str.gsub( /ESC(ESC|cr|lf)/ ){ _1[3..].upcase }

140:デフォルトの名無しさん
21/09/07 22:44:48.30 Q6Cbfir4.net
>>122
Java
URLリンク(paiza.io)

141:デフォルトの名無しさん
21/09/08 01:03:27.49 gNm9L8yp.net
>>132
Perl5
URLリンク(paiza.io)

142:デフォルトの名無しさん
21/09/08 01:19:37.74 gNm9L8yp.net
>>132
Kotlin
URLリンク(paiza.io)

143:デフォルトの名無しさん
21/09/08 01:55:31.54 gNm9L8yp.net
>>132
C
URLリンク(paiza.io)

144:96
21/09/10 22:13:37.39 UuNKa3lP.net
>>132 Perl5
s/ESC(ESC|cr|lf)/\U$1/g;

実行結果
URLリンク(ideone.com)

145:デフォルトの名無しさん
21/09/10 22:32:25.84 VHKKBZ5d.net
そんなやり方があったとは知らなかった

146:蟻人間
21/09/10 23:29:13.91 aesnFr7F.net
お題: 円柱の高さ(5~15cm)と半径(5~10cm)を指定すると、その円柱の展開図のSVGデータを出力するプログラム。
展開図には一部、0.5~1cmほどのりしろがあり、印刷・糊付けして実際に組み立てることができるものとする。SVGの用紙はA4サイズ。

147:デフォルトの名無しさん
21/09/11 00:32:47.77 7ac2XrM2.net
>>142
糊代を折ることを考えたら円柱じゃなくて(円に近い)多角柱になると思うけど、それでいいの?

148:蟻人間
21/09/11 10:37:25.30 DC


149:kTc1oQ.net



150:デフォルトの名無しさん
21/09/12 23:05:50.13 a0Jd4Hkz.net
>>132
Java
URLリンク(paiza.io)
"ESCESC"を "ESC" 任意の文字 に変換して
逆の変換すればOK
下記のJSONの文字列のようなエスケープでも
同様のやりかたで復元できる、はず
\ → \\
\r → \\r
\n → \\n

151:デフォルトの名無しさん
21/09/12 23:51:43.19 a0Jd4Hkz.net
訂正
\ → \\\\
\r → \\r
\n → \\n

152:デフォルトの名無しさん
21/09/12 23:52:06.11 a0Jd4Hkz.net
訂正2
\\ → \\\\
\r → \\r
\n → \\n

153:デフォルトの名無しさん
21/09/13 00:01:27.06 kzWLxl1N.net
お題 転調記号の数
問題
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)の最小値を求めよ
原題は数学板にあるけど長いし音楽知らないとわけわかめになるので略
知りたい人は以下より
スレリンク(math板:80番)
面白い問題おしえて~な 38問目

スレリンク(math板:190番)
面白い問題おしえて~な 38問目

154:デフォルトの名無しさん
21/09/13 07:01:38.59 eHkY1yZB.net
x=[1,0,0,0,...]でf(x)は最小値0をとるけど、原題みるとf(x)の最大値を求めるのかな

155:デフォルトの名無しさん
21/09/13 09:36:40.69 bTLuzAmV.net
対数とれば簡単

156:デフォルトの名無しさん
21/09/13 10:04:21.34 kzWLxl1N.net
>>149
orz
その通り
最大値求めよ
です

157:デフォルトの名無しさん
21/09/13 10:31:13.42 7dFFnUhL.net
黒鍵が1オクターブに5個しかないのに
調号が6個必要なのが納得出来ない

158:デフォルトの名無しさん
21/09/13 10:31:55.37 7dFFnUhL.net
最大値は3かな?

159:デフォルトの名無しさん
21/09/13 15:11:00.36 kzWLxl1N.net
>>152
嬰へ長調は♯6個とその異名同音調の変ト長調は♭6個でどうあがいても6個必要です
♭1個でキーは5/12上がり♯1個でキーは5/12下がりますがハ長調から見て嬰へ長調=変ト長調はどちらから回っていっても6個必要です
URLリンク(ja.m.wikipedia.org)
>>153
もう少し大きいです
数学板で最初に出た3より大きい例は
スレリンク(math板: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です
ホントの最大値はもう少し大きくなります

160:デフォルトの名無しさん
21/09/13 18:18:32.59 7dFFnUhL.net
円周率に近いな

161:デフォルトの名無しさん
21/09/13 22:45:15.18 kzWLxl1N.net
答え有理数です
しかしプログラム板のお題なので近似値出れば良しでいいと思います

162:デフォルトの名無しさん
21/09/13 22:51:14.71 7dFFnUhL.net
3.142857...
じゃなくて?

163:デフォルトの名無しさん
21/09/13 23:14:04.32 kzWLxl1N.net
3.2は超えます

164:デフォルトの名無しさん
21/09/13 23:14:24.72 7dFFnUhL.net
orz

165:ハノン
21/09/14 17:29:19.22 .net
>>148
元の出題
>変ニ長調(♭×5)→ホ長調(♯×4)→へ長調(♭×1)という曲の平均調号数は
そんな変てこな転調があり得るのか‥‥

166:デフォルトの名無しさん
21/09/14 20:25:22.64 3yXL9VGN.net
そう思ったら作曲してみよう

167:デフォルトの名無しさん
21/09/14 23:17:19.71 ugFzvtUj.net
サビで短3度転調、後半盛り上がって


168:半音上げはポップス曲だとよくある



169:デフォルトの名無しさん
21/09/15 02:21:25.59 3vtMVT28.net
>>148
そのお題はタイトルからして調べないと分からない単語が使われており、全体を通して何を言わんとしているのか分からない。

170:デフォルトの名無しさん
21/09/15 06:01:22.11 uRkyJcx+.net
>>163
音楽知識は不要 (不要なように書き換えてる)
それ以外は簡単な数学用語 (高校レベル)

171:ハノン
21/09/15 06:22:14.22 .net
>>162
>サビで短3度転調、後半盛り上がって半音上げはポップス曲だとよくある
気がつきませんでした、なるほど
>後半盛り上がって半音上げ
最後に半音上がるアレ、主和音と同じ高さで導音系の和音を強奏するのが無理があると思っており好みじゃないのです‥‥
URLリンク(www.youtube.com)

172:デフォルトの名無しさん
21/09/15 06:28:49.75 uRkyJcx+.net
お前の好みとかどうで良くね?

173:デフォルトの名無しさん
21/09/15 06:34:56.44 uRkyJcx+.net
URLリンク(soundquest.jp)

174:ハノン
21/09/15 06:45:27.54 .net
>>152
白鍵に調号をつけるしかない場面があるのです、>>154 のいうとおり ♭ソを基本の音にした音階のときはそうなります‥‥
では 7 個が最大かというと、そうでもなくて、ダブルシャープ(シャープ2個分)、ダブルフラット(フラット2個分)を使って(一時的に)8個以上の楽譜に仕上げる人がいました‥‥

175:デフォルトの名無しさん
21/09/15 08:25:52.14 m09hSrNp.net
>>165
私はあなたの存在が好みじゃないのです‥‥
URLリンク(www.youtube.com)

176:デフォルトの名無しさん
21/09/15 21:26:44.83 UGHCgEvY.net
ちなみにこの問題よくよく考えるとアルゴリズムの教科書によく出る超有名問題になってます
問題の名前だけは高校の数学の教科書にも載ってるくらい有名な問題です

177:デフォルトの名無しさん
21/09/15 22:28:51.28 qUQwebCi.net
3.2222222222222ってなるのかな
3.222221で止まってるけど

178:デフォルトの名無しさん
21/09/15 22:31:14.96 uRkyJcx+.net
最大=>3個とも平均が同じ=>3個の調しか使わない最大が存在する=>12C3全検索

179:デフォルトの名無しさん
21/09/15 23:00:11.21 UGHCgEvY.net
>>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つやればいけます
(もちろん有理係数の線形方程式なので解は有理数)
その際線形代数の計算をやってくれるライブラリがあれはそんなに大変な作業にはならないはずです
というかこのタイプの問題“線形計画法”この問題解くためのライブラリ持ってるやつが多いのでその場合は数行で終わってしまいます

180:デフォルトの名無しさん
21/09/16 00:34:05.02 g1b5b/gu.net
問題全く何も理解してない
力任せ
URLリンク(ideone.com)

181:デフォルトの名無しさん
21/09/19 19:11:20.33 zqOP2O5f.net
>>174
理詰めの解答よりこういう力技の解答の方がありがたいです
理詰めはどっかでうっかり間違ってる事も多いので
>>172さんの方針で220通り全数検索するコード組んでみました
URLリンク(ideone.com)
元々用意してた解答は単体法( Simplex algorythm)というやつ使う方法だったんですけど、220個位なら全数検査した方が安全ですね
しかも全部調べるのでベスト10とか出せる
さっきのコードは原曲のままが最小になる場合のベスト10とどちらかに半音ずらした方が最小になる場合のベスト10です

182:蟻人間
21/09/23 00:23:18.14 WyFAZLWz.net
お題: 中心(x, y)で半径mの円と、中心(z, w)で半径nの円の当たり判定。

183:蟻人間
21/09/23 00:36:24.97 WyFAZLWz.net
お題: カオス理論で知られるローレンツ・アトラクタを描画せよ。

184:蟻人間
21/09/23 00:45:13.27 WyFAZLWz.net
お題: 厚み0.5cm長さX cmのしなやかなテープを最小のうずまき状にまるめると直径は何cmになるか。X = 20, 30, 50.

185:ハノン
21/09/23 12:30:22.12 HaJtCNmP.net
>>178
「しなやかな」の定義中、中心側の終端の扱いを精緻に定義しなおしてください

186:デフォルトの名無しさん
21/09/23 12:40:13.64 fWOsjY2x.net
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();
});

187:デフォルトの名無しさん
21/09/23 16:05:27.59 jg/8HMJJ.net
>>176
それって数学的な証明はよくわからないんだけど直感的に考えると、(x, y) から (z, w) の距離が m + n 以下なら当たりで良いのかな?
他のパターンで当たる場合はなさそうだけど、あったとしても今は思いつかないのでとりあえずプログラムはそれで作ろうかと思う。

188:デフォルトの名無しさん
21/09/23 16:34:26.56 LOQBNAlJ.net
円周か円板かで答えが違う

189:デフォルトの名無しさん
21/09/23 17:12:27.81 QUC7Fk2H.net
入力として整数値が与えられたらその中の立っているビットを
等確率でランダムに一つ抜き出した整数値を出力する
3が与えられたら1か2のどちらかを1/2の確率で
17179877640が与えられたら8か256か8192か17179869184のどれかを1/4で

190:デフォルトの名無しさん
21/09/23 18:08:32.21 em+PQ8QU.net
>>Ruby
n = 17179877640
bits = []
while n > 0
n ^= b = n & -n
bits << b
end
puts bits.sample

191:181
21/09/24 02:52:30.55 N3yB15M0.net
>>176
Kotlin
URLリンク(paiza.io)

192:デフォルトの名無しさん
21/09/24 18:51:00.62 FX1uO51R.net
お題 繁分数
奇数個の整数がカンマで区切りで与えられる
間に'+'と'/'を順に挿入して計算する、ただし優先順位は後から優先
例) "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

193:デフォルトの名無しさん
21/09/24 19:42:20.13 SF8pwxS9.net
>>186
なぜ、偶数個あるのか?
偶数個は最後に1"を入れてやってみた
(頭悪いからリヴァースして、浮動小数点でやっている)
URLリンク(wandbox.org)

194:デフォルトの名無しさん
21/09/24 21:54:41.68 uMkpdCmM.net
>>187
数え間違えorz

195:ハノン
21/09/25 21:21:39.43 YrZFQiAF.net
>>186
URLリンク(ideone.com)

196:ハノン
21/09/25 21:23:01.64 YrZFQiAF.net
>>187
うーむ、私の >>189 よりシンプルですね

197:96
21/09/25 22:19:21.21 qK5TmKac.net
>>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

198:デフォルトの名無しさん
21/09/26 00:35:27.94 x+MOSZRz.net
>>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

199:ハノン
21/09/26 02:32:13.09 fnZfkDL3.net
>>186 C
>>189
終端処理を間違えていたので御題にあわせて修正
URLリンク(ideone.com)
233/151 = 1.54304635761589414855
1855077841/1311738121 = 1.41421356237309514547
1457/536 = 2.71828358208955211950
54193766400/17250408000 = 3.14159331187992751921

200:デフォルトの名無しさん
21/09/26 02:51:04.12 edcxzAwz.net
>>186 J
f =: +`%/
___ f 1,2,3,4,5,6,7
1.54305

201:96
21/09/26 11:06:39.50 ROfWiNc+.net
>>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

202:デフォルトの名無しさん
21/09/26 13:52:29.02 Db797RWb.net
すいません
>>191は例題おかしいので数字合わないですね
気にしないでください
最後の例では最後の項の100抜くか、最後に21を追加してください
100抜いた場合は
4317632 / 1374345 = 3.14159254044654
21追加した場合は
54743776 / 17425485 = 3.1415926730303347
になると思います
>>191の例は
0+4/(1+(1/(3+...(17+81/(19+100/0)))))...)))
になってしまってるんだと思います(違うかも)

203:デフォルトの名無しさん
21/09/26 15:05:57.74 RIy3qD4V.net
>>186 ocaml
URLリンク(ideone.com)
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
URLリンク(ideone.com)
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

204:デフォルトの名無しさん
21/09/26 15:06:59.82 RIy3qD4V.net
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

205:ハノン
21/09/26 19:57:37.78 KhgDxRBF.net
>>197
>[] -> 0, 1
>| x :: [] -> x, 1
>| x :: xs -> let n, d = h xs in x * d + n, d
>>193 を書いた私としてはなんとなくわかってしまうのが‥‥悲しいですね

206:ハノン
21/09/26 19:58:46.43 KhgDxRBF.net
つまり >>193 は言語として冗長だ、という点が悲しい、という意味です、誤解を招かないように補充します

207:デフォルトの名無しさん
21/09/26 21:14:48.05 K0n5mMQr.net
>>183
Java
URLリンク(paiza.io)

208:デフォルトの名無しさん
21/09/26 21:49:22.16 6LE1NaJb.net
お題: 与えられたUTF-8日本語文章から空白と記号を取り除いた後の文字列にNGワードがあるかどうか判定せよ。
NGワード: 「集近閉」「地獄経済」
例文1「集☆近☆閉☆は☆不☆滅」
例文2「地/獄/経/済/は/大/丈/夫」
出力例:「NGワード「集近閉」があります。」
出力例:「OKです。」

209:デフォルトの名無しさん
21/09/26 21:51:41.83 K0n5mMQr.net
>>186
Java
URLリンク(paiza.io)

210:デフォルトの名無しさん
21/09/26 21:58:42.24 Db797RWb.net
>>196
いまレス読み返したらアンカー間違ってるorz
>>196>>191と書いてあるのは全部>>186宛の自己レスです
191さんすいません
ちなみにやっぱり186の数値
3.141593311879928
は最後の部分を.../(17+81/(19+100/(0))))..として処理した値でした
100/0が∞になって17+81/(19+∞) = 17となって結局17で打ち切った場合の答えになってました
17で打切った場合
3763456 / 1197945 = 3.1415933118799275
>>186の値になってました

211:デフォルトの名無しさん
21/09/27 02:09:19.34 mB71+9h3.net
お題:: 文字列に対して文字列の範囲を指定すると、その範囲を角カッコで囲って出力するプログラムを作れ
文字列はASCII文字の並びでソ


212:ートされている前提とする 入力フォーマット 文字列 範囲 入力 abcdefghijklmn c-g 出力 ab[cdefg]hijklmn



213:デフォルトの名無しさん
21/09/27 03:27:36.76 HGR3sN0a.net
お題: ハッシュタグをGoogle検索リンクに変換せよ。
ハッシュタグを含む日本語UTF-8文字列が与えられる。ハッシュタグをHTMLハイパーリンクに変換してHTMLテキストを出力する。
ハッシュタグは「#」か「#」か「♯」で始まるものとします。
ハッシュタグには半角の「_」以外の記号と空白は使えません。
HTMLの特殊文字「&<>」はそれぞれ「&」「&lt;」「&gt;」に変換するものとします。
検索リンクは日本語グーグルを使用します。
入力例「これは #テスト文字列です。 #家族募集中 <本日は雨天なり>」

214:デフォルトの名無しさん
21/09/27 03:36:26.68 lACGcuZa.net
>>206
出力例もよろしく

215:デフォルトの名無しさん
21/09/27 03:39:59.74 HGR3sN0a.net
>>206
訂正。「&」→「&amp;」

216:デフォルトの名無しさん
21/09/27 04:15:57.90 HGR3sN0a.net
>>206
出力例「これは <a href="URLリンク(google.co.jp)テスト文字列です">#テスト文字列です</a>。 <a href="URLリンク(google.co.jp)家族募集中">#家族募集中</a> &lt;本日は雨天なり&gt;」

217:デフォルトの名無しさん
21/09/27 10:56:06.17 BIqiQYZe.net
家族募集中
が無視されてるのは何故?

218:デフォルトの名無しさん
21/09/27 11:20:24.19 FdLhLOZv.net
>>206
$ echo -e 'これは #テスト文字列です。 #家族募集 中 <本日は雨天なり>' |
sed -e 's/&/\&/g' -e 's/</\&lt;/g' -e 's/>/\&gt;/g' -e 's![##♯]\(\w*\)!<a href="URLリンク(google.co.jp)'
これは <a href="URLリンク(google.co.jp)テスト文字列です">#テスト文字列です</a>。 <a href="URLリンク(google.co.jp)家族募集中">#家族募集中</a> &lt;本日は雨天なり&gt;

219:デフォルトの名無しさん
21/09/27 16:42:34.63 lACGcuZa.net
>>186
Kotlin
URLリンク(paiza.io)
偶数個のやつは一つ削って奇数個にした。

220:デフォルトの名無しさん
21/09/27 17:07:09.23 lACGcuZa.net
>>186
Perl5
URLリンク(paiza.io)
これはまあ、ふざけたやり方というかなんというか。計算はPerlにお任せ。

221:デフォルトの名無しさん
21/09/27 21:40:29.82 lACGcuZa.net
>>205
Kotlin
URLリンク(paiza.io)
正規表現使って置換しているだけ。他の言語でも正規表現使ったら大差ない感じになるかも。

222:デフォルトの名無しさん
21/09/27 22:04:19.72 IGWq0JTX.net
>>205 octave
URLリンク(ideone.com)
f = @(s, r) regexprep(s, ['([' r ']+)'], '[$1]');
f('abcdefghijklmn', 'c-g')

223:デフォルトの名無しさん
21/09/27 23:53:33.07 CFsFGFcT.net
>>214
性器を痴漢
まで読んだ

224:デフォルトの名無しさん
21/09/28 00:35:44.78 R7FPj2K+.net
>>213
やはりそれきましたかw

225:デフォルトの名無しさん
21/09/28 02:40:03.94 wFK5NO29.net
>>206
Kotlin
URLリンク(paiza.io)
正規表現使って一発でやるのではなく1文字づつ読んでやるように作った。

226:デフォルトの名無しさん
21/09/28 07:20:01.83 OyddjX6J.net
>>176 Lua
function f(x, y, m, z, w, n)
return (x - z) ^ 2 + (y - w) <= (m + n) ^ 2
end

227:デフォルトの名無しさん
21/09/28 07:27:57.86 OyddjX6J.net
>>219
間違えました
function f(x, y, m, z, w, n)
return (x - z) ^ 2 + (y - w) ^2<= (m + n) ^ 2
end

228:デフォルトの名無しさん
21/09/28 10:29:00.43 wFK5NO29.net
あ、そーか。2乗のまま比較すればsqrt不要だったな。

229:デフォルトの名無しさん
21/09/28 19:11:27.77 RwSKB5Xt.net
>>202
Kotlin
URLリンク(paiza.io)
二番目のやつはOKではないな。

230:デフォルトの名無しさん
21/09/28 23:13:01.41 R7FPj2K+.net
>>209
の出力例をみると“テスト文字列です”は文字列、“。”な区切り記号と認識してここで切らないとダメみたいだけど、だとするとunicodeの文字列の中にある“区切り記号”と“文字列を構成する文字”を区別しないといけなくなる
GOには“unicode”というライブラリが用意されてて簡単にできるみたいだけどオレが愛用するHaskellではその手のライブラリが見つからんorz
流石にスクラッチで一から書くのは無理だし
どっかに“コード××〜××までは記号”とか一覧になってるテーブルとかないんかな

231:デフォルトの名無しさん
21/09/29 00:03:13.95 BLI1g7MR.net
POSIX character classes

232:デフォルトの名無しさん
21/09/29 00:18:36.77 1i2b1Egj.net
お題: 次を真似して作れ。
「突然の死ジェネレーター」
URLリンク(totuzennosi.sacnoha.com)
ただし、等幅フォントでの表示を想定し、半角・全角の文字幅の違いを尊重すること。

233:デフォルトの名無しさん
21/09/29 04:42:10.56 WX6C7qGJ.net
>>225
★や※を全角にするか半角にするかに依存。要はフォントに依存するから無理

234:デフォルトの名無しさん
21/09/29 11:07:43.39 0XODgfdX.net
Unicodeで半角全角を扱う Ambiguous(曖昧さ)とUncertainty(不確実性)の恐怖
URLリンク(qiita.com)

ま、しかし、なんとなくいい加減で入力によってはおかしくなるやつならば作れるので、後で時間があったら作ろう。

235:デフォルトの名無しさん
21/09/29 12:01:49.91 hPAWkWy2.net
>>227
> Unicodeで半角全角を扱う場合、まずフォントがEast Asian Widthの規定を正しく守っている必要があります。でも実際にはそうとは限りません。
>
> またそれを取り扱うプラットフォームも適切に実装されている必要がありますが、必ずしもそうとは限りません。
仕様を満たしてないものは仕様通りの挙動にならないかどで仕様を叩いているということで合ってる?

236:デフォルトの名無しさん
21/09/29 12:03:25.69 SXvzkJ7t.net
Boys, be Ambiguous.

237:デフォルトの名無しさん
21/09/29 12:32:11.32 SXvzkJ7t.net
お代
URLリンク(tokyochallenge.odpt.org)

238:デフォルトの名無しさん
21/09/29 13:28:55.86 p1B8H211.net
>>225
Kotlin
URLリンク(paiza.io)
流石に寿限無は長すぎたようだ。

239:デフォルトの名無しさん
21/09/29 13:41:53.17 p1B8H211.net
>>230
> 2020年、2021年の東京では、東京マラソンの開催、東京国際クルーズターミナルのオープン、
> 東京2020オリンピック・パラリンピック競技大会の開催など、国際的に注目を集めるイベントが
> 多数予定されています。
外国からの入国制限、及び無観客にして解決。

240:デフォルトの名無しさん
21/09/29 19:41:42.38 p1B8H211.net
>>225
Kotlin
URLリンク(paiza.io)
吹き出し部分を半角文字に変えてみたんだけどね。あまり意味ないか。

241:蟻人間
21/09/29 19:46:15.13 1i2b1Egj.net
お題: 重力と慣性のないデカルト座標系に長さ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はこの順で


242:端点が連結されており、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度」「ありません」



243:デフォルトの名無しさん
21/09/29 20:45:55.00 ktvYkylG.net
>>234
頭が悪そう
出題が冗長

244:蟻人間
21/09/29 21:27:25.97 1i2b1Egj.net
>>235
代わりに出題してみて

245:デフォルトの名無しさん
21/09/29 21:47:32.31 yKvURuJk.net
悪"そう"では無いな。説明において要点を整理出来ない者はすべからく頭悪い
問題文はその者の理解度に等しい

246:デフォルトの名無しさん
21/09/30 00:49:10.52 Ai6xyiAS.net
>>234
haskell
URLリンク(ideone.com)

247:デフォルトの名無しさん
21/09/30 01:23:41.62 Ai6xyiAS.net
>>238
ラジアンと度の変換間違いorz
haskell
URLリンク(ideone.com)

248:デフォルトの名無しさん
21/09/30 03:52:16.30 Ai6xyiAS.net
ちなみに代わりに出題するなら
入力(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°の範囲で与えるとする
かな

249:デフォルトの名無しさん
21/09/30 20:22:48.51 59EqeRS1.net
>>202 JavaScript
URLリンク(ideone.com)

250:蟻人間
21/09/30 20:33:52.35 8ZMYiRqf.net
>>239
ここに居るほとんどの人が分かってないから、解説をお願いします。

251:デフォルトの名無しさん
21/09/30 20:35:20.03 BaUXpZJu.net
>>242
素直に「僕には難しすぎてわからないから詳しく教えてください」って言えないの?

252:蟻人間
21/09/30 20:45:22.12 8ZMYiRqf.net
>>243
ここは解いた人が解説しないと

253:デフォルトの名無しさん
21/09/30 20:46:54.85 BaUXpZJu.net
>>244
お前とQZ以外は理解してるよ

254:蟻人間
21/09/30 21:01:09.92 8ZMYiRqf.net
2つの副業と、ベルトコンベアのラインでねじ回しの仕事で疲れてるから許してくれよ。

255:蟻人間
21/09/30 21:13:56.42 8ZMYiRqf.net
この技術を応用すればロボットアームを自由自在に動かせそうだね。

256:蟻人間
21/09/30 21:47:22.16 8ZMYiRqf.net
イーロン・マ●クさん、見てる? イェイ!

257:デフォルトの名無しさん
21/09/30 23:18:58.96 vWP+uHYR.net
>>247
誤差が積もり積もるから無理

258:デフォルトの名無しさん
21/10/01 00:08:37.55 VIfkqI1d.net
群論で簡単に解けそう

259:デフォルトの名無しさん
21/10/04 21:51:58.57 8pCgPPfH.net
お題: CSV形式のテキストデータを検索する grep のようなコマンド(または関数)
CSVの形式は RFC 4180 の通りで文字のエンコーディングは UTF-8、改行は CR/LF。
この辺のページを参考にすると良い。
URLリンク(datatracker.ietf.org)
URLリンク(www.kasai.fm)
URLリンク(blog.tech-monex.com)


260:%E3%83%83%E3%83%88%E3%81%AE%E5%AE%9A%E7%BE%A9 普通の grep コマンドを CSV ファイルに対して行うと1つのデータで改行が入っていた時に何行目の何列目のデータなのかが分からなくなって不便である。 その他、ダブルクォーテーションで括られているか否か、データとしてカンマやダブルクォーテーションを含むか否かで検索する側が正規表現を考慮して作らねばならず面倒臭い。 ということでこういった面倒くささを解消するコマンドを作るのがこのお題。 コマンドという形式ではなく正規表現と検索されるCSVテキスト(あるいはCSVファイル名や読み込みオープンしたファイルデスクリプタ)と検索する時のオプション(大文字小文字を無視など)を渡すと検索結果を返す関数を作成しても良い。 尚、1行目の項目名が入っている事がある行についてはその存在の有無をオプションで渡して指定する方式にして良い。 検索結果はパターンにマッチしたデータについて何行目、何列目だったかが分かるようにしてデータと共に出力する(関数の場合は呼び出し元に返す)。 出力する時にデータを見易くするために改行があったら \n 等にエスケープして1行にしても良い。 CSV読み込みや正規表現について既存のライブラリを使うか否かはご自由に。但し言語や環境に最初から付属していない外部のライブラリを使う場合は何を使ったかが分かるようにコメント等に入れておくこと。




次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch